Создать дамп БД Mysql

Опубликовано 2015.03.09 в разделе .

Для создания дампа базы данных MySQL нужно использовать в SSH консоли следующие команды:
  1. mysqldump -u root --password=password database_name | gzip -c > /database_backup/database_name-`date "+%Y-%m-%d"`.gz
Если база расположена не на localhost - то можно добавить имя хоста:
  1. mysqldump -u root --password=password -hservername database_name | gzip -c > /database_backup/database_name-`date "+%Y-%m-%d"`.gz

Linux команды

Опубликовано 2015.02.25 в разделе .

Я приведу команды, которые чаще всего использую в повседневной жизни. Рекурсивное удаление папки:
  1. rm -R название-папки
Распаковать tar.gz архив
  1. tar xvzf archive.tar.gz
Заархивировать папку
  1. tar -cvzf folder.tar.gz /path/to/folder
Покажет список файлов с расширением php, которые были созданы за последние 7 дней за неделю
  1. find . -type f -name '*.php' -mtime -7
Вывод из файла последних 20 строк с нужным вхождением
  1. grep -w "search string" drupal.log | tail --lines=20

Размещение на сервере

Опубликовано 2015.02.20 в разделе .

Любому сайту для работы необходим сервер, на котором он будет размещён. Так же там будет размещена база данных, если она нужна. Все серверные технологии, такие как сам интерпретатор php, различные системы кэширования, системы контроля версий, почтовые системы, поисковые системы и всё остальное- так же размещаются на сервере.

Для крупных проектов серверов может быть несколько, каждый под отдельную систему. Или же сервера могут дублировать друг друга, и привыходе из строя одного из них - сайт продолжит работать, перераспределив нагрузку на остальные сервера.

Загрузить дамп в MySQL через консоль

Опубликовано 2015.02.07 в разделе .

В начале переходите в папку с дампом базы:
  1. cd /path/to/dump_folder
Затем в консоли нужно подключиться к mysql:
  1. mysql --host=localhost --user=myname --password=mypass mydb;
Потом просто:
  1. source my_dump.sql;
Чтобы покинуть mysql, но остаться в консоли - введите: Если база заархивирована в .sql.gz архив, то не подключаясь к mysql сразу вводите в консоли:
  1. gunzip < database.sql.gz | mysql -u myname -pmypass mydb;

Неактивная UITableViewCell

Опубликовано 2015.02.02 в разделе .

Если в таблице нужно сделать несколько строк не активными, то есть некликабельными - то в методе didSelectRowAtIndexPath можно заблокировать переход в другой контроллер:
  1. -(void)tableView:(UITableView *)TableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  2. [TableView deselectRowAtIndexPath:[TableView indexPathForSelectedRow] animated:NO];
  3. }
Таким образом вы заблокируете переход по тапу на строку. Так же в методе cellForRowAtIndexPath можно задать стиль строки при тапе, точнее удалить его.

Шпаргалка по Objective C

Опубликовано 2015.01.28 в разделе .

Выровнять текст в элементе по центру:
  1. [anytextViewsetTextAlignment: NSTextAlignmentCenter];
Получить дочерние представления:
  1. - (void)listSubviewsOfView:(UIView *)view {
  2.  
  3. // получить детей главного представления
  4. NSArray *subviews = [view subviews];
  5.  
  6. // выход из функции если детей нет
  7. if ([subviews count] == 0) return;
  8.  
  9. for (UIView *subview in subviews) {
  10.  
  11. NSLog(@"subview = %@", subview);
  12.  
  13. // список детей детей
  14. [self listSubviewsOfView:subview];
  15. }
  16. }

Изменение типа данных в Objective C

Опубликовано 2015.01.28 в разделе .

Так как Objective C строго типизирован - иногда приходится менять тип данных, хоть и выглядят они порой совсем одинаково. Я сразу приведу примеры кода. NSInteger -> NSString
  1. NSString *myString = [NSString stringWithFormat: @"%d", myNSInteger];
NSNumber -> float
  1. float myFloat = [myNSNumber floatValue];
Int -> NSInteger
  1. NSInteger *myNSInteger = (NSInteger) myInt;
float -> int
  1. int myInt = (int) myFloat;

NSURLRequest с использованием timeoutInterval

Опубликовано 2015.01.28 в разделе .

Сделать удалённый запрос к серверу, не забывая о таймауте достаточно просто. Допустим у вас есть URL с которого вам нужно получить данные. И если данные не получены за 5 секунд - то выдаём ошибку. В приведённом примере я получаю JSON строку и преобразую её в словарь NSDictionary. Создаём класс с именем Requests. В .h файле:
  1. -(NSDictionary*) getRequestResponse:(NSString*)url;
В .m файле:
  1. -(NSDictionary*) getRequestResponse:(NSString*)url{
  2. //задаю таймаут в 5 секунд

UIRefreshControl для UIViewController

Опубликовано 2015.01.28 в разделе .

Если использовать табличное представление - то в настройках Storyboard даже есть специальный чекбокс, который включает обновление представления при свайпе вниз. У обычного UIViewController такой опции нет. Но её легко добавить программно: В методе viewDidLoad пропишите:
  1. UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];//инициализация
  2. refreshControl.backgroundColor = [UIColor purpleColor];//добавим фиолетовый фон
  3. refreshControl.tintColor = [UIColor whiteColor];//установим белый шрифт