Основы работы с графикой Android (часть 1)

Сентябрь 26th, 2011 § 2 comments § Прямая ссылка

Здравствуй читатель, это начало цикла статей по работе с платформой Android. Я постараюсь излагать интересные вещи, т.к. в рунете не так много информации по работе с платформой. Много букав, давай ближе к делу. Я предполагаю, что у тебя уже стоит Eclipse + ADT , ты более или менее владеешь основами работы платформы (если нет то можешь, отправится на офф сайт, там много полезной инфы гайды, документация, форум, если с английским не очень то поищи книги наших соотечественников, но большинство из них пока оставляет желать лучшего). Первое что мы сейчас сделаем это простой вывод изображения в рабочую область. Сразу хочу предупредить, что это по большей части перевод или рерайт вот этого урока (хотел было присвоить себе лавры, но так и не смог не хорошо это).

Continue reading “Основы работы с графикой Android (часть 1)” »

Создание библиотеки для CodeIginter

Сентябрь 22nd, 2011 § 1 comment § Прямая ссылка

При написании своего не большого проекта понадобилась сделать простую фичу вроде того если пользователь авторизован то имеет доступ к странице, а нет так делаем редирект.  Подумал, что каждый раз писать проверку в каждом методе контроллера это не есть гуд. Сначала мысль пошла в направлении создать статический метод в контроллере и обращаться к нему из всех остальных, но не тут – то было, нельзя. Чутка по-гуглив нарисовалось два решения, ставить HMVC  либо писать библиотеку. Я выбрал последнее. Как оказалось это совсем не сложно


class Authlib {
 public function Authlib()
 {
 $this->CI = & get_instance();
 $this->CI->load->helper('url');
 $this->CI->load->library('session');
 }
 public function isLogged()
 {
 if(!isset($this->CI->session->userdata['auth']))
 redirect (base_url(),'refresh');
 }
 private $CI;
}

Внутри контроллера при каждом вызове пропишем эту строку и тогда если наш пользователь не авторизован он будет ловить редирект


$this->authlib->isLogged();

Что бы иметь доступ к библиотеке из конторолера есть два способа, загрузить его в autoload.php либо явно загружать каждый раз в конторолере, я выбрал сразу, мне кажется так удобнее.


$autoload['libraries'] = array('database','session','authlib');

Вот такой просто способ создания либ за более детальным описанием можно обратится к документации тут

Тригономертия для 2D игр

Сентябрь 12th, 2011 § 0 comments § Прямая ссылка

Немного тригонометрии для 2D игр, первое, что нужно это способы перевода из радианы в углы и из углов в радианы. Листинги будут на C#, но на любой другой язык могу быть перенесены без проблем, я считаю.

Имеем угол в градусах, хотим получить угол в радианах.


radianAngle = GradAngle*(Math.PI/180);

Имеем угол в радианах, хотим получить угол в градусах.


GradAngle=RadianAngle*(180/Math.PI);

Continue reading “Тригономертия для 2D игр” »

.htaccess для CodeIgniter

Сентябрь 12th, 2011 § 0 comments § Прямая ссылка

Пришлось намучаться, для того что бы правильно работал роутинг на связке Windows+XAMPP+CodeIgniter. Привожу работающий пример для .htaccess CodeIgniter. Мне помог. По работающим я понимаю, когда вы можете обратиться к своему контроллеру http://localhost/codeigniter/signup вместо http://localhost/codeigniter/index.php/signup (имейте ввиду, что это для примера у вас будет другой контроллер и адрес, главное чтобы идея была ясна). Первою очередь удостоверьтесь, что Apache подключает mod_rewrite это можно сделать в xampp/apache/conf/httpd.conf проверяем, закомментирована ли загрузка (комментарии в конфиге Apache обозначаются символом #), если да то убираем и перезагружаем Apache что бы изменения вступили в силу.

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


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Использование XNA в Windows Forms

Сентябрь 5th, 2011 § 0 comments § Прямая ссылка

В этом посте я расскажу как подружить XNA и Windows Forms. Я знаю что сейчас Windows Forms менее актуально, чем тот же WPF, но придет время и я напишу и под WPF. Итак, приступим, у нас есть проект Windows Forms. Первое что нам нужно это подключить  библиотеку XNA, идем в Add Reference и выбираем Microsoft.XNA.Framework. Следует знать, что существует конфликт между пространством имен System.Drawing и Microsoft.XNA.Framework так что вы определенных случая придется указывать полный тип переменной, для того что бы упростить этот процесс воспользуйтесь этим способом using  _Xna=Microsoft.XNA.Framework. Ни чего не могу сказать про XNA 4.0 но под XNA 3.0 тип процессора нужно выставить x86 иначе проект не соберется, имейте это ввиду.

Следующим этапом будет  создание контекста графического устройства, т.е. той поверхности, на которой мы собрались рисовать, для примера это будет сама форма.


public MainForm()
 {
 InitializeComponent();
 Present = new Microsoft.Xna.Framework.Graphics.PresentationParameters();
 Present.BackBufferHeight = this.Height;
 Present.BackBufferWidth = this.Width;
 Present.IsFullScreen = false;
 Device = new Microsoft.Xna.Framework.Graphics.GraphicsDevice(_XnaGraphics.GraphicsAdapter.DefaultAdapter, _XnaGraphics.DeviceType.Hardware, this.Handle, Present);
 this.Texture = _XnaGraphics.Texture2D.FromFile(this.Device, "tile_01.png");
 Sprite = new Microsoft.Xna.Framework.Graphics.SpriteBatch(this.Device);
 }

