?

Log in

No account? Create an account

Pod install vs pod update

To be clear, here is the intended usage of pod update vs. pod install (which is inspired from bundler in the RubyGems world):

Detailed presentation of the commands

pod install

This is to be used every time you edit your Podfile to add a new pod to it (or remove one from it).

Every time the pod install command is run and it downloads and install new pods, it writes the version that it has installed, for each pods, in the Podfile.lock file. This file is intended to keep track of the installed version of each pod and to lock those versions
When you run pod install, it only resolve dependencies for pods that are not already listed in the Podfile.lock.
For pods that are listed in the Podfile.lock, it downloads the explicit version listed in the Podfile.lock without trying to check if there is a newer version
For pods that are not listed in the Podfile.lock yet, it searches for the version that matches what is described in the Podfile (like in pod 'MyPod', '~>1.2')
pod outdated

When you run pod outdated, CocoaPods will list all pods that have newer versions that the ones listed in the Podfile.lock (the versions currently installed for each pod) and that could be updated (as long as it matches the restrictions like pod 'MyPod', '~>x.y' set in your Podfile)

pod update

When you run pod update SomePodName, CocoaPods will try to find an updated version of the pod SomePodName, without taking into account the version listed in Podfile.lock. It will update the pod to the latest version possible (as long as it matches the version restrictions in your Podfile).

If you run pod update without any pod name, CocoaPods will update every pod listed in your Podfile to the latest version possible.

Intended usage

With pod update SomePodName, you will be able to only update a given pod, namely check for a new version, for an update. Whereas pod install won't try to update versions of pods that already have been installed.

Normally, when you add a pod to your Podfile, you would run pod install, not pod update, to install this new pod without risking to update existing pod in the same process.
You will only use pod update when you want to update the version of a specific pod (or all the pods).

Benefits & Scenario Example

If you are the kind of people that don't commit the Pods folder into your shared repository, don't forget to at least commit & push your Podfile.lock file. This file must always be pushed to the repository.

If user1 creates a project and uses it with some pods A,B,C, he will create a podfile with those pods and run pod install which will install pods A,B,C say all in version 1.0, because they are all in version 1.0 at that time. The Podfile.lock will keep track of that and note that A,B and C are each installed as version 1.0.
Later, user1 wants to add a pod D into its Podfile. He should thus run pod install afterwards, so that even if a version 2 of pod B has been released since his first pod install, his project will keep using version 1, because he just want to add pod D without risking to update pod B unexpectedly.
Then user2, who never worked on the project before, starts kicking in and want to participate. He clones the repository then use pod install. This will guaranty him that he will get the exact same pods with the exact same versions that user1 was using. Even if pod C has been updated to version 2 since (but the project's code haven't been tested with this version 2 yet), user2 will get the pod C in version 1 because that's what is registered is Podfile.lock. pod C is locked to version 1 by the Podfile.lock (hence the name of this file)
Later, user1 wants to check if there are any updates available for the pods. He runs pod outdated which will tell him that both pods B and C have a version 2 released. user1 want to update pod B, but not pod C, so he will run pod update B which will install B version 2 (and update the Podfile.lock accordingly) but will keep pod C in version 1.
В принципе, это можно было сделать и на любом другом языке. Но сначала в голову пришел язык ruby, а так как на ноуте его не было, воспользовался swift.
Написал такой вот код.

let startURL = "http://vk.com/im?peers="
let endURL = "&sel=c1"

var midURL = ""
for index in 125...150 {
midURL = midURL+"_c"+String(index)
}
var url = startURL+midURL+endURL
NSLog(url)

В цикле устанавливал цифры кратные 50 (если больше, то часть диалогов недоступна для отметок). А дальше через поиск браузера по названию искал нужный мне диалог. Через 5 минут нужный мне диалог был найден.

Tags:

Блоки в Objective-c

Познакомился недавно с замечательной технологией - "Блоки". Отличная вещь. Поначалу смотрел на примеры, как баран на ворота, но на курсах преподаватель доступно объяснил все прелести его использования. Поначалу казалось, что кроме компаратора, который сравнивает 2 объекта при сортировке массива блоки никак использовать нельзя. Но познакомившись с блоками понимаешь, что их можно использовать в качестве делегатов и сокращать количество написанного кода.
Сегодня узнал что щебня может быть много, и что он может быть не той фракции которую заказывал. А на бумагах все правильно, как в анекдоте "- Ты [такую-то херню] видишь? - Нет. - А она есть". Вот так и тут.

Совет дня:
Заказывая стройматериалы (щебень, песок, торф и пр.) сначала закажите небольшую партию и если качество устроит - заказывайте большую партию и перед выгрузкой также проверьте качество.

Мое знакомство со Steam.

Смотрел прохождение FallOut 3 и что-то захотелось в нее сыграть. Скачал steam для mac os x, залогинился. Нашел Fallout 3 и купил за 109 рублей. После скачивания, steam ругнулся что не та платформа и игра не может быть установлена. И тут я понял, что купил виндовозную версию. Почему эти .уки не отфильровали сразу? После этого удалил весь этот steam с его fallout'ом на><уй. Буду и дальше смотреть прохождения.

Tags:

Курсы по objective-c

