Tuesday, October 12, 2010

Как заставить работать Sample Сode в iPhone Симуляторе.

Аннотация

Предположим, что Вы начинающий разработчик iPhone и уже знакомы с азами Objective-C и знаете как в Xcode создать проект, новые классы и т.п. Вполне естественно, что на этом этапе своего профессионального развития Вы захотите открыть в Xcode пример кода какой-то простенькой программы (Sample Code) для iPhone, покопаться в ней и, конечно, протестить ее на iPhone Симуляторе. Допустим Вы смогли найти такой Sample code, открыли его в Xcode, просмотрели и нажали на Build and Run, что бы запустить программу в Симуляторе. В этом случае будьте готовы, что с первого раза у Вас это сделать не получится, и скорее всего из-за двух ошибок:


1. "[BEROR]error: There is no SDK with the name or path 'iphoneos4.0'";
2. "Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain".


Именно о том, как устранить эти ошибки и заставить iPhone Симулятор открыть Sample Code и будет идти речь в этой статье.


Преодолеть эту проблему для Вас, как начинающему разработчику iPhone, очень важно, потому что это придаст Вам уверенности в своих способностях и сохранит Ваше воодушевление для дальнейшего освоения Objective-C и Xcode. И что самое главное, Вы сможете открывать без проблем любой Sample Code готовой программы для iPhone и изучать ее устройство и работу на практике.

Где найти Sample code?

Для того, что бы "играться" с рабочим кодом готовой программы для iPhone его надо сперва где-то найти. Для этого есть два способа:

Способ 1

Sample code можно найти на официальном сайте Apple для разработчиков. Зайдите на эту страницу http://developer.apple.com/library/ios/#navigation и нажмите на кноку, на которой написано «Download Sample Code»:



После нажатия кнопки пойдет загрузка Sample code UICatalog. Это код, запускающий программу для iPhone, в которой представлены примеры различной реализации кнопок, переключателей и т.д. Вот как отобразит этот код iPhone Симулятор:



Если вы выберете из раздела бокового меню Resourse Types опцию Sample Code, у Вас будет возможность скачать код других программ.



Способ 2

Sample code можно найти на Вашей персональной страничке в http://developer.apple.com. Для этого залогинтесь и найдите на главной страничке в боковом меню раздела Resources for iOS 4.1 ссылку под названием Sample Code.




Способ 3

Sample code можно так же найти в Xcode. Для этого: 

В верхнем меню Xcode в разделе Help выберете Developer Documentation. В поле поиска введите ключевое слово, например UIButton.



В результате поиск выдаст страничку с описанием класса UIButton (это класс, на основе которого можно создавать объекты кнопок). Кроме всего прочего на это страничке Вы можете найти и скачать Sample Code программ, в которых есть пример реализации этого класса.



Альтернативный способ зайти на эту же страницу в документации: в коде сделать клик на ключевом слове, удерживаю зажатой клавишу Option (Alt), в данном случае этим ключевым словом должно быть UIButton.

Кликаем на один из примеров кода, в нашем случае это будет тот же UICatalog:



После этого открываем в Xcode проект выбранной программки (он же Sample Code) через клик на кнопке с соответствующей надписью:


Как открыть Sample Code в iPhone Симуляторе?

Итак, как было сказано выше, когда Вы попытаетесь запустить Sample Code в iPhone Симуляторе у Вас это может не получиться из-за ошибок (errors), о которых вам сообщит Xcode.

Как устранить ошибку #1"[BEROR]error: There is no SDK with the name or path 'iphoneos4.0'".

Для устранения этой ошибки Вам необходимо изменить настройки Base SDK в Вашем проекте:

1. Зайдите в Info Вашего проекта. Это можно сделать, если выделить папку с названием проекта одним кликом (обыно его иконка отображается синим цветом) и использовать шорткат +I.





2. В открывшемся окне Info Вашего проекта выберите закладку Build.



3. Найдите опцию под названием Base SDK и выберите самую последнюю из доступных в списке версию iOS Device:


4. Если эта ошибка не будет устранена таким образом, тогда попробуйте изменить Base SDK еще и настройке Active Target "Target UICatalog". Для этого в рабочем окне Вашего проекта зайдите в меню Project и выберите Edit Active Target "Target UICatalog":







