The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Крупнейший китайский интернет-провайдер открыл код проектов tinker, libco и QTA

17.10.2016 08:53

Tencent, крупнейший интернет-провайдер в Китае, начал перевод некоторых своих разработок в разряд открытых проектов:

  • Под лицензией BSD открыт код библиотеки Tinker, предназначенной для горячего наложения патчей на уже установленные приложения для платформы Android. Tinker позволяет организовать распространение обновлений для программ без необходимости переустановки APK-пакета. Поддерживается внесение изменений в исполняемые файлы DEX (Dalvik EXecutable), библиотеки и связанные с пакетом ресурсы.
  • Под лицензией Apache 2.0 открыт код проекта libco, предоставляющего средства для использования сопрограмм (coroutine) в программах на языках C/C++. Библиотека широко используется на бэкендах (десятки тысяч серверов) популярной в Китае службы обмена сообщениями WeChat. Библиотека libco позволяет достаточно просто перевести приложения, занимающиеся последовательной обработкой запросов, на параллельно выполняемые сопрограммы, позволяя сохранить синхронный стиль разработки, но обеспечивая асинхронное выполнение. Благодаря реализации режима copy-stack, библиотека может применяться в сервисах, обслуживающих десятки миллионов TCP-соединений.
  • Под лицензией BSD открыт инструментарий QTAF, предназначенный для организации автоматизированного тестирования серверов, облачных систем и приложений. В том числе предоставлены средства для автоматизированного тестирования интерфейса пользователя, генерации отчётов и управления процессом тестирования. Специфичные для каждого окружения особенности описываются в специальных драйверах.


  1. Главная ссылка к новости (http://www.theregister.co.uk/2...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45330-tinker
Ключевые слова: tinker, libco, qta
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Какаянахренразница (ok), 09:24, 17/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > Tinker позволяет организовать распространение обновлений для программ
    > без необходимости переустановки APK-пакета

    Если я правильно понимаю, то эта новость обрадует вирусописателей.

     
     
  • 2.3, Аноним (-), 10:12, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Known Issues
    >There are some issues which Tinker can't dynamic update.

    ...
    > 3. Due to Google Play Developer Distribution Agreement, we can't dynamic update our apk.

    Как я понял, гугл маркет не пропустит приложения с этой библиотекой?

     
     
  • 3.18, Stax (ok), 14:07, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ему это и не нужно, там несколько месяцев назад внедрили свою технологию diff'ов. Пользователь качает небольшой diff и на его устройстве apk патчится.
     
     
  • 4.31, safsad (?), 17:48, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю насчет несколько месяцев, как минимум год при обновлении качается далеко не весь APK.
     
     
  • 5.47, Stax (ok), 22:20, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ммм да, верно. В июле это перешли на новую технологию, сильно уменьшающую размер этих диффов: http://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-d
    А в каком-то виде диффы, значит, давно.
     
  • 2.14, Аноним (-), 11:58, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Как я понял у вирусописателей подобные инструменты уже лет 100 как есть. Ибо декомпилить байт код Java в красивый код - легко, инструменты есть. Скомпилить со своей вставкой вредоносного кода декомпиленный код, а потом создать патч - раз плюнуть.
     
  • 2.15, Аноним (-), 12:16, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если я правильно понимаю, то эта новость обрадует вирусописателей.

    Да таких инструментов 1000. Самый известный, пожалуй, Lucky patcher.

     
     
  • 3.17, Гуэст (?), 13:40, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    верно верно, в андройд студио из коробки есть incremental build, те же патчи для dex
     
  • 2.33, Аноним (-), 18:34, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Топоры уже давно радуют последователей Раскольникова.
     

  • 1.2, Пыщь (?), 10:10, 17/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Можно сказать, что давно мечтал о сопрограммах в си. Надо же, кто-то не только мечтал, но и реализовал. Спасибо, товарищам! Надеюсь, получится применить.
     
     
  • 2.59, Ананамус (?), 15:52, 19/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    http://software.schmorp.de/pkg/libcoro.html
    Существует уже много лет, используется в перловом модуле Coro. Надо было не мечтать, а погуглить.
     
     
  • 3.60, Пыщь (?), 10:43, 20/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Реально это в сишке пробовал, или только погуглил? Мне рабочий обкатанный вариант нужен, а не предложенный набор недочётов.
     

  • 1.4, ZTE_Blade_S7 (?), 10:17, 17/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +16 +/
    Млять, комментарии в коде на китайском. НА КИТАЙСКОМ!!!
     
     
  • 2.5, YetAnotherOnanym (ok), 10:25, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Еврошовинистов щёлкнули по носу.
     
     
  • 3.6, IB (?), 10:29, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А когда американские программисты успели стать еврошовинистами?
    Я что-то пропустил?
     
     
  • 4.32, YetAnotherOnanym (ok), 18:28, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А разве американские программисты высказывали недовольство комментариями на китайском?
     
  • 3.8, Аноним (-), 10:38, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну все, теперь Китаюшка точно с колен встанет!
     
     
  • 4.12, Какаянахренразница (ok), 11:36, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну все, теперь Китаюшка точно с колен встанет!

    Если Китай встанет, то все остальные лягут[1].

    --------------
    [1] https://www.youtube.com/watch?v=IWAgHoOcWJs

     
  • 2.7, scor (ok), 10:33, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да всё равно его уже учить пора. А тут и повод благородный.:)
     
     
  • 3.22, Leap42 (?), 14:37, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ой, не факт! китайские богачи своих детей английскому учат раньше, чем китайскому
     
     
  • 4.26, Аноним (-), 15:50, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Начинать учиться нужно с примитивного.
     
  • 4.35, Ordu (ok), 19:12, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > китайские богачи своих детей английскому учат раньше, чем китайскому

    А американские родители учат своих детей французскому, и что с того? Впрочем, у китайцев есть поводы учить иностранный: у них там куча диалектов китайского и не всегда два китайца могут понять друг-друга. Но если они оба знают английский, то проблема исчезает. Такое англоязычное общение китайцев можно немало наблюдать на всевозможных конференциях, и если вы наберётесь наглости, подойдёте к ним и спросите, чего это они пренебрегают родным языком, то они вам как раз об этих диалектах и расскажут.

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

    И на фоне этого я не вижу ничего удивительного в том, что и у программистов тоже появляются причины задуматься об изучении китайского языка. А если Китай займётся FOSS серьёзно, то...

     
     
  • 5.36, Аноним (-), 19:58, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > у них там куча диалектов китайского и не всегда два китайца могут понять друг-друга

    А комменты НА КИТАЙСКОМ!
    Мораль? БЫДЛОКОД!

     
  • 5.40, Аноним (-), 20:09, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Какая-то фееричная солянка из взаимоисключающих параграфов.
    В китайском много диалектов.
    Китайцы часто не понимают друг друга, поэтому общаются на английском.
    В сабжевом быдлoкоде комменты на китайском.
    В итоге: НЕ ВИЖУ НИЧЕГО УДИВИТЕЛЬНОГО.

    Действительно, где же тут противоречие?

     
     
  • 6.48, жабабыдлокодер (ok), 22:55, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Иероглифы читаются по-разному на разных диалектах, но обозначают одно и то же. В письменном виде один китаец ВСЕГДА поймет другого китайца.
     
     
  • 7.53, Аноним (-), 10:24, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно.
    Тогда я все меньше понимаю, как этот товарисч пришел к выводу о необходимости изучения китайского программисту. Потому что теперь оказывается, что вообще все его аргументы мимо кассы.
     
  • 2.9, Мадара (ok), 10:59, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    перефразирую один коммент с хабра:
    > Стыдно, считать, что имеешь отношение ИТ и не знать китайский хотя бы на базовом уровне.
     
     
  • 3.19, Шкурочка (?), 14:13, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это больше к Индии относится, чем к Китаю
     
  • 2.10, Аноним (-), 11:04, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А на кой им ориентироваться на маргиналов?
     
  • 2.11, lucentcode (ok), 11:27, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что в этом странного? Если бы вы полазили немного по их аналогу Github, вы бы обнаружили много кода с комментариями на китайском. И это нормально. Китайцы не воспринимают внешний мир как что-то большое и значимое, для них центр всего мира - это Китай.
     
     
  • 3.29, xm (ok), 17:05, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    中国 же жь!
     
     
  • 4.38, Аноним (-), 20:06, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я подумал, что 中国 - это значит феньшуй, пошёл в переводчик и понял, что ошибся.. *ля.. :)
     
     
  • 5.46, xm (ok), 22:01, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не. Это вместе "Китай". Дословно "Центральная страна". Прямая отсылка к "Срединной империи". Отлично отражает традиционный взгляд китайцев на себя и мир вокруг, который, собственно, всегда их интересовал постольку поскольку.
     
  • 2.13, Аноним (-), 11:44, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно продублировать на русском, что-бы всем там англоговорящим поплохело :)
     
     
  • 3.16, OramahMaalhur (ok), 12:19, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Только сначала подучи, где употребляется дефис ;)
     
     
  • 4.20, Аноним (-), 14:32, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В дореволюционной орфографии бы через дефис писалось, кстати. Так что можно пойти на более глубокое извращение и комментировать свой код дореволюціонною ортографіею.
     
     
  • 5.39, Аноним (-), 20:09, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Имперский код. Пуклеру бы понравилось, если бы в его окружении был кто-то способный понять и объяснить ему эту идею.


     
  • 3.21, Ergil (ok), 14:35, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Нужно продублировать на русском, что-бы всем там англоговорящим поплохело :)

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

     
     
  • 4.24, anonymous (??), 15:05, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я русский не смогу прочитать? Чего это?
     
  • 4.25, бедный буратино (ok), 15:18, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    это только часть русскопишущих считает, что так считает только часть русскопишущих
     
  • 2.23, arzeth (ok), 14:47, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не беда, для Хрома есть расширение Zhongwen: Chinese-English Dictionary (у Firefox вроде бы аналог Perapera). Там наводишь курсор на иероглиф, и сразу выделяется слово (а это либо один, либо несколько иероглифов) и появляется жёлтый блочок с переводом на английский. Я так достаточно быстро всякие китайские тексты читаю с ~80—90% пониманием.
    Вообще часто комментарии на китайском встречаются в китайских проектах.
     
     
  • 3.27, Аноним84701 (?), 16:04, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Не беда, для Хрома есть расширение Zhongwen: Chinese-English Dictionary (у Firefox вроде
    > бы аналог Perapera). Там наводишь курсор на иероглиф, и сразу выделяется
    > слово (а это либо один, либо несколько иероглифов) и появляется жёлтый
    > блочок с переводом на английский.

    Это будет дословный перевод. Что обычно *рня редкостная. Потому как у одного слова может быть куча значений - в зависимости от контекста. Не говоря уже о пословицах с поговорками, "крылатых словах"/идиомах.

    > Я так достаточно быстро всякие китайские
    > тексты читаю с ~80—90% пониманием.

    Даже не знаю что сказать.

    > Он парит над характером, однажды выделенного слова
    > (который представляет собой один или более символов),
    > и желтый blochok и переведены на английский язык.

    и
    > Общие замечания по китайской продукции часто встречается в Китае.

    Это из вашего же текста (русский -> упрощенный китайский -> русский).

     
     
  • 4.51, arzeth (ok), 01:03, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Это будет дословный перевод.

    Ну да, но для понимания ведь сойдёт.

    > Потому как у одного слова может быть куча значений - в зависимости от контекста.

    Дак там несколько значений и указывается, это же словарь. Я в зависимости от контекста и выбираю нужное.
    > Не говоря уже о пословицах с поговорками, "крылатых словах"/идиомах.

    Вот зашёл на http://www.studychinese.ru/proverbs/ - для половины поговорок/пословиц перевод есть (сразу куча иероглифов выделяется), в отличие от гугла.


    > Это из вашего же текста (русский -> упрощенный китайский -> русский).

    Одно дело переводчик, другое - словарь. Вот я гуглом перевёл второе предложение своё на китайский. Затем используя расширение Zhongwen, я наводил на каждое слово, подбирал нужный перевод, и у меня получилось:
    > [it] [to hover] [at] [character], [immediately] [release - тут неверно, должен быть select, тут гугл с русского на китайский неправильно перевёл] [word] ([it] [is] [one] [счётный иероглиф] [or] [many] [character]) [and] [to show] [yellow] [with] [translate] [finish] [english] blochok.
    > Это наводить на иероглиф, сразу освободить (правильно: "выделить") слово (это есть один или много иероглифов) и показывать жёлтое с переводом успешным на английский.

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

     
  • 4.52, Аноним (-), 02:47, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Зря вы так переводите НИКОГДА слышите Никогда Не переводите один текст бол... большой текст свёрнут, показать
     
     
  • 5.54, Аноним84701 (?), 14:07, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Зря вы так переводите. НИКОГДА! слышите ? Никогда! Не переводите один текст
    >  более одного раза!!!.   Только 1 раз и только
    > в  1 сторону.  

    Открою страшную тайну: даже 1 раз частенько получается полная лажа с потерей или изменением смысла. Потому как кроме различных значений слов, устойчивых выражений,  т.д. есть еще такая штука, как порядок слов в предложении, окончания, падежи и т.д.

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

    Просто поверьте, вряд ли кто-то "из тех" поймет то же:
    "If only there were acorns, said vantuzyatnik." ( вместо said тут более подходит belives, но увы, таков гугло-перевод).
    А уж сколько непоняток может быть с тем же двойным отрицанием ...


     
     
  • 6.56, Аноним (-), 18:42, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я в курсе. Перечитав текст я хотел еще добавить но передумал ибо  парой  нюансов и строк там бы дело не оборшлось а мы всетаки не на форуме с обсуждением переводчиков...
      А так по идее да.. моя  фонтазия разыгралась так что хоть целый видеокурс не  снимай на тему  " Как правильно переводить с помощью онлайн переводчиков чтобы Вас поняли ".

      П.с.   Может вы и пошутили с вантузятником, но я повторюсь что нужно  использовать Чистый  грамотный  Русский язык. Никаких слов паразитов. и никакого сленга Темболее  современного молодежного.   Хотя если у вас есть время и знания на обьяснение значения этого слова или   100% уверенность  что оппонент знает о чем речь то вопросов нет...

     
  • 6.57, Аноним (-), 19:11, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И да про полную лажу я тоже сказал что частоприходится переставлять свои пред... большой текст свёрнут, показать
     
  • 3.30, xm (ok), 17:09, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Я так достаточно быстро всякие китайские тексты читаю с ~80—90% пониманием

    Это иллюзия.

     
  • 2.28, Орк (?), 16:25, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Открыл первый попавшийся файл https://github.com/Tencent/tinker/blob/dev/third-party/aosp-dexutils/src/main/

    Теперь я знаком с китайским программированием:
        @Override
        public int compareTo(Code other) {
            int res = CompareUtils.sCompare(registersSize, other.registersSize);
            if (res != 0) {
                return res;
            }
            res = CompareUtils.sCompare(insSize, other.insSize);
            if (res != 0) {
                return res;
            }
            res = CompareUtils.sCompare(outsSize, other.outsSize);
            if (res != 0) {
                return res;
            }
            res = CompareUtils.sCompare(debugInfoOffset, other.debugInfoOffset);
            if (res != 0) {
                return res;
            }
            res = CompareUtils.uArrCompare(instructions, other.instructions);
            if (res != 0) {
                return res;
            }
            res = CompareUtils.aArrCompare(tries, other.tries);
            if (res != 0) {
                return res;
            }
            return CompareUtils.aArrCompare(catchHandlers, other.catchHandlers);
        }

     
     
  • 3.34, Comdiv (ok), 18:56, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Стоит заметить, что этот код особо и не улучшишь, особенно, если хочется, чтобы он гарантированно выполнялся настолько быстро, насколько это возможно.
     
     
  • 4.41, Аноним (-), 20:27, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Нууу, можно дефайнами сделать дизайн , чтоб выглядело как-то так Override... большой текст свёрнут, показать
     
     
  • 5.44, жабабыдлокодер (ok), 21:03, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно, это Java, а не С++.
     
  • 5.50, Comdiv (ok), 00:51, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нууу, можно дефайнами сделать "дизайн", чтоб выглядело как-то так:
    >         RETURN_NON_ZERO CompareUtils.sCompare(registersSize, other.registersSize)

    Мало того, что пихать инструкции, изменяющие поток выполнения в макросы - это плохая практика, так ещё и использовать препроцессор в Java не очень разумно, хотя возможно, конечно.

     
     
  • 6.55, Crazy Alex (ok), 17:08, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Оно просто написано так, что не сразу и понимаешь, что это не C (в том и проблема). А для сей такие макросф - нормальное решение, рабочее.
     
  • 4.43, Led (ok), 20:30, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вам в винду ещё примитивные оптимизаторы не завозили?
     
     
  • 5.49, Comdiv (ok), 00:47, 18/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вам в винду ещё примитивные оптимизаторы не завозили?

    У нас есть логика. Её всем иметь желательно, вне зависимости от используемых инструментов.
    Если Вы не заметили или не поняли значения слов "гарантированно выполнялся" или бесконечно верите в идеальную оптимизируемость любой виртуальной машины Java, это не моя проблема.

     
  • 3.37, Аноним (-), 20:02, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Китайский код - это брутальное решение алгоритма без использования циклов, массивов и прочих изящных конструкций.
     
     
  • 4.42, Аноним (-), 20:29, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Китайский код - это брутальное решение алгоритма без использования циклов, массивов и
    > прочих изящных конструкций.

    Как хороший друг читая код программы желаю вам добра!

     
  • 2.45, 111 (??), 21:42, 17/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Млять, комментарии в коде на китайском. НА КИТАЙСКОМ!!!

    Ааа, а на русском "комментарии в коде" им не сильно помешали.

     
  • 2.58, KonstantinB (ok), 10:40, 19/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Комментарии - ладно. Там еще тексты исключений на китайском!
    Прекрасно такое в логах будет наблюдать. :)
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру