понедельник, 28 октября 2013 г.

Работа с фото камерой в Android

В этой статье я хочу рассказать как запустить фото камеру из вашего android приложения, а также как сделать снимок и сохранить полученное фото. Предполагается что у вас уже установлена среда разработки например eclipse и настроен Android SDK.
Для начала необходимо внести изменения в файл AndroidManifest.xml, он находится в корне проекта. Если он октрыт у вас на вкладке Manifest, то вам нужно выбрать AndroidManifest.xml. Далее необходимо добавить следующий код.




здесь мы запрашиваем права на использование камерой и на использование внешним хранилищем данных например SD картой.
Далее можно работать с файлом описывающим работу активности вашего приложения, в моём случае это MainActivity.java
Код который нужно вставить либо в метод public void onCreate(Bundle savedInstanceState) { либо создать отдельный метод. Так как в первом случае камера вызовется сразу после запуска приложения.
public class MainActivity extends Activity {
private static final int CAMERA_RESULT = 100;
public static final int MEDIA_TYPE_IMAGE = 1;
private Uri fileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String timeStamp = new SimpleDateFormat(«yyyyMMdd_HHmmss»).format(new Date(0, 0, 0));
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, «IMG_» + timeStamp + «.jpg»);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(cameraIntent, CAMERA_RESULT);
}
И так поясню что гле:
private static final int CAMERA_RESULT = 100;    это константа для работы с камерй. она обязательна
И так после того как мы объявим в setContentView нашу активность нужно создать имя файла в которое будет писаться снимок фотокамеры.
Что собственно и описано в следующих строках
String timeStamp = new SimpleDateFormat(«yyyyMMdd_HHmmss»).format(new Date(0, 0, 0));
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, «IMG_» + timeStamp + «.jpg»);
Далее объявим событие вызова фото камеры.
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Теперь скажем куда сохранить полученый рисунок
fileUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
fileUri это константа типа Uri она хранит путь к файлу снимка на карте памяти.
Далее
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);  тут мы собственно задаём путь куда сохранить фотку.
И вызываем камеру startActivityForResult(cameraIntent, CAMERA_RESULT);
Теперь необходимо написать метод обработки событий фотокамеры onActivityResult, это стандартное название. Он получает фотографию сделанную с камеры и мы сможем её обработать.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ImageView photoimg = (ImageView)findViewById(R.id.iv_camera);
if (requestCode == CAMERA_RESULT) {
if (resultCode == RESULT_OK) {
if(fileUri != null) {
//устанавливаем превью картинки
photoimg.setImageURI(fileUri);
}
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
}
Итак
ImageView photoimg = (ImageView)findViewById(R.id.iv_camera);
это созданный обобьет рисунка на layout-е activity_main.xml
вот его структура

android:id=»@+id/iv_camera»
android:layout_width=»wrap_content»
android:layout_height=»wrap_content»
android:layout_alignLeft=»@+id/textView1″
android:layout_centerVertical=»true»
android:src=»@drawable/ic_launcher» />

Это необходимо добавить на ctivity_main.xml, что бы мы могли увидеть потом что получилось в результате съёма фото.
if (requestCode == CAMERA_RESULT) {
тут мы проверяем пришел ли результат от камеры

if (resultCode == RESULT_OK) {  если всё ок
if(fileUri != null) { и не пуст файл в который сохраняется фото
//устанавливаем превью картинки
photoimg.setImageURI(fileUri);  выведем это фото в нашем окне приложения
}
}

И так мы имеем возможно вызвать камеру делать снимки и сохранять их на SD карту.
Так же если подключить телефон к компьютером где установлена среда разработки и запустить приложение на выполнение кнопкой RUN то оно автоматически установится на телефон и запустится.

Использование REDIS и Redis php library. Часть 2 – использование библиотеки.

Далие следует рассказать про ключ значение. Для работы с redis используется понятие
«Ключ=>значение» как ассоциативный массив. Где ключём является не кий виртуальный массив данных (значений). Представьте себе таблицу
Ключ Значение 1

Значение 2
Значение 3
…..
Значение n
Существует несколько разных типов ключей.
  • Strings
  • Lists
  • Sets
  • Sorted sets
  • Hashes
Самый простой типа это Strings.
Ключ значения которого это просто строки или много строк.
//определим настройки соединения с сервером$options = array(
‘namespace’ => ‘Application_’,
‘servers’ => array(
array(‘host’ => ’127.0.0.1′, ‘port’ => 6379)
)
);
include_once («Rediska.php»); //подключаем библиотеку
$rediska = new Rediska($options);
$key = new Rediska_Key(‘time’);// так мы определим ключ с именем ‘time’
$time = time();
$key->setValue($time); //так мы запишем значение в ключ
echo $key->getValue(); // вывод текущего значения ключа
Замечу что если повторно выполнить запись в ключ setValue то значение перезаписывается.
И работать с данными в таких ключах стоит как со строковыми переменными.

Далее рассмотрим пример работы с типом Lists (списки)
$list = new Rediska_Key_List(‘list’); // так мы определим ключ с именем ‘list’
$list->append(‘Apple’);
$list->append(‘Orange’);
Добавляем вконец списка сначала элемент ‘Apple’ затем ‘Orange’
$newarray = $list->toArray(true); //Если установлен параметр в true это означает,
что массив будет иметь итератор
Далее мы можем работать с массивом и удалять элементы из списка.
foreach($newarray as $key=>$item){
$list->remove($item->value); //Таким образом мы удалим все элементы списка
}
Рассмотрим пример работы с типом ключей Sets и Sorted sets
Этот тип особенно интересен так как мы можем использовать так называемые индексы значений
более-ммение в полной мере. Предположим что нам нужно хранить время входа пользователя на сайт.
Создадим сет и будем поочерёдно добавлять логин пользователя и время в формате unix timestamp.
$users = new Rediska_Key_Set(«sets»);
$users->add(‘Alexandr’,time());
$users->add(‘Oleg’,time());
$users->add(‘Ivan’,time());
Таким образом мы сформируем список пользователей с дополнительным полем – индексом в
нашем случае меткой времени.
Теперь допустим нам нужно удалить из сета пользователей. $rows = $users->toArray(true);
foreach($rows as $key=>$item){
$users->remove($item->value); //Таким образом мы удалим все элементы списка
} //Теперь рассмотрим пример удаления пользователей с использованием индекса в нашем случае метки времени.
foreach($rows as $key=>$item){
$users->removeByScore(1258125887,1258135887); //Сдесь укажем диапазон если нужен один пользователь и мы знаем время то укажем 2 одинаковых значения
}
Отличие таких ключей от Sorted sets ключей в том, что в сортированных сетах есть сортировка по полю score Это полезно при выводе данных которые должны быть отсортированы по индексу.
Теперь рассмотрим тип ключей Hashes. Эти ключи подобны ассоциативным массивам в PHP.
$user = new Rediska_Key_Hash(‘user’);
$user->set(array(‘Name’ => ‘Alex’, ‘lastName’ => ‘Ivanov’, ‘viewed’ => 1));
$user->set(array(‘Name’ => ‘Oleg’, ‘lastName’ => ‘Petrov’, ‘viewed’ => 0));
//Так мы добавим массив в данный сет // показать такие данные можно через обычный цикл
foreach($user as $field => $value) {
print «$field => $value»;
}
Все возможные методы можно посмотреть сдесь

Монетизация сайта

Уже много мегабайтов страниц исписаны принципами и методами монетизации своих сайтов. А именно тем как заработать на своём сайте используя посетителей и гостей сайта. Я же в не буду исключением и признаюсь, что тоже пробовал разместить рекламу на своём сайте и заработать копеечку.  В первую очередь хочу обратить внимание на то, какими критериями я руководствовался при выборе систем для монетизации.
Нивкоем случае не гонитесь за красочными обесчяниям моментального заработка на каждом посетителе и огромных сумм.
Чем легче система установки рекламного места на ваш сайт, тем более приоритетной должна быть такая система для вас.  Также если у баннерной системы сложная система вывода накопленных финансов то лучше не использовать её.
И так перейдём к конкретике. Все и всюду рекламируют sape.ru НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ЕЁ она не дала прибыли ни разу. Также не ведитесь на гугловую систему google adsense она даёт возможность заработать, но к сожалению вывести деньги очень трудно.
Теперь о том что я бы посоветовал выбрать.
http://www.begun.ru/   очень не плохая система.
Также советую посмотреть в сторону тизерных сетей и тизерных партнёрок.

Пока всё на эту тему в будущем обещаю написать подробней про пользу монетизации сайтов у которых количество посетителей меньше 100 в сутки.

Использование REDIS и Redis php library. Часть 1 – установка.

Redis — документо-ориентированное сетевое журналируемое хранилище данных типа «ключ-значение» с открытым исходным кодом. Хранит базу данных в оперативной памяти, снабжена механизмами снимков для обеспечения постоянного хранения. Имеет библиотеки для работы со многими существующими языками программирования.
По сути своей redis ничто иное как noSQL база данных. Поскольку данные хранятся в оперативной памяти поэтому операции запись/чтение производятся очень быстро видел даже что пишут до 100 тыс. операций в минуту. Правда это или нет доказывать не стану, но одно знаю точно это очень весомая альтернатива mysql базам данных значительно превосходящая по скорости. Естественно для работы с redis-ом было придумано и написано много библиотек в частности для php5. Но для начала я хочу рассказать зачем это нужно и где оно используется.
Допустим мы имеем большой корпоративный сайт со своей сложной структурой, где есть всевозможные списки новостей статей пользователей, чаты или обмен сообщениями и куча всяческих компонетов. Естественно большие корпоративные сайты имеющее множество гигабайтов информации тысячи пользователей  и кучу таблиц в своей базе данных рано или позно сталкиваются с проблемой оптимизации. Особенно если приходится постоянно вытягивать из базы данных сложные запросы с тысячями элементов. В итоге когда данных очень много таблици баз данных перегружены, поисковые запросы выполняются по 30 секунд, а выборки больших списков до 1 минуты, наступает время оптимизировать систему. Некоторые обращаются к файловому Кешу данных. Некоторые до минимализма сокращают запросы переводя динамику в статику и так далее. Но бывают случаи когда данные на странице невозможно кешировать и нужно отдавать динамически в зависимости от действий пользователя причём в большом количестве к примеру списки пользователей или мгновенные сообщения будь то чат или гостевая книга. В таком случае я рекомендую использовать Redis.

Установка.
Скачать php библиотеку для работы c  redis вы можете по этой ссылке http://rediska.geometria-lab.net/download/latest. Кстати http://rediska.geometria-lab.net/ это официальный сайт этой библиотеки где русские разработчики пишут почему-то всё на английском. Инcталировать сам сервер под ОС linux очень просто допустим в ubuntu это просто:
 apt-get install redis
Естественно на старнице сайта http://rediska.geometria-lab.net/documentation/get-started/ вы можете увидеть иные способы инсталляции. После того как сервер установлен и запущен вы можете создавать структуру сайта и скопировать в какую либо директорию распакованную библиотеку которая посути выглядит как одна папка с файлами.
Дерево директории может выглядеть вот так.

../MyProject/
/Rediska/                  –папка с библиотекой
Index.php
Config.php
Rediska.php               –главный файл библиотеки
Итак нам нужно правильно подключить и настроить библиотеку redis для дальнейшего использования. Допустим пусть вся конфигурация будет описана в файле Config.php который в свою очередь инклудится в index.php.

$options = array(
    'namespace' => 'Application_',
    'servers'   => array(
         array('host' => '127.0.0.1', 'port' => 6379)
    )
);
include_once («Rediska.php»);

$rediska = new Rediska($options);

Таким образом мы подключили библиотеку и указали в опциях что сервер находится на адресе 127.0.0.1 порту 6379.(стандартный порт)

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

Еще немного о SEO

В предидущей статье довольно удачно была освещена тема продвижения и основные факторы этого самого продвижения.В данной статье я бы хотел немного более подробно осветить эту тему для того чтобы вы имели более полное представление о продвижении да и вообще легче было ориентироваться в данной теме.Хочу заметить что в перспективе я бы хотел из данных постов сделать для себя и ,естественно, для Вас   своеобразный справочник.Никому ведь не хочется долго бороздить по просторам интернета в поисках нужной информации.Итак к делу!
Внутренняя оптимизация сайта.
Под этим понятием имеется ввиду доступность всех страниц вашего сайта для быстрого доступа.На практике это значит,что каждая ваша страница вашего сайта или блога должна находиться на расстоянии не дальше 3 кликов от главной страницы.Это нужно для более быстрой индексации сайта поисковыми роботами и просто для удобства вашего читателя.Также желательно чтобы с любой страницы сайта у Вас было 3 ссылки на главную страницу.Не все это соблюдают,но все же считается полезным.А теперь о том как это реализуется. Существует несколько способов. Способ 1 заключается в том,чтобы добавить в меню пункт Главная с переходом на главную страницу или же иметь кликабельную шапку сайта. Способ 2 это сайтбары. Если вы все еще не поняли как реализовать переход на главную с помощью сайтбаров, подсказываю. В сайтбары можно вставлять плагины с перенаправлением на другие страницы сайта. Будь то облако тегов или просто плагин для подбора похожего материала.Для более полного понятия картины я Вам советую прогуляться  по блогам и на примере увидеть как это работает. И наконец 3 способ это ссылки прямо из текста вашего материала. Просто ссылаетесь анкором из вашей статьи на другую вашу статью при удобном случае.Главное не забывайте прописывать ссылке атрибут  title и писать в нем ключевые слова. Для большего эффекта можно повторить ключевое слово в анкоре. Злоупотреблять этим не стоит.Также замечу что ссылки делать лучше в разных местах текста,чтобы поисковик не подумал будто вы это делаете нарочно.
Ну и на последок о смысле правильной внутренней оптимизации.Что это Вам даст?Плюсов она приносит на самом деле много.Во-первых,она задерживает вашего читателя на сайте и помогает ему обратить внимание на другие ваши материалы.Согласитесь ведь чем больше посетитель сидит на вашем сайте,тем лучше Вам. Во-вторых увеличивается скорость и простота индексации вашего сайта,что делает его в глазах поисковых машин более привлекательным.Но тут есть один минус,поисковой робот пройдет по ссылкам и попадет на вашу публикацию несколько раз.А это нехорошо,поисковик может подумать что Вы спамер и понизить Вас в результатах выдаче,чтобы этого не произошло запрещаем поисковику индексировать лишние ссылки. Третья выгода заключается в том,что при грамотной перелинковке  ссылочный вес сайта распределяется (растекается по всем страницам равномерно) и при наращивании веса сайта ссылками ТИЦ будет распределяться между страницами равномерно.Заметьте что только ТИЦ , ибо PR выдается каждой странице отдельно и его к сожалению никак не размажешь.в отличии от Яндекса,который оценивает сайт целиком,Google поступает более умнее и оценивает каждую страницу отдельно.
Хотел бы рассказать и о других факторах,но в рамки одной статьи это похоже не влезет.Так что подписывайтесь на RSS и следите за обновлениями.В ближайшее время планирую осветить еще несколько аспектов этого интересного,но нелегкого дела «Оптимизации» .

Выбор оптимальной операционной системы для домашнего ПК

Выбор оптимальной операционной системы для домашнего ПК

И так что же выбрать обычному пользователю windows или Linux?
Недавно устанавливал себе windows7 и столкнулся с рядом проблем которые встречаются рядововму пользователю при установке той или иной ОС. Так как имею богатый опыт в устанвоке и работе с различными ОС и их подвидами в этой статье опишу, что и почему стоит выбирать. Хотя выбор конечно же останется за вами, свою точку зрения я аргументирую.
И так задав вопрос первому встречному юзеру, — какую ОС ты предпочитаешь? он скорее всего ответит -» Конечно же «Винда«!!». На вопрос почему, как правило ответ один и тот же – «да потоу что она проще и там всё понятно». Так ли это давайте выясним описав некоторый + и — обоих ОС.
Вирусы В Windows размножаются быстро и если нет антивируса конкретно вредят системе,а некоторый даже её убивают. В linux же вирусы нецепляются вообще, а вирусла специально писаного под linux очь мало да и распрастраняются они обычно методом: «о! дай посмотреть я у себя запущу!».
Драйвера Да обычно драйвера к windows идут в поставке с ПК при покупке, а вот что делать если диски утеряны?. В Linux эта проблема ришена очень просто любое устройство будет найдено и настроено на этапе инсталяции, Вы можете подумать что из за этого установка ОС linux гораздо дольше и сложнее. Но это не так, Linux устанавливается на 30% быстрее чем windows; проверено на ровнозначных по мощности компьютерах.
Быстродействие В Linux Всё зависит от вашего ПК + возомжность самому отключать подключать процессы программы которые на это влияют. Windows Зависит от вашего ПК+ нагромождённость программами и процесами (как показал практика ХР имеет свойстов засорятся и работать хуже со временем)
Карсиввый интерфейслетающий рабочий стол прыгающие окошки В Windows XP Независимо от видеокарты всё статично и угрюмо. В windows 7 и Vista красиво но нужна хорошая видеокарта и достаточный объём ОЗУ. В Linux Красиво быстро наличие мощной видеокарты не обезательно.
Игры В Windows Работают нормально хотя требовательные игра даже при хорошем ресурсном потенциале тормозят. В Linux Игры в основном работают через Wine но к сожелению не все. К примеру WoW, Lineage, Unreal tournament работают.
Спец ПО В Windows только лицензионное платное или же бесплатные аналоги которые ещё нужно поискать в интернете, хотя пиратских копий валом. В Linux Почти всё нужное ПО для работы с видео, аудио, обучение и тп. Есть в репозиториях и бесплатно. Если нету то качаем с оф. Сайтов тоже бесплатно. Никаких трудностей в установке нет.
Цена ОС Windows и ПО к нему стоит немало, а Linux Конечно же бесплатен со всеми обновлениями и релизами.
После такого сравнения дико намекающее на пользу LInux многие скажут сразу «А как же удобство? Ведь в Linux так сложно понять где что!! Нет диска С или D !! Непонятно как настроить сеть или же открыть доступ к файлам или же пользоватся целиком и полностью файловой системой!!!»
Всё значительно проще чем вы думаете. В Linux вы с лёхкостью сможете настроить сеть или интернет через веб интерфейс, установить ПО и пользоватся видео и аудио программаи без проникновения в эту «страшную консоль». Да непривычно после дисков C D E видеть /home/ или /var/ или /etc/ в проводнике но со временем привыкаешь и всё кажется абсолютно логичным и понятным. Вы также можете сделать неслько логических дисков при установке linux назвать их «С» или «D» и там хранить свои файлы. В этом кстате тоже огромный плюс ведь при установке LInux вас встречает дружественный интерфейс с кучей возможностей выбора разметки диска и тайм зоны. А не это тупое «Далие» -»Далие «-» Согласен»– «далие» ….
Нет я не агитирую всем сразу перепрыгивать на Linux, я просто описал преимущества и недостатки которые я за долгие годы работы встречал в этих ОС.
Конечно если вы работаете со специальным ПО для windows или играете в сверхновые игры требующеи только windоws то можете оставаться в своей любимой Винде и забыть про мою статью. Но всётаки задумайтесь стот ил плотить деньги и привыкать к неудобствам, зная что бесплатно вы можете работать в ОС которая ничем не уступает Windows. У Linux ещё много преимуществ именно качественного характера например: linux намного лучше рабоатет с сетью, звуком и видео, безопасность на вышшем уровне, разделение прав пользователей и доступа к программам и файлам.
Многие люди перейдя на Linux лично по моей просьбе «ну хотябы раз установи и попробуй поработать» писали мне следующие строки:
Классно он такой красивый даже рабочий стол крутится как в «Висте» и ефекты ничем не хуже. хотя моя видуха нетянула на висте такого!!!
А софт весь бесплатный, круто! Не надо плотить или искать «кряки».
OpenOffice просто чудо быстрый поддреживает кучу форматов и незаколупует тупизной как в «винде»
Я включил после установки ноутбук и выпало окошко что найдена сеть wi fi ввёл ключ сети и появился интернет !!! сразу без драйверов СУПЕР!!!!
Я запустил видеопроигрыватель он сам нашол кодеки в интернете и теперь я моу смотреть любой фильм!!!
Очень удобно сделан рабочий стол и виджеты теперь ненадо вешать кучу ярлычков на рабочий стол всё под рукой.
И таких было много…
Судите сами чего вы хотите от вашей ОС выбор за вами…

Раскрутка сайта в поисковых системах. SEO оптимизация для начинающих

Раскрутка сайта в поисковых системах.

Перелопатив горы документации и кучи пустых статей, я сделал вывод, что реально точных и нужных указаний никто не публикует. В данной статье я попытаюсь описать всё то нужное, что я узнал и что пригодилось на практике и дало реальный результат.
Изначально хочу отметить такие важные моменты которые влияют на индексацию и рейтинг в поисковиках:
  • Правильные title страниц
  • Транслит-мые url
  • Ключевые слова ко всем материалам (страницам) вашего сайта, а также описание (description)
  • файл sitemap
  • Уникальность контента (хотя бы 80%)
  • Правильность оформления страниц контента
  • Ссылки на ваш сайт со сторонних веб ресурсов
  • Тематический контент
  • Дизайн и скорость работы сайта

И так начнём с первого пункта.

Правильные title страниц

Тут всё просто, на каждой странице свой тайтл –  название плюс общее название сайта ну например «Статьи о Linux | asad.in.ua». Почему это важно? потому что гугл и яндекс как и люди проходящие через ваш сайт будут считать это правильным тоном и качественным ресурсом, а не «быстросбацаный» какпопало сайт.

Транслит URL

Все страници вашего сайта вплоть до ссылки на метку должны выглядеть правильно, а именно быть в транслите
вот например http://asad.in.ua/post=57 Выглидт очень некрасиво с точки зрения поисковика. Это как быстро прочитать заголовок статьи в газете и не вчитываться так как он скучный и не красвый. А вот ссылка http://asad.in.ua/linux-novaya-versiya  Будет оценена выше в поисковиках, и запомнится пользователю.

Ключевые слова ко всем материалам (страницам) вашего сайта, а также описание (description)

Этот пункт тоже немаловажен, хотя я и слышал от знакомых, что мол это уже в прошлом и нафиг никому не надо. Тем немение многие компании имеющие в арсенале мощный сайт из множества страниц, продолжают активно использовать ключевые слова, чего и вам советую.
Ключевые слова нужно оформлять также правильно и тщательно как и контент. К примеру если ваш текст на странице содержит рассказ о правильном питании котов, то ключевые слова не должны состоять только из «кот,еда,кормить». Выделите для себя в тексте несколько слов наиболее часто встречающихся и имеющие важность в текста. Не бойтесь в ключевых словах указывать название разных брендов или имена собственные. Если вы пишете очередное описание вашего телефона пишите смело название марку цвет и элементы характеристик. Количество ключевых слов не должно быть более 16, иначе поисковик начнёт думать, что у вас сидит робот который штопает их для поднятия рейтинга страницы и попросту забудет про ваш сайт.
Meta Description: Нужен попросту, что бы поисковик при выдаче вашего сайта в поиске дал какое-то краткое описание страницы пользователю.

Файл sitemap

Признаюсь чесно я сам по своей неопытности изначально считал его ненужным и малополезным. Но в действительности он нужен для индексации сайта поисковиками. Конечно поисковики сами сканят добавленные к ним сайты но могут многое пропустить или загрузить кривую ссылку, файлы sitemap устраняют проблему плохой индексации. Если у вас в качестве основы сайта установлена css wordpres или joomla, то воспользуйтесь уже придуманными плагинами для генерации sitemap.xml. Полученный файлик добавляем  в google и yandex через сервис webmaster. Кстати пару слов про них: не стесняйтесь ими пользоваться очень полезные штуки они реализовали помогают в анализе сайта со стороны очень сильно. Также советую использовать google analytics для статистики.

Уникальность контента

Старайтесь делать контент вашего сайта уникальным то есть не похожим на другие. Если же такой возможности нет, так как у вас новостной сайт или же развлекательный, то старайтесь «рерайтить» тексты, то есть переписывать своими руками заменяя на синонимы. Кстати даже картинки перетянуты из других сайтов гугл воспринимает как не уникальный контент. Поэтому особо не переусердствуйте с закачкой картинок с популярных ресурсов.

Правильность оформления страниц контента

Этот пункт очень важен. Гугл индексируя ваши страницы очень тщательно смотрит, что у вас там и как оформлено. Где то давно я читал что правильным считается оформление контента следующим образом
Заголовок обрамляем


Под заголовок обрамляем


ну или поменьше

смотря как у вас позволяет дизайн.


Если в тексте встречается картинка или несколько это не плохо, а даже полезно, такие тексты поисковики любят. так как они считаются валидными.
Каждая картинка должна иметь в себе title и alt  это критично так как бесхозные картинки гуглу не нравятся.
Ключевые слова в тексте можно выделить жирным цветом, также важно правильно оформлять списки и выделяемые участки текста. Так вы дадите понять, что ваш текст написан живым человеком и он будет цениться выше.

Ссылки на ваш сайт со сторонних веб ресурсов

Ссылки на ваш сайт из других популярных источников поднимают вам pr и ТИЦ, что немаловажно при раскрутке сайта. Тем немение создание тучи сайтов сателитов особой посещаемости не даст и тиц не поднимет. Так как у таких сайтов низкие PR и ТИЦ. Лучше всего разместить ссылки на ваш сайт на популярных ресурсах или же просто на блогах ваших друзей которые не так сильно заброшены в поисковиках как только спаянные сайты сателиты.
Естественно баннеры и купленные места для ссылок на посещаемых ресурсах дадут результат, но при малом бюджете можно обойтись и другими методами.

Тематический контент

Контент сайта это 80% составляющая успеха самого сайта, поэтому отнестись к подбору тематики и материалов нужно очень тщательно. Я бы не советовал уж слишком распылять тематики сайта делая его обще тематическим. Лучше сосредоточится на конкретной теме тем самым охватив целевую аудиторию одной общей темы. Особенно если это ваш блог или форум.
Дизайн и скорость работы сайта
Дизайн – внешний вид вашего сайта должен быть привлекательным это понятно любому новичку интернет. Не стоит делать страницы сайта слишком пёстрыми или тёмными дабы передать атмосферу, да безусловно какие то особые фичи должны быть, что бы привлечь аудиторию.Но они не должны слишком грузить сайт как в плане загрузки так и в плане оформления, если даже на вашем сайт будет много полезной информации но её будет неудобно читать, люди просто перестанут ходить на ваш сайт и будут искать альтернативу. Большие громоздкие флешки тоже ни к чему, фоновая картинка на мегабайт вообще ни в коем случае! Лёгкий воздушный сайт гараздо привлекательней и быстрее работает чем супер навороченый гигант дизайна. Поисковики оценивают скорость загрузки страниц сайта и это влияет на рейтинг.

Немного об iptables

Так как часто сылшу вопросы о том, что кто то хочет поставить у себя дома маршрутизатор под управлением Linux и с помощью него раздавать интернет своим домашним компьютерам решил написать небольшую статью как это сделать.
Хочу рассказать немного о фаерволе iptables и показать несколько правил которые возможно помогут вам в настройке маршрутизатора для вашей домашней сети.
В первую очедерь вам понадобится сдлеать NAT для своей внутреней сети. (NAT (Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.)
#iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
таким образом ваша внутреня сеть 172,16,1,0/24 будет попадать в интернет через «внешний» айпи адрес вашего маршрутизатора

Затем возможно вам понадобится сделать проброс портов для когонибудь из вагей домашней сети

делается это следующим образом

#ipt -t nat -A PREROUTING -p tcp –dport 16862 -d 194.9.15.1 -j DNAT –to-destination 172.16.1.11
#ipt -t nat -A PREROUTING -p tcp –dport 3389 -d 194.9.15.1 -j DNAT –to-destination 172.16.1.11
где 194,9,15,1 это ваш внешний ip а 172,16,1,11 это машинка во внутненей сети
Также можно защитить вашу внутренюю сеть от проникновения из вне
допустим так
#iptables -A INPUT -s 172.16.1.0/24 -p tcp -j ACCEPT (разрешим проходить пакетам из внутереней сети)
#iptables -A INPUT -p tcp –dport telnet -j DROP
#iptables -A INPUT -p tcp –dport ssh -j DROP (Отбрасываем все лишние соединения на эти порты)
При желании сюдаже можно добавить и Фтп но обычно его сотавляют открытым если есть фтп сервер котороый должен работать наружу
Вот и всё для простого маршрутизатора сгодится.
Если будут вопросы и пожелания статью буду дополнять.

Устанавливаем ipset на Debian

Устанавливаем ipset на Debian


Многие в наше время сталиваются с проблемой защиты от Ddos атак и пользуют в совём арсенале только лишь IPTABLES или настройки apache и nginx. Однако есть довольно не плохие решения с использованием утилиты ipset.

Но установить ipset как оказалось не так то и просто даже на серверные версии debian.

В данной статье я расскажу как это сделать.
Не зависимо от того какая разрядность поддерживается вашим процесором будть то x86 или amd64 ipset будет работать если выполнить всё правильно.
Итак предположим что у вас сейчас стоит ядро версии 2.6.28-18-generic.
При попытке установить ipset из репозитория
#apt-get install ipset
и потом попытатся создать сет любой к примеру ipset -N test iptree вы получите ошибку
FATAL: Module ip_set not found.

Как показал неоднократный опыт борьбы с этим самым эфективням и быстрым методом стало откат версии ядра до 2.6.26 .
Поэтому мы выполняем слудующие действия.
#apt-get install llinux-image-2.6.26-1-i686
(если у вас в репозитории есть только llinux-image-2.6.26-1-amd64 и ваш процессор поддерживает 64 разрядные ОС то выполняйте
apt-get install llinux-image-2.6.26-1-amd64  )
После установки нового ядра вам нужно поправить меню загрузки grub
итак октрываем на редактирование файл /boot/grub/menu.lst
default         0
timeout         5
color cyan/blue white/blue
## по образу и подобию создаём нашу менюшку для загрузки нужного ядра
title           Debian 5.x
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-1-amd64 root=/dev/sda1 ro
initrd          /boot/initrd.img-2.6.26-1-amd64
## эта запись была первой до того как я вписал загрузку нашей версии выше
title           Debian 5.x
root            (hd0,0)
kernel          /boot/vmlinuz root=/dev/sda1 ro
initrd          /boot/initrd.img

После данных манипуляций можно смело перезагружать сервер.

Когда он загрузится снова нужно выполнить следующее:
sudo apt-get install ipset
sudo apt-get install netfilter-extensions-source
sudo apt-get install linux-headers-2.6.26-1-686
sudo m-a build netfilter-extensions
sudo m-a update && m-a a-i netfilter-extensions
Если всё прошло гладко теперь вы можете в полную силу использовать ipset для работы.

Linux Vserver

Данная система аналогична jail в FreeBSD также позволяет создавать виртуальные сервера на базе дистрибутивов Linux, с помощью неё вы легко сможете выделить несколько разных серверов на вашем основном сервере для разных задач или для разных клиентов. Также система предполагает настройку ограничений для оперативной памяти, процессорного времени, дискового пространства вашего винчестера и других.
Установка
В качестве основной системы на сервере использовался Linux ubuntu Intrepid
Для установки будем использовать слудующие пакеты
linux-headers-2.6.27-11-vserver
linux-headers-vserver
linux-image-2.6.27-11-vserver
linux-image-vserver
linux-restricted-modules-2.6.27-11-vserver
linux-vserver
util-vserver

Для начала получим ключ для вашего apt

#wget -O – http://ubuntu-vserver.pingworks.net/ubuntu-vserver.pubkey | sudo apt-key add -
Затем добавим в /etc/apt/sources.list репозитории
для i386:
deb http://ubuntu-vserver.pingworks.net/dists/intrepid/binary-i386 ./
для amd64:
deb http://ubuntu-vserver.pingworks.net/dists/intrepid/binary-amd64 ./
Затем выполняем
#apt-get update
#apt-get install linux-image-vserver linux-headers-vserver util-vserver

И перезагружаем сервер.

После перезагрузки сервера вы можете создать первый виртуальный сервер но сначало несколько слов о предварительной настройке.
Стоит упомянуть о том что создание виртуальных серверов будет происходить по умолчанию в /var/lib/vservers если же вы хотите устанавливать в другой каталог то директорию /etc/vservers/.defaults сделайте символической ссылкой в ту где вы хотите хранить ваши виртуальные сервера.
Теперь нужно редактировать /etc/vserver/newvserver-vars следующим образом для правильной установки ваших виртуальных серверов:
DIST=’etch’ ###Назваине дистрибутива
MIRROR=»http://ftp.uk.debian.org/debian/» # зеркало пакетов
MIRROR_SECURITY=»http://security.debian.org»
INTERFACE=»eth0″ # Интерфейс к которому привязывается айпи адрес
PKGCACHE=1
после чего создаём наш первый виртуальный сервер
#newvserver –context 100 –ip 10.9.11.99/24 –domain vps1.myhome.ru –hostname vps1
–context — номер вашего виртуального сервера он понадобится для дальнейших манипуляций с этим сервером
–ip айпи адрес виртуального сервера
–domain — домен вашего виртуального сервера
–hostname — имя вашего виртуального сервера
При установке виртуального сервера система будет задавать вопросы подобные как и при установке обычного linux-а.
После создания этого виртуального сервера вы можете войти в него и посмотреть структуру каталогов.

Старт:

#vserver vps1 start
Вход:
#vserver vps1 enter
Теперь вы находитесь полностью в среде виртуального сервера сдесь также будут работать стандартные команды например bash, apt-get, cd и другие. Вы сможете настроить доступ к инетрнету поставить любые пакеты настроить демоны и многое другое.
Структура каталогов и файлов напоминает нам полностью тот дистрибутив который мы указывали при установке нового сервера.
Также вы можете удалить виртуальный сервер:
#vserver vps1 stop
#vserver vps1 delete
Предложения и отзывы присылать на почту asad@online.ua