Если Вы сделали все как написано, первая ошибка должна быть успешно устранена. Проверьте это открыв этот Sample Code в Симуляторе.

Как устранить ошибку #2"Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain".

Для устранения этой ошибки надо указать программе, что Вы собираетесь открыть Sample Code в Симуляторе, а не в настоящем iPhone.

1. Зайдите в то же меню Project и выберите опцию Simulator в настройке "Set Active SDK":


Нажимайте Build and Run и симулятор должен открыть заветный Sample Code без проблем.

Как сделать аудио файл для iPhone в формате .caf

Информацию об этом можно найти в документации Apple здесь, в разделе Processing - How do I convert an audio file to the preferred format for iPhone OS?

/usr/bin/afconvert -f caff -d LEI16 {INPUT} {OUTPUT}

Но... там не хватает практического примера того, как правильно прописать формат источника (input) и его формат на выходе (output). Об этом написано здесь:

afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf

Tuesday, August 17, 2010

Как сделать USB флешку загрузочной и установить с нее Windows 7 на Netbook MSI U-90

Как сделать USB флешку загрузочной.

Из командной строки на винде надо запустить программу diskpart, а потом сделать следующие действия:

list disk
select disk (указать номер_желаемого_диска)
clean
create partition primary
active
format fs=fat32 quick
assign

Как установить Windows 7 с загрузочной USB флешки

Вставляем Инсталяционный диск Windows 7
Копируем все файл с диска на флешку
Вставляем флешку в ноут
Убеждаемся, что ноут будет загружаться с USB HDD
Запускаем комп и следуем указаниям установки

Проблема 1
Если вставить пустую правильно отформатированную флешку и пытаться с неё загрузиться, РС выдаст ошибку типа "вытащите диск и нажмите любую клавишу, чтобы продолжить". Не надо думать, что флешка плохо отформатирована. Когда на флешку скинутся инсталяционные файлы винды, все пойдет как по маслу.

Проблема 2
Иногда могут возникнуть проблемы при попытке продолжить установку винды на выбранный раздел диска. Появится сообщение типа: программе установке не удалось создать новый или найти существующий системный раздел. Чудесные создатели этой "чудной" ОС не подумали о том, что кому-то пригодится таки узанть, как можно создать этот "системный раздел", чтобы продолжить установку... Что бы сделать этот системный раздел не нужно прерывать инсталяцию. Для этого нужно через шорткат Shift+F10 вызвать командную строку, потом вызвать diskpart и по накатанной дорожке... Сколько людей потратили времени на решение этой задачи!... Ну почему же не написать людям про этот шорткат SHIFT + F10!...
Вот ссылочка на тех, кто уже мучился с этой проблемой. Несколько упражнений в том, как еще можно создавать разделы по этой ссылке.


Проблема 3
Но, может возникнуть еще одна ошибка при попытке отформатировать диск в diskparte при команде: format fs=fat32 quick (как хорошо тем, у кого Мас OSX). При попытке решить эту проблему без быстрого форматирования (quick), а обычным: format fs=fat32,  результат будет тот же только ожидать его прийдется гораздо больше. Не надо тратить время.


Проблема 4
Если возникают проблмы с форматированием флешки, тогда можно пойти другим путем ее форматирования: На Виндовз устанавливается прога, которая позволяет отмечать неактивные чекбоксы. Запускаем Форматирование. Отмечаем чекбокс "сделать загрузочный MS-DOS диск". Дальше все как написано в этом посте.


Проблема 5
Когда не удается создать системный раздел при инсталяции, нужно загрузить с флешки инсталяционные файлы на активный раздел РС, перезагрузиться с жесткого без флешки.
Скинуть файлы с флешки на HD можно с помощью программы xcopy. Все команды xcopy здесь.
Чтобы xcopy скопировал не только файл, но и папки надо использовать после указания источника и назначения "/S".

ИТАК: побеждает Решение FIX
Ситуация: Рабочая загрузочная флешка USB с Widows 7 не может произвести установку ОС на HDD, ошибка установки "программе установке не удалось создать новый или найти существующий системный раздел..." В этом случае:

1. Убеждаемся, что HDD отформатирован с помощью diskpart => partition primary/ active/ format fs=ntfs quick/ assign (diskpart можно вызвать во время установки шорткатом SHIFT + F10).

2. Во время установки вызываем (SHIFT + F10) командную строку и копируем все установочные файлы Windows 7 в отформатированный раздел на HDD. Копирование делается с помощью программы xcopy. Выглядит следующим образом: >xcopy C:\ E:\ /S (где С - HDD, а Е -  флешка, S - команда, которая заставляет копировать все файлы, папки и содержимое папок).

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

4. После установки винды при запуске будет вылетать окно с выбором загрузки (Windows 7 или Его установка). Избавиться от этого "выбора" можно через изменение файла boot.ini. Сделать это можно на программном уровне так: Cтарт -> Мой компьютер -> правая кнопка клик -> Свойства -> Дополнительно -> Загрузка и восстановление (Параметры) -> Загрузка операционной системы. Вот ссылка с подробным объяснением.

5. Вот и все. Если винда вдруг полетит ее можно будет восстановить или установить заново уже без USB флешки, а прямо с HDD. Для этого нужно будет поменять настройки boot.ini обратно и выбрать Установку винды.

Вот полезные ссылки по установке Windows 7 на Netbook:
Первая ссылка, вторая ссылка.

Thursday, July 15, 2010

RealtyCommission - программа на Java+GWT=JavaScript по работе с недвижимостью.

Вот решил сделать небольшую программку RealtyCommission для вычисления комиссионных для агентства недвижимости. Программа написана на языке Java (конечно же ООП) с использованием GWT. Так что это еще один шаг на пути к разработке сайта на Java.

Немного о самой программке. Если недвижимость покупается через АН, обычно за это платят агентству комиссионные. Комиссионные вычисляют по процентному соотношению к стоимости недвижимости. Обычно это может быть 1,5% или 2,5% или 3% или 5%. Как не странно, но некоторые люди забывают как делать вычисления с процентами. Для таких людей программка RealtyCommission облегчит эту задачу.

На всякий случай, напомню как делать арифметические вычисления с процентами.
Например: Квартира стоит 90000у.е. АН надо заплатить 5% комиссионных от ее стоимости.
Вычисляем: 90000 * 5 / 100 = 4500. Итак, комиссионные составляют 4500у.е.

Monday, July 5, 2010

UML – хорошее начало для проектирования сайта на Java. Часть 4: VIOLET - free UML editor

На свое удивление я нашел ссылку на отличный бесплатный инструмент по созданию UML диаграмм. Называется он Violet. Скачать его можно здесь.
Для того, что бы скаченный *.jar файл заработал надо выполнить в Terminal следующую команду (все пишется одной строчкой): java -jar имя_скаченного_файла.jar.

Программа Violet работает отлично, за исключением того, что некоторые клавишы на моем маке начали работать по-другому. Напримкер, клавиша delete стала работать только в сочетании с клавишей fn (я работаю на MacBook Pro). Но это ерунда, по сравнению с тем, как просто можно создавать UML диаграммы, сохранять их и экспортировать в картинку.

Ссылку на эту программу я нашел в книге Кея Хорстмана и Гари Корнела "Java 2. Том 1. Основы. Восьмое издание", стр. 130.

Пример пробной диаграммы (не обращайте внимание на содержание, это просто пример).

Thursday, July 1, 2010

Вопросы для подготовки к собеседованию на вакансию mid and senior Java developer

Вопросы и ответы от Якова Фейна (Yakov Fain) он же Budam для тех, кто готовится к интервью на вакансию mid and senior Java developer: "Secrets Of The Masters: Core Java Job Interview Questions".

Tuesday, June 29, 2010

UML – хорошее начало для проектирования сайта на Java. Часть 3: учусь на своих ошибках

По диаграмме сайта из этого поста я уже получил конструктивное замечание от моего друга-программиста, за что очень признателен. Вывод, который я сделал для себя: не нужно было связывать эту диаграмму с UML. Суть замечаний следующая:

...рисунок, который отображает структуру сайта, не есть UML диаграмма.

Во первых, любое взвимоотношение между классами может быть только:
- зависимость
- ассоциация
- наследование
- композиция

В том рисунке не понятно о роде взаимоотношений.
Таже не понятно чем DVD1 отличается от DVD2 или CD2 от CD1 (кроме порядкового номера).
НИКОГДА не используй переменные или константы (и методы) в ввиде номера (типа v1, const3) чтобы отобразить, что они отличаются.

Переменная, константа или метод должны играть 2 роли:
1) Ссылка на данные (если метод, то на действие);
2) Описание. Оно не есть обязательным для исполнения компьютером, а для человека.
Когда описательной информации нужно больше, то добавляют комментарий. НО коментарий не должен заменять названия. Сравни:
а) S v1 = new S()
b) S v1 = new S() // this is circle
c) Shape shape = new Circle();

Ты читаешь код, что для воспрятия/понимания лучше?

Дальше.

Суть UML в том, что есть определенный набор знаков/символов, которые являются стандартом.
Сам символ/знак несет определенную информацию вместо кучи текста, о котором знают все, кто знает стандарты UML. Как говорят, 1 рисунок заменяет 1024 слова.

По этому, в UML существует определенный набор символов и диаграмм UML, которые нужно понимать что они значат и уметь ими пользоваться. Каждая диаграмма описывает модель с разных точек зрения, контекстов и целей. Это значит, что при описании любой структуры в UML нужно:
а) выбрать нужную диаграмму UML;
б) описать модель пользуюсь стандартными символами/знаками UML.

И тебя поймут многие :)

Кроме всего прочего этот человек считает, что лучшая книга по UML написана Мартином Фаулером (на англ. Martin Fowler). Судя по всему эта книга называется "UML Distilled: A Brief Guide to the Standard Object Modeling Language".

Благодаря таким конструктивным замечаниям, я вношу поправку к предыдущему посту об UML: сделанную диаграмму сайта webnetika.com лучше рассматривать, как карту сайта, а не UML диаграмму. Я решил оставить эту диаграмму, и не переделывать уже написанные посты. Возможно это поможет кому-то избежать моих ошибок.

Saturday, June 26, 2010

Не швыцай.

Не швЫцай. (Выудил из подкаста Budama).

Это выражение с еврейского, что означает "не хвастай" в контексте осторожности, которую надо соблюдать, что бы не вызвать зависти ближних и не нажить себе лишних недоброжелателей на ровном месте. Не говорите, что у вас все лучше, чем у других.

И еще один афоризм: кто знает – делает, кто не знает – учит.
Высказывание Генри Форда (вольный перевод с англ.): если вы думаете, что можете это сделать – вы правы, если вы думаете, что не можете это сделать – вы тоже правы.

UML – хорошее начало для проектирования сайта на Java. Часть 2.

Для начала я сделал диаграмму сайта www.webnetika.com в его изначальном состоянии (html+css, no Java) на момент 26 июня 2010 года. Это простая диаграмма взаимодействия всех страниц сайта. Возможно, если делать диаграмму в паре с другим программистом (а именно на этом настаивает Крэг Ларман в своей книге по UML), то она могла бы получиться у меня еще правильнее. Хотя я уверен, что старую структуру  сайта (назаву ее так) я изобразил правильно.





UML – хорошее начало для проектирования сайта на Java. Часть 1.

UML - Unified Modeling Language (унифицированный язык моделирования).

Прослушав подкаст (podcast) под названием "Програмирование в стране Утопия" от Budam, я понял что любую программу нужно начинать с ее диаграммирования (хотя кому-то это может показаться и утопией). В принципе, о пользе и необходимости такого подхода (использования UML в начале любого проекта по программированию) я не раз слышал и от знакомых программистов. Польза от этого всем: такой подход не только помогает разобраться другим в программе, но и, в первую очередь, самому программисту, который работает над этой программой.

Лучшая книга по UML называется "Применение UML и шаблонов проектирования: введение в объектно-ориентированный анализ, проектирование и унифицированный процесс UP" (английское название: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development). Автор книги: Крэг Ларман (Craig Larman). Уже вышло третье издание этой книги, я нашел ее англ. версию и уже читаю, правда не в PDF, а в DJVU (маковскую версию проги для чтения djvu можно скачать здесь).