Записался на курсы со стпжировкой по objective-c. Программу просмотрел мельком, большую часть вроде понимал.
Думал первые 3 лекции воду наговорят, а потом плавно перейдем к разработке под iPhone. Хрен.
Все начали с основ си. Причем на втором занятии понял что нихрена не понимаю что такое указатели и адреса. Со скрипом начинаю догонять что к чему.
Посмотрим как дальше пойдет, но пока дают все очень основательно.

Троян комплит.

Силел на работе, никого не трогал. Решил частоиспользуемые модули скомпилить в dll. Ну для теста сделал dll с функцией showmessage. Стал в другом проекте ее подключать и нате. Касперский объявил прогу трояном. Хз почему.
Тут же отчет ушел в системный отдел. Прогу отправили в Касперскому, запечатанную в пластиковой баночке. А я сижу и офигеваю как так. :)

Гопники.

Сегодня стал свидетелем фактически астрономического явления. Шел на обед и на главной улице перед зданием увидел 3х классических гопников. Слегка подвыпивших и громко о чем-то споривших на блатном (как мне показалось) языке. Обычно такие персонажи тусят возле алкомагазинов или у подьездов и то вечерами, а тут среди бела дня.
Давно не писал, но думаю это интересная история.
Случилось так, что я снимал квартиру у предприятия, в котором работаю. Договор был на год, и хотя все убеждали что договор продлят, в итоге нас с квартиры попросили. Но поскольку изначально квартира была пустой нам пришлось в нее купить хоть какую-то кухню и стиральную машину. Съезжая с квартиры мы не знали куда деть все это хозяйство и нашли простой выход найти жильца, с которым после нас заключили договор на эту квартиру и договорится о покупке. Нам повезло, нашли. Договорились показать кухню. И после показа он согласился с покупкой кухни, стиральной машинки и микроволновки. Цену обговорили всех все устроило. Далее я предложил заключить договор купли-продажи. На что будущий жилец ответил "да я ж все оплачу!", на что я сказал "я не сомневаюсь, договор - чистая формальность. Заодно и потренируюсь в заключении договоров." Указал срок оплаты через 2 месяца с момента подписания, чтобы можно было по частям погасить.

Ну и по окончании срока договоров начались приключения. Человек сначала свалил в Питер и не отвечал на звонки. Затем мы нашли его через "вконтакт" (спасибо всевидящим соцсетям). Вышли на связь и договорились что по приезду он позвонит и все оплатит. Естественно не позвонил и не оплатил. После очередного "завтрака" решил что пора угрожать. Написал что подам в суд и обращусь в соц.отдел, который предоставил ему это жилье и пожалуюсь с требованием выселить (есть при коммерческом найме такой пункт, что при поступлении жалоб соцотдел может расторгнуть договор найма). Если бы я выиграл суд и соц.отдел пошел бы мне на встречу, из-за неуплаченных 50 тыс. он потерял бы примерно 200 выплатив мне 50 тыс по договору и примерно 150 переплаты по ипотечным процентам, и 200 тыс. потерял бы при последующем съеме жилья (имеется в виду за год). Мое сообщение как-то моментально подействовало на неплательщика и деньги нашлись буквально через несколько дней. Больше всего в этом всем забавляли ситуации "я позвоню вечером" и тишина. Или "в субботу утром зайду и занесу всю сумму" и тишина. В конечном итоге человек пришел с обещанием занести всю сумму, но занес из 50 только 30 тыс. При этом не взяв расписки. Сегодня опять написал ему с требованием погасить оставшуюся сумму. В итоге его родня перевела на карту не 20 500, а 25 000. (то есть, переплатили). И сразу же повалились СМС "Ой, я переплатил, как бы мне обратно 5 тыс. забрать?). Какое-то время боролся с соблазном также растянуть удовольствие на месяц-полтора и покормить в ответку завтраками, но договорились что верну лишние деньги завтра.

Как я уже говорил, человек отдал мне деньги не взяв расписки. То есть по договору он все еще должен мне 50 тыс. :) С другой стороны, он мог первый лист договора взять и перепечатать сумму на один рубль (у нас договор был скреплен, и подписи стояли только на последнем листе). Тогда было бы весело. Бегал бы по судам доказывая что моя версия договора правильная.

В данном истории с одной стороны я составил кривой договор, а с другой безответственный покупатель, который сначала не оценил свои возможности по покупке, а потом тянул с оплатой. При этом как-то невнимательно отнесясь к деталям. Сроки просрочены. Сумму всегда называл 50 тыс., а не 50 500 (пришлось в переписке это отдельно уточнять, чтобы при личной встрече не доказывать).

У меня были ситуации когда я не мог погасить свой долг. Тогда я заранее звонил человеку и спрашивал сможет ли он потерпеть или мне надо перезанимать. А тут просто тишина, что раздражало больше всего.

На текущий момент задолженности покрыта. А договор оставлю на черный день. Когда денег не будет - предъявлю "неплательщику" (шутка конечно) ;-)


P.S.
Повезло новому квартиранту что он со мной заключил договор, а не с brakhma например. Тот бы его к текущему моменту оставил бы без штанов. =)
Ну и жаль, что я не указал пеню по просрочка даты оплаты. В следующий раз буду умней и хитрей.

Profile

andrey_torlopov
Andrey Torlopov

Latest Month

February 2016
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
2829     

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by yoksel