Continue reading “Использование XNA в Windows Forms” »

Быстрая сортировка

Август 30th, 2011 § 0 comments § Прямая ссылка

Универсальный  алгоритм для сортировки, так же называется qsort или quicksort. был разработан в 1960 году Чарльзом Хоаром. Сортировка в среднем за  O(n*log n), но в худшем случае может деградировать до O(n^2). Данный вид сортировки, является не устойчивым. Ниже код на С++

Continue reading “Быстрая сортировка” »

Настройка SSH тунелинг с помощью putty

Август 29th, 2011 § 0 comments § Прямая ссылка

По долгу службы нужно было настроить генерацию карты по данным из базы, но проблема оказалось в том, что база лежала на продакшене и открывать внешнему миру MySql спешить никто не хотел. Выход был использование тунелирования. Для этого берем Putty и производим следующие манипуляции. Открываем Putty выбираем вкладку SSH->Tunnels в поле Destination вводим (для примера мы конектимся к MySql, который виден исключительно с локалхоста) localhost:3306 Destination Port этот тот порт, который должен быть свободен на нашей локальной машине (к нему мы будем подключаться для осуществления проброса), оставляем настройку local и задаем версию протокола ipv4 или ipv6, но рекомендую оставить auto, если сомневаетесь. После этого щелкаем Add. Далее переходим во вкладку Session вводим адрес, нашего ресурса и порт SSH (если он был изменен с дефолтного, на какой либо другой). Подключаемся к серверу, авторизуемся. Вааля проброс настроен. Теперь мы можем подключится удаленно к базе просто указав хост, как localhost:(Destination Port) будто он находится у нас на локальной машине (это порт, который мы ввели при настройке в SSH).

PS

Не забывайте сохранять настройки, если часто пользуетесь, экономит нервную систему xDDD

 

Заметка об алгоритмах

Август 26th, 2011 § 0 comments § Прямая ссылка

После некоторого анализа, проведенного Халом Бурчем (Hal Burch). Все задачи на алгоритмы можно разделить на 16 категорий, причем несколько из них покрывают 80% предметной области. Причем наиболее сложной являются комбинаторные задачи. Ниже список:

Continue reading “Заметка об алгоритмах” »

Не удержался.

Август 25th, 2011 § 0 comments § Прямая ссылка

Не было бы так смешно, если было бы по другому. очень в цель.

управление проектами

Формат вывода даты

Август 24th, 2011 § 0 comments § Прямая ссылка

Сегодня упомяну о формате вывода даты, DateTime, не буду многословным сразу приведу примеры. Первая часть строки это то что передаем в ToString(); DateTime.Now.ToString(“MM/dd/yyyy”);


MM/dd/yyyy  08/22/2006
dddd, dd MMMM yyyy  Tuesday, 22 August 2006
dddd, dd MMMM yyyy  HH:mm Tuesday, 22 August 2006 06:30
dddd, dd MMMM yyyy  hh:mm tt Tuesday, 22 August 2006 06:30 AM
dddd, dd MMMM yyyy  H:mm Tuesday, 22 August 2006 6:30
dddd, dd MMMM yyyy  h:mm tt Tuesday, 22 August 2006 6:30 AM
dddd, dd MMMM yyyy HH:mm:ss  Tuesday, 22 August 2006 06:30:07
MM/dd/yyyy HH:mm  08/22/2006 06:30
MM/dd/yyyy hh:mm tt  08/22/2006 06:30 AM
MM/dd/yyyy H:mm  08/22/2006 6:30
MM/dd/yyyy h:mm tt  08/22/2006 6:30 AM
MM/dd/yyyy h:mm tt  08/22/2006 6:30 AM
MM/dd/yyyy h:mm tt  08/22/2006 6:30 AM
MM/dd/yyyy HH:mm:ss  08/22/2006 06:30:07
MMMM dd  August 22
MMMM dd  August 22
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK  2006-08-22T06:30:07.7199222-04:00
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK  2006-08-22T06:30:07.7199222-04:00
ddd, dd MMM yyyy HH':'mm':'ss 'GMT'  Tue, 22 Aug 2006 06:30:07 GMT
ddd, dd MMM yyyy HH':'mm':'ss 'GMT'  Tue, 22 Aug 2006 06:30:07 GMT
yyyy'-'MM'-'dd'T'HH':'mm':'ss  2006-08-22T06:30:07
HH:mm  06:30
hh:mm tt  06:30 AM
H:mm  6:30
h:mm tt  6:30 AM
HH:mm:ss  06:30:07
yyyy'-'MM'-'dd HH':'mm':'ss'Z'  2006-08-22 06:30:07Z
dddd, dd MMMM yyyy HH:mm:ss  Tuesday, 22 August 2006 06:30:07
yyyy MMMM  2006 August
yyyy MMMM  2006 August

Так же прилагаю pdf взятый отсюда и сслыку на MSDN по теме

Смотреть фильмы онлайн