Итак, основная идея этого поста такая: проектирование сайта на Java должно начинаться с диаграммирования, созданного с помощью UML. Таким же образом полезно начинать проектирование любой программы на Java.

Friday, June 25, 2010

Josefine – CMS на Java

Я побывал на сайте разработчиков Josefine – CMS на Java. Было интересно узнать какие плюсы CMS на Java они выделяют.

Во-первых, РЕПУТАЦИЯ. Они сравнивают разработку сайта на PHP, как строительство дома из конструктора лего. Их вывод: дешево и быстро, но не надежно. Поэтому подход к разработке сайта на Java они смело называют "решением для тех, кто дорожит своей репутацией", и пользуется профессиональными инструментами (читай Java).

Во-вторых, БЕЗОПАСНОСТЬ. Они убеждены, что сайт на Java намного труднее взломать, чем на PHP. Они утверждают, что "случаев успешного взлома веб-систем на основе Java практически не известно".

В третьих, БЫСТРОДЕЙСТВИЕ. Быстродействие систем на Java (обрабатка множества одновременных запросов) на порядок превышают показатели аналогичной системы на основе PHP.

В четвертых, ИНДИВИДУАЛЬНОСТЬ. Разработчики CMS Josefine считают, что технология Java позволит создать сайт, отличающийся своей индивидуальностью от дешевых штатных экземпляров.

Конечно, не все согласятся с мнением авторов по части PHP (см. форум на sql.ru), но взять себе на заметку эти сравнения не помешает.

По мимо всего прочего с этого сайта можно скачать видео размером около 100Мб, что бы посмотреть эту CMS на Java в работе. Видео показывает как создается новый шаблон сайта на основе шаблона Yahoo. ИМХО идея интересная, но реализация кажется сложной.

Sites on Java

The list of sites that works on JAVA check this link:
http://www.ieee.org
http://browser.netscape.com/ns8/
http://www.zonelabs.com/store/content/home.jsp
http://www.consumerreports.org/main/home.jsp
http://www.diabetes.org/home.jsp
http://mlb.mlb.com/NASApp/mlb/index.jsp
http://www.freefoto.com/index.jsp
http://www.delta.com/home/index.jsp
http://www.ca.gov/state/portal/myca_homepage.jsp
http://europa.eu.int/eurodicautom/Controller
http://www.furl.net/index.jsp 

http://headhunter.ru/
http://job.ru/
http://www.siemens.com/index.jsp
http://www.tsa.gov/public/
http://www.mass.gov/portal/index.jsp?pageI...me&sid=massgov2
http://www.students.gov/STUGOVWebApp/index.jsp
http://www.bt.com/index.jsp
http://www.adweek.com/aw/index.jsp
http://kidshealth.org/kid/
http://www.belgium.be/eportal/index.jsp
http://www.nymex.com/jsp/index.jsp
http://www.questia.com/
http://europa.eu.int/eures/index.jsp
http://www.caregiver.org/caregiver/jsp/home.jsp
http://www.idnnow.com/index.jsp
http://www.jewishencyclopedia.com/index.jsp
http://www.fly.faa.gov/flyfaa/usmap.jsp
http://buros.unl.edu/buros/jsp/search.jsp
http://www.oceansatlas.org/index.jsp
http://www.transunion.com/
http://www.walmart.com/
http://www.walmartstores.com/ 

http://www.eagames.com 
http://www.ribk.net/
http://www.novell.com/
http://www.ibm.com/us/

http://lgservice.com/index_b2c.jsp
http://netscape.com/main3.adp
http://www.siemens.com/index.jsp
http://www.1c.ru/
http://www.ntv.ru/
http://www.corel.com/servlet/Satellite?pagename=Corel3/Home

http://e.gov.kz/
http://www.linux.org.ru

About this blog

This blog is about everything related programming and something else )).
There are many things to learn, so I don't want to loose useful material that I am finding during my work.
I hope this blog will help somebody else and not just to me.