В iOS9:
//// Optional data
NSSet *websiteDataTypes
= [NSSet setWithArray:@[
WKWebsiteDataTypeDiskCache,
//WKWebsiteDataTypeOfflineWebApplicationCache,
WKWebsiteDataTypeMemoryCache,
//WKWebsiteDataTypeLocalStorage,
//WKWebsiteDataTypeCookies,
//WKWebsiteDataTypeSessionStorage,
//WKWebsiteDataTypeIndexedDBDatabases,
//WKWebsiteDataTypeWebSQLDatabases
]];
//// All kinds of data
//NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
//// Date from
NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
//// Execute
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
// Done
NSLog(@"remove done");
}];
То, что Вы действительно, кажется, спрашиваете, "Как я схематически изображаю зависимости?" таким образом, Вы видите, который пакеты вытягивают в который зависимости.
Вы получаете и текст и схематически изображенные зависимости от apt-cache
команда (включенный в способный пакет, часть установки по умолчанию).
Вот пример способного кэша для списка зависимостей 'привет' пакет в текстовом формате. Текстовый вывод всегда будет только одним уровнем.
$ apt-cache depends hello
hello
Depends: libc6
|Depends: dpkg
Depends: install-info
можно прочитать схему с помощью любого dotfile средства просмотра, такой, как dotty
(включенный в graphviz пакет, также часть установки по умолчанию)
Вот пример получения полного дерева зависимостей в графическом формате, затем отображая его. Вывод графических данных всегда будет полным деревом.
$ apt-cache dotty hello > dotfile
$ dotty dotfile
Просмотр его, Вы видите, что 'привет' пакет вытягивает в тонне пакетов Perl... и какая зависимость делает это.
Может быть более легкий способ сделать это, но он может быть сделан при использовании реверса - зависит. Необходимо будет установить ubuntu-dev-tools пакет путем выполнения
apt-get install ubuntu-dev-tools
Или путем нажатия этой кнопки:
Когда-то установленный, можно затем использовать реверс - зависит для наблюдения то, что зависит от определенного пакета. Например, при попытке установить что-то, что хочет установить набор дополнительных пакетов, и Вы хотите видеть, почему "libsmpeg0" устанавливается, Вы работаете
reverse-depends libsmpeg0
, Который произвел бы следующее.
Reverse-Recommends
==================
* sandboxgamemaker
Reverse-Depends
===============
* btanks
* fenix-plugin-mpeg [armel armhf i386 powerpc]
* fillets-ng
* gltron [amd64 armel i386 powerpc]
* libalien-sdl-perl
* libsdl-perl [i386]
* libsmpeg-dev
* libtaoframework-sdl1.2-cil
* python-pygame
* ruby-sdl
* sdlbrt
* smpeg-gtv
* smpeg-plaympeg
* tdfsb
Packages without architectures listed are reverse-dependencies in: amd64, armel, armhf, i386, powerpc
Смотрят и видят, находится ли пакет, который Вы хотите установить, в том списке. В противном случае затем другой пакетов, который втягивается во время той начальной установки, обнаружится в том списке, и необходимо будет работать, реверс - зависит от того пакета. В конечном счете Вы будете видеть начальный пакет, который Вы хотите установить в том списке. В той точке у Вас должна быть цепочка, показывающая точно, почему тот пакет был установлен.
, Поскольку добавленное примечание, которому я верю, рекомендует, идет по умолчанию, поэтому если что-то будет установлено как рекомендование, то оно будет втянуто к. Предлагает, если выключенный, но реверс - зависит, может показать ту информацию также.
apt-rdepends
делает это, без установка 50 + библиотеки хлама как ubuntu-dev-tools
.
durr@scraper:~$ apt-rdepends mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
mercurial
Depends: libc6 (>= 2.14)
Depends: mercurial-common (= 2.8.2-1ubuntu1)
Depends: python (<< 2.8)
Depends: ucf (>= 2.0020)
libc6
Depends: libgcc1
libgcc1
Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1)
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
gcc-4.9-base
multiarch-support
Depends: libc6 (>= 2.3.6-2)
mercurial-common
Depends: python (<< 2.8)
Depends: python:any (>= 2.7.1-0ubuntu2)
python
Depends: libpython-stdlib (= 2.7.5-5ubuntu3)
Depends: python-minimal (= 2.7.5-5ubuntu3)
Depends: python2.7 (>= 2.7.5-1~)
libpython-stdlib
Depends: libpython2.7-stdlib (>= 2.7.5-1~)
libpython2.7-stdlib
Depends: libbz2-1.0
Depends: libc6 (>= 2.15)
Depends: libdb5.3
Depends: libexpat1 (>= 2.1~beta3)
Depends: libffi6 (>= 3.0.4)
Depends: libncursesw5 (>= 5.6+20070908)
Depends: libpython2.7-minimal (= 2.7.6-8)
Depends: libreadline6 (>= 6.0)
Depends: libsqlite3-0 (>= 3.5.9)
Depends: libssl1.0.0 (>= 1.0.0)
Depends: libtinfo5
Depends: mime-support
libbz2-1.0
Depends: libc6 (>= 2.4)
PreDepends: multiarch-support
libdb5.3
Depends: libc6 (>= 2.17)
PreDepends: multiarch-support
libexpat1
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libffi6
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libncursesw5
Depends: libc6 (>= 2.15)
Depends: libtinfo5 (= 5.9+20140118-1ubuntu1)
PreDepends: multiarch-support
libtinfo5
Depends: libc6 (>= 2.15)
PreDepends: multiarch-support
libpython2.7-minimal
libreadline6
Depends: libc6 (>= 2.15)
Depends: libtinfo5
Depends: readline-common
PreDepends: multiarch-support
readline-common
Depends: dpkg (>= 1.15.4)
Depends: install-info
dpkg
PreDepends: libbz2-1.0
PreDepends: libc6 (>= 2.14)
PreDepends: liblzma5 (>= 5.1.1alpha+20120614)
PreDepends: libselinux1 (>= 2.1.0)
PreDepends: tar (>= 1.23)
PreDepends: zlib1g (>= 1:1.1.4)
liblzma5
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libselinux1
Depends: libc6 (>= 2.14)
Depends: libpcre3
PreDepends: multiarch-support
libpcre3
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
tar
PreDepends: libacl1 (>= 2.2.51-8)
PreDepends: libc6 (>= 2.17)
PreDepends: libselinux1 (>= 1.32)
libacl1
Depends: libattr1 (>= 1:2.4.46-8)
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libattr1
Depends: libc6 (>= 2.4)
PreDepends: multiarch-support
zlib1g
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
install-info
Depends: libc6 (>= 2.14)
PreDepends: dpkg (>= 1.16.1)
libsqlite3-0
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libssl1.0.0
Depends: debconf (>= 0.5)
Depends: debconf-2.0
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
debconf
PreDepends: perl-base (>= 5.6.1-4)
perl-base
PreDepends: dpkg (>= 1.14.20)
PreDepends: libc6 (>= 2.14)
debconf-2.0
mime-support
python-minimal
Depends: dpkg (>= 1.13.20)
Depends: python2.7-minimal (>= 2.7.5-1~)
python2.7-minimal
Depends: libpython2.7-minimal (= 2.7.6-8)
Depends: zlib1g (>= 1:1.2.0)
PreDepends: libc6 (>= 2.15)
python2.7
Depends: libpython2.7-stdlib (= 2.7.6-8)
Depends: mime-support
Depends: python2.7-minimal (= 2.7.6-8)
python:any
ucf
Depends: coreutils (>= 5.91)
Depends: debconf (>= 1.5.19)
coreutils
PreDepends: libacl1 (>= 2.2.51-8)
PreDepends: libattr1 (>= 1:2.4.46-8)
PreDepends: libc6 (>= 2.17)
PreDepends: libselinux1 (>= 1.32)
На моей чистой установке сервера человечности, apt-rdepends
только потребовал libapt-pkg-perl
для установки. Это намного легче затем ubuntu-dev-tools
и все же все еще рекурсивно, таким образом, Вы добираетесь весь зависимости, скорее затем просто зависимости первого порядка, как apt-cache depends
возвраты.
Прямо сейчас мы иногда поражаем номер 5, если мы знаем об ошибке и 8 99% времени времени.
Завтра, я буду встречаться для стремления 1, 4, 5, 6, и 7. Я думаю единственная вещь, которую можно сделать, выбрать один или два и следовать за ними. Настройте что-то, начните использовать их и покажите всем остальным, насколько более легкий/лучше Ваша жизнь с ними.
Конечно, я просто не могу понять, как компании не видят необходимости достойной системы управления исходным кодом. Мы используем SVN. Общее количество: 1 точка.
Наш процесс сборки делает по крайней мере 5 шагов и хотя мы обсудили много времен способы заставить волшебную 1 сборку шага произойти, мы не нашли, что время реализовало тот сценарий все же. Общее количество: 1 точка.
Да. Как указано прежде, они не создаются автоматически, но у нас есть ежедневные сборки, включенные в шаг обзора кода, который мы делаем каждый день. Общее количество: 2 точки.
Да, Богомол используется нашей компанией с этой целью. Общее количество: 3 точки.
К сожалению, нет. Новые возможности, кажется, более важны, чем bugfixes. Вплоть до времени, когда они определенно должны быть зафиксированы. Который является часто слишком поздним. Общее количество: 3 точки.
Мы обновляем расписание все время, с помощью burndown-диаграмм для оценки времени, мы закончены. Общее количество: 4 точки.
У нас есть некоторые спецификации, но я не назвал бы наши проекты полными спецификацией. Существует много комнаты для улучшений здесь в нашей компании. Общее количество: 4 точки.
Да, наше здание компании находится в тихом районе больше чем без 2 или 3 разработчиков в той же комнате. Общее количество: 5 точек.
Нет. Общее количество: 5 точек.
Мы только недавно реализовали весь отдел QA, состоящий из трех тестеров. Общее количество: 6 точек.
У нас нет слишком большого колебания нашей команды, но интервью содержит несколько вопросов, важных для кодирования, где кандидаты должны записать некоторым демонстрационным классам и т.д. Общее количество: 7 точек.
Нет, печально не, но это - прекрасная идея. Общее количество: 7 точек
В целом, я думаю, что существует большой простор для совершенствования, но 7 точек не могли бы быть худшим счетом по сравнению с другими компаниями, с которыми мы работаем.
Один (1). у нас есть управление исходным кодом. но это - маленький запуск - компания, таким образом, у меня все еще есть большие надежды.
Мой текущий проект: 1 Y, 2 Н, 3 Н, 4 Y, 5 Н, 6 Н, 7 Н, 8 Н, 9 Н, 10 Y, 11 Н, 12 Н
Общий счет: 3
Угадайте то, что, это сосет. Команда разработчиков боролась за 2, 3, и 5, но она никогда вполне утверждена управлением. Операционное программное обеспечение таким образом багги, который чинит взлом, берут все время, и никому не разрешают сделать эти "низкоприоритетные" операции типа.
Забавная вещь состоит в том, что этот проект находится в компании уровня 5 CMMI. Идет для показа то, что это стоит.
Current Company через большинство проектов, некоторые хуже (намного хуже!)
1:Y, 2:Y, 3:Y, 4:Y, 5:N, 6:N, 7:Usually, 8:N, 9:N, 10:N, 11:N, 12:N
Для меня большие проблемы в моей текущей Компании равняются 10 и 11.
У нас нет специализированного тестового ресурса даже при том, что у нас есть ресурс разработки 100 + разработчики, не один профессиональный тестер!Угадайте что? Тестируя aint't хороший, я удивил качеством приложений, которые мы производим, testiment к качеству некоторых наших групп разработчиков.
Наш процесс interveiew сосет большой стиль. У одного разработчика, которого мы недавно наняли только, были знания в C и коде emdedded для satelight получателей. Мысль мы - microsoft/.NET/VB6/SQL Сервер. У него не было опыта что поэтому когда-либо с базами данных любого описания или разработки WinForms.
Когда я опросил, как он был нанят, мне сказал технический руководитель, который был в группе интервью, что персонал запретил ему задать ТЕХНИЧЕСКИЕ вопросы, потому что, когда парень был приглашен на интервью, ему не сказали, что это было техническим интервью!
Проблема с тестом Джоэла в том, что даже набрать 12 не означает, что вы работаете в хорошей компании. Хотя, если у вас ноль, скорее всего, нет.
В настоящее время у меня есть клиент, работающий на семерке, что означает, что теоретически у них дела обстоят неплохо. Дело в том, что они все еще сильно облажались из-за других проблем (плохая архитектура, отсутствие поддержки со стороны руководства и т. Д.)
У меня смешанные чувства по поводу № 11. С одной стороны, я думаю, что несколько случайных вопросов на белой доске интервью могут ввести в заблуждение. Кандидаты не всегда этого ждут, они нервничают и просят писать код перед аудиторией. Ага! С другой стороны, я чувствую, что вы можете почувствовать, как кто-то впишется в вашу организацию с помощью короткой компьютерной викторины.
Если вы используете временную службу с временным наймом, учитывается ли это, если вы проводите проверку кода на их ранние работы? Тогда работа превращается в викторину.