Thursday, January 27, 2011

Linux commands to be reminded

LINUX
su - зайти под другим пользователем (пример: su devvm)
cat - создать новый файл с содержанием
touch - создать пустой файл
rm -rf - удалить (-r рекурисвно, -f принудительно)
vi /etc/inittab Что бы загрузиться в графическом интерфейсе надо поменять id:3:init:default: на id:5:init:default: цифра 5 указывает на уровень загрузки в графической оболочке X11


ps -x | grep safari Вывод процесса программы Safari (kill safari - посылает команду на завершение)
chmod +x netbeans-6.9.1-ml-linux.sh Установка инсталера для NetBeans (шаг 1)
./netbeans-6.9.1-ml-linux.sh Установка NetBeans (шаг 2)

vi editor
a - перейти в режим редактирования
esc - возвращает в режим просмотра

:wq - сохранить (записать) и выйти из vim (visudo)
:q! - выйти без изменений
Остальные подсказки по этому текстовому редактору смотреть ЗДЕСЬ.

настройка NS сервера
vi /etc/resolve.conf (nameserver присваивается DHCP. Если IP static, можно менять).
service network restart
system-config-network
sudo ifconfig eth0
vi /etc/hosts
nslookup google.com.ua
chattr +i /etc/resolv.conf делает содержание файла immutable
chattr -i /etc/resolv.conf отменяет команды immutable
Остальные подсказки (видео) по настройке NS сервера ЗДЕСЬ.

SVN
svn list http://domain/WW/Trinity/ проверяет содержание директорий
svn co http://domain/WW/Trinity/ делает чекаут (checkout/co) директорий
svn commit дает команду на обновление измененных файлов


svn copy http://www-site-com/WW/Trinity/trunk
         http://www-site-com/WW/Trinity/branches/TRT-322 \
         -m "TRT-322 Creating a private branch of trunk"


svn delete http://www-site-com/WW/Trinity/branches/TRT-322
         -m "TRT-322 Removing obsolete branch from the repository"



A Short SVN Tutorial ЗДЕСЬ и ЗДЕСЬ.

CAT
ctrl + D выйти из CAT (курсор должен быть на пустой строке)
Остальные подсказки по CAT ЗДЕСЬ.

PING
ping -c 4 paniov.com Если не указать в параметре команды Ping количество пингов (в данном примере я поставил -c 4 (-c от слова count)), она будет продолжать пинговать пока ей не дадут команду стоп.
ctrl + c (или delete) Эта команда останавливает в консоле процесс ping.



Wednesday, January 26, 2011

Single user mode with GRUB: how to login in Linux in Single mode and change password of root in Linux

Single user mode in GRUB Linux / change root password:

1. During the start press esc
2. Choose the parameter of the booting
3. Type "a"
4. Write at the end of the sentence "single"
5. Reboot
6. After Linux reboot the last line will be something like this: sh-3.2#
7. Type "chsh" (i.e. change shell)
8. You will see the line with this text:
            Changing shell for root
     New shell [/bin/bash]:
9. Type the new path to the shell: /bin/sh
10. Call for changing root password with the command: passed root
11. Type the new password and confirm it
12. Reboot Linux and login with the new password


А теперь то же самое на русском ))
1. При рестарте надо успеть нажать esc.
2. Выбрать параметр загрузки;
3. Нажать "а";
4. Дописать в конце строки "single";
5. Перезагрузиться;
6. Линукс загрузится, последней будет строчка: sh-3.2#
7. Ввсести в строке: "chsh"; (означает change shell)
8. Появятся строчки: Changing shell for root (1 первая строчка); New shell [/bin/bash]: (2 строчка)
9. Ввести новый путь к shell: /bin/sh
10. Запросить смену пароля рута: passwd root;
11. Ввести новый пароли и подтвердить его, например USXy___tex;
12. Перезагрузиться и зайти под новым паролем.

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).

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

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