WWDC 2017
WWDC的核心,Apple的но,похоже
LLVM,Xcode等
苹果,похоже,решили,чтонеплохобылобыподдерживатьC ++。 Вэтомгоду的Xcodeполучилподдержкурефакторингавплюсах,причемто,чтопоказали,выглядитдостаточновкусно – умный重命名,которыйможетвшаблоны,генерациятелметодовподекларации,экстракты – вобщем,то,чтовнормальныхязыкахнормальныеIDEумеютужеочень давно,теперьможетзаработатьивплюсах。 Аможетинезаработать,этожеXcode。 Крометого,вродекактеперьможнозапускатьнесколькосимуляторовсразу,равнокакистартоватьbot’овдляCIпрямонамашинеразработчика,неустанавливаяMacOS的服务器。
苹果LLVMполучилускоренныйLTO,пакновыхпроверок,未定义的行为消毒剂(возможно,онаужеесть,нотеперьможнобудетвключатьитрогатьеёизUI’чикаXcode中),поддержкунесколькихC ++ 17конструкций。 Существующиеуже线程и地址сUI的санитайзерынаучилисьнесколькимновымтрюкамсотображениемихвUI-е。
Dyldполучилграндиозноеобновлениедотретьейверсии(с2005-гопримерногодабылаверсия2)。 Теперьонразделеннатричасти,одна – демон,анализирующийзависимостимеждубинарникамиидинамическимибиблиотекамиикеширующаяихвтакназываемые“倒闭潮”,другая – небольшаячасть,запускаемаяпередстартомприложения,изагружающаяэтисамые关闭,и,наконец,кешдля关闭。 关闭теперьявляетсяихцентральнойконцепцией,посути,этозакешированноезнаниеотом,какиединамическибиблиотекиикакнеобходимозагрузитьдлякаждогоприложения。 苹果обещают,чтостартприложенийдолженускориться。 Крометого,винструментахдобавилиспециальныйтиппроверкидляпрофилировкивременистартаприложения – тогостарта,чтопроисходитпередвызовомнепосредственноmain’а。
Интересныеtalk’и:
- LLVM中的新功能(тольковтораяполовина)(https://developer.apple.com/videos/play/wwdc2017/411/)
- 应用启动时间:过去,现在和将来(https://developer.apple.com/videos/play/wwdc2017/413/)
- 使用Xcode运行时工具查找错误(https://developer.apple.com/videos/play/wwdc2017/406/)
大中央派遣
ВНЕЗАПНОполучилобновление。 ДобавилсяновыйвкусныйAPI,即使用отслеживанияфайловсподписываниемнасобытия。 Крометого,многоговорятотом,насколькоэффективноегоисполозоватьдлямногопотоносто/к
Вцелом,разработчикампод的iOSсмотретьобязательно,остальным-толькоеслихочетсяувидетьприятныйинтерфейсдлятаскдиспатчера,ането,чтообычновидите。
- 现代化大中央调度的使用(https://developer.apple.com/videos/play/wwdc2017/706/)
SiriKit
Небольшоеэволюционноеобновление。 Улучшилидомен付款(вообщеговорили,чтоегодобавили,но,по-моему,онитакбыл),добавилидомен。 Иеслипоследнийвыглядиткакигрушка(сканированиекодов,какобщепринятых,вродеQR,такикастомных,вродетех,чтоиспользуютсяFacebook的Messenger’ом),то列表和注释смотритсякакнечтодействительнополезное – теперьлюбоеприложениеможетсоздаватьчек-листыили ноуткиспомощьюSiri。
- SiriKit的新增功能(https://developer.apple.com/videos/play/wwdc2017/214/)
核心ML
То,чтополностьюоправдываетсуществованиеWWDC 2017主题。
Новыйфреймворк,созданныйдляоблегченияработыс机器学习。 И,похоже,этоемуудается。
Приложениючерез的Xcodeскармливаетсяфайлстакназываемоймоделью,вкоторойможетбытьнасамомделеоченьмногоразныхвещей – обученнаянейроннаясеть,кпримеру,хотяподдерживаютсянетолькосети。 关于Xcode,请使用Swift’еилиObjective-C,这是которыйможнотутиетотелиили的完整版本。 Придеплоеприложениясамамодельуезжаетнаустройствоввидебандларесурсов。
Впримеребуквальнотрочкамикодадобавлялиопределениеназванияцветкапофотогоа Всеэтоделалосьужеповерхготовыхмоделей,нотутестьиенеинтереснаяновость,дажедве。
Во-первых,苹果выложилакучуготовыхмоделей,скоторымиможноиграться,вотсюда:https://developer.apple.com/machine-learning
Во-вторых,苹果выложилав开源наборутилитнаPython’е,которыйпозволяетгенерироватьмоделидля核心MLизужеобученныхмоделейотдругихсервисов/утилит(https://developer.apple.com/documentation/coreml/converting_trained_models_to_core_ml)。 Этооченьзабавно,посколькукогдаяпроходилкурспоMLнаUdacityтамиспользовалсякакразscikit学习,и,получается,обученныевовремякурсамоделиятеперьмогупопытатьсясконвертироватьизапуститьспомощью核心ML。
Издругихособенностей – фреймворкактивноиспользует加快и金属дляускоренияработы,можетработатькакнаCPU,такинаGPU,ипричемсамрешает,какиезадачигдевыполнять。 Всевычисленияпроизводятсятольколокально,苹果несколькоразделалаакцентнаэтом。 Приэтомработаетэто-трекингпарня,выделывающеготрюкинаводеврева Интересно,конечно,посмотреть,какэтоработаетнастаричкахвродемоего5S。
Наданныймоментестьподдержка:
- 树木乐团
- 支持向量机
- 广义线性模型
- 前馈神经网络
- 卷积神经网络
- 递归神经网络
Вцелом,этоименното,чтостанетмоейследующейигрушкой。
- 核心ML简介(https://developer.apple.com/videos/play/wwdc2017/703/)
- 深度学习的核心ML(https://developer.apple.com/videos/play/wwdc2017/710/)
NLP框架
МожетработатьповерхCore ML,гораздопрощевосвоении。 Работаеттолькостекстом(чтодостаточноочевидноизназвания),ноделаетэтопросто,элегантнони。
Умеет:
- Идентифицироватьязык
- Делатьтокенизациютекста
- Определятьитегироватьчастиречи
- Леммизацию
- Определениеименсобственных
Списокязыков,вкоторыхфункционалподдерживаетсяполностью:английский,французский,итальянский,немецкий,испанский,португальский,русский,турецкий。
Идентификацияязыкаработаетна52-хязыках。
- 自然语言处理和您的应用程序(https://developer.apple.com/videos/play/wwdc2017/208/)
愿景框架
Ещеодин高级фреймворк,теперьужедлякомпьютерногозрения。 标记API,которыйизкоробкиумеет:
- Определениелицнафотографии(дажечастейлица,вродегуб,носа,глаз);
- Определениепрямоугольников(гм…);
- Определениекодовдлясканирования;
- Распознаваниетекста;
- Трекингобъекта。
Вцелом,выглядитзабавно,нопослеOpenCVтакиевещивау-эффектаневызывают。 РазвечтоегодействительноОЧЕНЬпростоиспользовать。
- 视觉框架:基于Core ML(https://developer.apple.com/videos/play/wwdc2017/506/)