iPhone: Нет сети Мегафон

Что делать, если Ваш iPhone вдруг таинственным образом перестал ловить сеть Мегафон?

Ответ: попробуйте отключить 3G сети и Сотовые данные. Для этого нужно зайти в Настройки->Основные->Сеть->Включить 3G, Сотовые данные.

Я не знаю, в чем тут точно дело, в операторе или в телефоне. Но по опыту скажу, что телефон я не трогал и он перестал вдруг работать. Полагаю, что у Мегафона проблемы с 3G сетями иногда бывают, по крайней мере на Айфонах.

About wget on Mac

  1. What is wget?
    – GNU Wget (or just Wget, formerly Geturl) is a computer program that retrieves content from web servers, and is part of the GNU Project. Its name is derived from World Wide Web and get. It supports downloading via HTTP, HTTPS, and FTP protocols.
  2. How to install wget on Mac to use it through Terminal?
    – Look here for installation instructions: http://www.max-up.ru/news-apple/wget-mac-os-snow-leopard.html
  3. How to use wget in Terminal?
    – Open terminal, determine which file you want to download and type something like this:

    wget http://172.28.xxx.xx/directory//style5.css

Writing and appending data to files in iOS

If we want to create a file in iOS and write a lot of something there, we should firstly use NSFileManager class to create a file and then NSFileHandle class to write and append data. NSFileHandle class lets to append data to file and manage files more precisely, while NSFileManager class is simpler and lets to create and manage files and folders.

Firstly, we get a path to Documents directory(folder) and make a full file name:

NSArray *paths = NSSearchPathForDirectoriesInDomains
 (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"%@",documentsDirectory);
//make a full file name
NSString *fileName = [NSString stringWithFormat:@"%@/yourFileName.txt", documentsDirectory];
NSLog(@"File path and name:%@", fileName);

Then we create an instance of NSFileManager class and check, if the file exists of not. And if not, then we create a file:

NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath: fileName ] == YES)
 NSLog (@"File exists");
else
{
 NSLog (@"File not found");
 [filemgr createFileAtPath:fileName contents:nil attributes:nil];
}

Then we create an instance of NSFileHandle class to write and append data. We also convert NSString to NSData, since we can write only NSData to file. We also append \n to write each next record on a separate line. After we finish working with file, we should close it.

NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:fileName];
if (myHandle == nil)
 NSLog(@"Failed to open file");
NSString *content;
NSData *theData;
for (int i=0; i less 100, i++) {
 content = [NSString stringWithFormat:@"%d\n"
 NSLog(@"content: %@", content);
 theData=[content dataUsingEncoding:NSUTF8StringEncoding];
 [myHandle seekToEndOfFile];
 [myHandle writeData:theData];
}
[myHandle closeFile];

To find out a file, you should add a parameter “Application supports iTunes file sharing” to Info-Plist file, then look at your application’s files in iTunes. If you use Simulator, then you should go to Finder, press Go or Shift+Cmd+G and type ~/Library, then go to Application Support/iPhone Simulator/5.0/Applications/Some number/Documents.

References and useful links:

How to enable SVN via Proxy on Mac

To enable SVN via Proxy on Mac do the following:

  1. Open Terminal
  2. Type vim ~/.subversion/servers
  3. Enter Insert mode by typing and deleting any letter
  4. Go to the line [global] at the bottom
  5. Change configuration to: 

    http-proxy-host = 172.28.111.1(your proxy address)
    http-proxy-port = 3128 (your proxy port)
  6. Don’t forget to remove # symbols, they mean commentary.
  7. Press escape
  8. Type :wq, which means that you want to exit text editor and save changes
  9. Ready! Don’t forget to use proper url for svn which supports WebDAV, etc.

References:

  1. http://ru.wikipedia.org/wiki/WebDAV
  2. http://www.rubyrobot.org/tutorial/subversion-with-mac-os-x
  3. http://www.eng.hawaii.edu/Tutor/vi.html

“ZXingWidgetController.h not found” ZXing installation problem solution

After investigation of all commentaries in
How to install ZXing in Xcode 4 I finally solved a problem of “ZXingWidgetController.h not found”. But to totally solve it, you must do several things and none of the commentaries contain them all. So I decided to write here, what you should do to finally solve this problem. So,

  1. Your full project path should not contain space characters. For example, “AppName 1.0” is not correct. You should use “AppName_1.0” or “AppName1.0”. This is because the search of header paths and user header paths doesn’t work properly otherwise.
  2. Let’s assume that your zxing folder is located in the root of your app folder. Then your header search paths should be something like this:

    For copy paste purposes:

  3. You should repeat this also for User Header Search Paths

Commentary on installation and using of ZXing:
When you import it to your project, firstly restart Xcode and open only your project one time. Then drag ZXingProject file to your target on Project Navigation bar. There must be a plus sign at the left. Drag zing from your project folder. Copy ZXing to your project folder firstly in this way:

Don’t forget to check a compiler for ZXingWidget Project. It might be old GCC compiler. It must be edited to Apple LLVM Compiler:

Also, it is very important, that you have only one copy of source files in the directory of application project. Otherwise, you might get errors like this.

References:

  1. http://yannickloriot.com/2011/04/how-to-install-zxing-in-xcode-4/
  2. http://zxing.googlecode.com/svn/trunk/iphone/
  3. http://debugfix.com/2011/11/unsupported-compiler-gcc-4-2-selected-for-architecture-i386/

Что нового в iOS 5 ?

Обновление ПО iOS 5

Данное обновление содержит свыше 200 новых функций и возможностей, включая следующие:

• Уведомления:
◦ просматривайте уведомления, собранные в Центре уведомлений, выполнив жест смахивания вниз в верхней части любого экрана;
◦ новые уведомления появляются ненадолго в верхней части экрана;
◦ просматривайте уведомления на заблокированном экране;
◦ переход непосредственно в программу осуществляется с помощью скользящего жеста по значку программы уведомлений вправо на заблокированном экране.
• iMessage:
◦ неограниченно обменивайтесь с другими пользователями iOS 5 текстовыми сообщениями, а также сообщениями с фотографиями и видео;
◦ отслеживайте сообщения с помощью отчетов о доставке и прочтении;
◦ групповые сообщения и безопасное шифрование;
◦ работает через сотовую сеть и Wi-Fi*.
• Киоск:
◦ автоматически сортирует подписки на журналы и газеты, расположенные на экране «Домой»;
◦ отображает обложку последнего просмотренного номера журнала и газеты;
◦ загрузки новых номеров в фоновом режиме.
• Напоминания для работы со списками задач:
◦ синхронизация с iCloud, iCal и Outlook;
◦ основанные на геопозиции напоминания, получаемые по убытии или прибытии по адресу; работают на iPhone 4S и iPhone 4.
• Встроенная поддержка Twitter:
◦ выполните единовременный вход в Настройках и отправляйте твиты непосредственно из программ «Камера», «Фото», «Карты», а также из Safari и YouTube;
◦ добавляйте геопозицию в любой твит;
◦ изображения и имена пользователей профиля Twitter отображаются в Контактах.
• Улучшения функций камеры для устройств, оборудованных камерой:
◦ дважды нажмите кнопку «Домой» на устройстве, находящемся в режиме сна, чтобы отобразить значок быстрого доступа к камере на iPhone 4S, iPhone 4, iPhone 3GS и iPod touch (4-го поколения);
◦ возможность использования кнопки увеличения громкости для съемки фотографий;
◦ возможность использования линий координатной сетки для выравнивания положения камеры при съемке;
◦ изменение масштаба на экране предварительного просмотра жестом хватания всеми пальцами;
◦ перейдите в раздел «Фотопленка» с экрана просмотра с помощью жеста смахивания;
◦ нажмите и удерживайте палец на экране для блокировки автофокуса и автоэкспозиции; iPad 2 и iPod touch (4-го поколения) поддерживают только блокировку экспозиции.
• Улучшения фотофункций для устройств, оборудованных камерой:
◦ функция «Обрезать и повернуть»;
◦ удаление эффекта красных глаз;
◦ функция улучшения фотографии одним нажатием;
◦ возможность размещения фотографий в альбомы.
• Улучшения в программе Mail:
◦ форматирование текста с помощью жирных, курсивных или подчеркнутых шрифтов;
◦ возможность изменять отступы в тексте;
◦ изменение порядка имен в адресных полях перетягиванием;
◦ возможность помечать сообщения флажками;
◦ возможность помечать несколько сообщений флажком, как прочитанные или непрочитанные;
◦ изменение звуков предупреждений о получении сообщений e-mail;
◦ S/MIME.
• Улучшения в программе «Календарь»:
◦ вид «Год» на iPad и новый вид «Неделя» для iPhone и iPod touch;
◦ создание события нажатием;
◦ просмотр и добавление вложений событий.
• Улучшения в программе Game Center:
◦ использование собственных фотографий для учетной записи Game Center;
◦ сравнение общих результатов достижений с друзьями;
◦ поиск новых друзей в Game Center с помощью рекомендаций друзей и друзей друзей;
◦ открытие для себя новых игр с настраиваемыми рекомендациями по играм.
• Видеоповтор AirPlay для iPad 2 и iPhone 4S
• Жесты многозадачности для iPad:
◦ используйте жест хватания 4 или 5 пальцами, чтобы перейти на экран «Домой»;
◦ выполните жест смахивания вверх для показа строки многозадачности;
◦ выполните жест смахивания влево/вправо для переключения между программами.
• Настройка, активация и конфигурация непосредственно на устройстве с помощью Ассистента настройки
• Доступность беспроводных обновлений ПО (без использования кабеля)
• Поддержка iCloud:
◦ функция «iTunes в облаке»;
◦ Фотопоток;
◦ функция «Документы в облаке»;
◦ автоматическая история загрузок и покупок программ и книг;
◦ резервное копирование;
◦ Контакты, Календарь и Mail;
◦ функция «Найти iPhone».
• Переработанная программа «Музыка» для iPad
• Ежечасные прогнозы погоды
• Биржевые сводки в режиме реального времени
• Беспроводная синхронизация с iTunes
• Улучшения клавиатуры:
◦ разделенная клавиатура для iPad;
◦ повышенная точность автокоррекции;
◦ улучшенные методы ввода китайских и японских символов;
◦ новая клавиатура Эмодзи;
◦ личный словарь для автокоррекции;
◦ возможность создания сочетаний клавиш (сокращений) для наиболее часто используемых слов.
• Улучшения Универсального доступа:
◦ возможность использования LED-вспышки для индикации входящих вызовов и предупреждений для iPhone 4S и iPhone 4;
◦ пользовательские рисунки вибрации для входящих вызовов на iPhone;
◦ новый пользовательский интерфейс для использования iOS со средствами реабилитации людей с ограничениями жизнедеятельности;
◦ возможность проговаривания выбранного текста вслух;
◦ пользовательская маркировка элементов для VoiceOver.
• Улучшения Exchange ActiveSync:
◦ беспроводная синхронизация задач;
◦ возможность помечать сообщения флажком, как прочитанные или непрочитанные;
◦ улучшенная офлайновая поддержка;
◦ сохранение нового контакта из глобального списка адресов GAL.
• Более 1500 новых API для разработчиков
• Исправления ошибок

Продукты, совместимые с этим обновлением ПО:
• iPhone 4S;
• iPhone 4;
• iPhone 3GS;
• iPad 2;
• iPad;
• iPod touch (4-го поколения);
• iPod touch (3-го поколения).

* Операторами сотовой связи может взиматься обычная плата за передачу данных. Сообщения отправляются как SMS, если функция iMessage недоступна. Операторами сотовой связи взимается плата за доставку сообщений.

Подробную информацию о системе безопасности данного обновления см. на веб-сайте:
http://support.apple.com/kb/HT1222?viewlocale=ru_RU

Гибкие методологии разработки ПО (Agile Software Development)

Подборка из википедии.

Основные идеи Agile Software Development:

▪ Личности и их взаимодействия важнее, чем процессы и инструменты;
▪ Работающее программное обеспечение важнее, чем полная документация;
▪ Сотрудничество с заказчиком важнее, чем контрактные обязательства;
▪ Реакция на изменения важнее, чем следование плану.

Принципы, которые разъясняет Agile Manifesto:


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

———————————————————————————-

Методологии Agile Software Development:

———————————————————————————-

Scrum

Scrum чётко делает акцент на качественном контроле процесса разработки.
Scrum — это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные небольшие промежутки времени (спринты от 2 до 4 недель) предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет. Возможности ПО к реализации в очередном спринте определяются в начале спринта на этапе планирования и не могут изменяться на всём его протяжении. При этом строго-фиксированная небольшая длительность спринта придаёт процессу разработки предсказуемость и гибкость.
Главные действующие роли в Scrum: ScrumMaster — тот, кто ведёт Scrum митинги и следит, чтобы при этом соблюдались все принципы Scrum (роль не предполагает ничего кроме корректного ведения самого Scrum-а, руководитель проекта скорее относится к Product Owner и не должен являться ScrumMaster); Владелец Продукта (Product Owner) — человек, который представляет интересы конечных пользователей и других заинтересованных в продукте сторон; и кросс-функциональная Команда (Scrum Team), состоящая как из разработчиков, так и из тестировщиков, архитекторов, аналитиков и т. д. (при этом размер команды в идеале составляет 7±2 человека). Команда является единственным полностью вовлечённым участником разработки, и отвечает за результат как единое целое. Никто кроме команды не может вмешиваться в процесс разработки на протяжении спринта.
На протяжении каждого спринта, 15-30 дневного периода (длительность определяется командой), создаётся функциональный рост программного обеспечения.
Набор возможностей, которые реализуются в каждом спринте, происходят из этапа, называемого product backlog (документация запросов на выполнение работ), обладающего наивысшим приоритетом по уровню требований к работе, который должен быть выполнен. Запросы на выполнение работ (backlog items), определенных на протяжении совета по планированию спринта (sprint planning meeting), перемещаются в этап спринта. На протяжении этого собрания Владелец Продукта информирует о заданиях, которые должны быть выполнены. Тогда Команда определяет, сколько из желаемого они могут выполнить, чтобы завершить необходимые части на протяжении следующего спринта. Во время спринта команда выполняет определенный фиксированный список заданий (т. н. sprint backlog). На протяжении этого периода никто не имеет права менять список требований к работе, что следует понимать как заморозку требований (requirements) во время спринта.
Product backlog — это документ, содержащий список требований к функциональности, которые упорядочены по степени важности. Product backlog представляет собой список того, что должно быть реализовано. Элементы этого списка называются «историями» (user story) или элементами backlog’a (backlog items). Product backlog открыт для редактирования для всех участников Scrum-процесса.
Sprint Backlog — содержит функциональность, выбранную Product Owner из Product Backlog. Все функции разбиты по задачам, каждая из которых оценивается командой. Каждый день команда оценивает объем работы, который нужно проделать для завершения задач.
Burndown chart — показывает, сколько уже исполнено и сколько ещё остаётся сделать.

———————————————————————————-

Lean


Принципы
▪ Исключение затрат. Затратами считается всё, что не добавляет ценности для потребителя. В частности: излишняя функциональность; ожидание (паузы) в процессе разработки; нечёткие требования; бюрократизация; медленное внутреннее сообщение.
▪ Акцент на обучении. Короткие циклы разработки, раннее тестирование, частая обратная связь с заказчиком.
▪ Предельно отсроченное принятие решений. Решение следует принимать не на основе предположений и прогнозов, а после открытия существенных фактов.
▪ Предельно быстрая доставка заказчику. Короткие итерации.
▪ Мотивация команды. Нельзя рассматривать людей исключительно как ресурс. Людям нужно нечто большее, чем просто список заданий.
▪ Интегрирование. Передать целостную информацию заказчику. Стремиться к целостной архитектуре. Рефакторинг.
▪ Целостное видение. Стандартизация, установление отношений между разработчиками. Разделение разработчиками принципов бережливости. «Мыслить широко, действовать мало, промахиваться быстро; учиться стремительно».

———————————————————————————-

Extreme Programming, XP


Двенадцать основных приёмов экстремального программирования (по первому изданию книги Extreme programming explained) могут быть объединены в четыре группы:
▪ Короткий цикл обратной связи (Fine scale feedback)
▪ Разработка через тестирование (Test driven development)
▪ Игра в планирование (Planning game)
▪ Заказчик всегда рядом (Whole team, Onsite customer)
▪ Парное программирование (Pair programming)
▪ Непрерывный, а не пакетный процесс
▪ Непрерывная интеграция (Continuous Integration)
▪ Рефакторинг (Design Improvement, Refactor)
▪ Частые небольшие релизы (Small Releases)
▪ Понимание, разделяемое всеми
▪ Простота (Simple design)
▪ Метафора системы (System metaphor)
▪ Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
▪ Стандарт кодирования (Coding standard or Coding conventions)
▪ Социальная защищенность программиста (Programmer welfare):
▪ 40-часовая рабочая неделя (Sustainable pace, Forty hour week)

В XP особое внимание уделяется двум разновидностям тестирования:
▪ тестирование модулей (unit testing);
▪ приемочное тестирование (acceptance testing).
Разработчик не может быть уверен в правильности написанного им кода до тех пор, пока не сработают абсолютно все тесты модулей разрабатываемой им системы. Тесты модулей позволяют разработчикам убедиться в том, что их код работает корректно. Они также помогают другим разработчикам понять, зачем нужен тот или иной фрагмент кода и как он функционирует. Тесты модулей также позволяют разработчику без каких-либо опасений выполнять рефакторинг (refactoring).
Приемочные тесты позволяют убедиться в том, что система действительно обладает заявленными возможностями. Кроме того, приемочные тесты позволяют проверить корректность функционирования разрабатываемого продукта.
Для XP более приоритетным является подход называемый TDD (Test Driven Development), сначала пишется тест, который не проходит, затем пишется код, чтобы тест прошел, а уже после делается рефакторинг кода.

Друг дал ссылки на хорошие статьи по данной теме:

http://martinfowler.com/articles/newMethodology.html

Some web sites do not open

If you have a problem opening some web pages these tips may help you. They are about to heal symptoms, not the cause. The cause is usually virus activity.

  1. Open this branch of a registry: cmd-> regedit -> [HKey_Local_Machine\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes]
    It must be clean, except default entry.
  2. Try this in Start/run: md /k notepad c:\WINDOWS\system32\drivers\etc\hosts
    It must be clean, except localhost entry.
  3. Find faults in the pipeline: cmd /k tracert www.yourcite.com
    This tip doesn’t help to fix, but to diagnose.
  4. Clear dns cache:
    cmd /k ipconfig /displaydns
    cmd /k ipconfig /flushdns
  5. Install and run antivirus, for example, Kaspersky antivirus, trial version. http://www.kaspersky.ru/

References:

  1. http://exler.livejournal.com/1385703.html
  2. http://www.labnol.org/software/tutorials/computer-cannot-open-internet-websites/2116/