четверг, 4 апреля 2013 г.

Учим Zabbix отправлять SMS оповещения

Тема стара как Мир, и давно избита. Но я бы хотел внести свои 5 копеек. Есть всего 2 способа отправлять SMS:

  • Через модем/телефон
  • Через SMS-шлюз 

Если вы один администратор в системе, то вам вполне можно отправлять уведомления Zabbix через модем (пример скрипта для модема я покажу в конце статьи). Но если у вас 2 и более администраторов, которые должны получать уведомления, вы можете столкнуться с коллизиями при отправке SMS.

Поэтому я выбрал для оповещений администраторов 2-й вариант. Конечно в случае если произойдет проблема с самим Zabbix-сервером, то вы об этом SMS не получите. Но в этом случае возможно объединить эти 2 способа, оставив модем только для оповещений на случай проблем с самим Zabbix-сервером.

Читать далее...

четверг, 28 февраля 2013 г.

Блог переезжает по новому адресу

Всвязи с нехваткой возможностей blogspot и его невероятной глюкавости я переношу блог по новому адресу: http://www.voip-lab.ru/category/blog/

<<<<<<<<<<<<<_________Жду вас там _________>>>>>>>>>>>>>>>>>>

четверг, 14 февраля 2013 г.

Устанавливаем wget в Mac OS X из исходников

Итак, стоит небольшая задача - установить из исходников wget. Для того чтобы решить данную задачу у вас должен быть установлен XCode. В нем перейдем в настройки: XCode->Preferences->Downloads и скачаем и установим Command Line Tools.


Далее открываем Терминал и скачем wget. Выбирайте последнюю версию:
curl -O http://ftp.gnu.org/gnu/wget/wget-1.14.tar.gz

Распакуем архив и перейдем в распакованный каталог:
tar -xzf wget-1.13.4.tar.gz
cd wget-1.13.4

Сконфигурируем, соберем и установим
./configure --with-ssl=openssl
make
sudo make install

Проверям что wget успешно установился
wget --help



четверг, 18 октября 2012 г.

AutoClicker на AppleScript

Понадобилось мне тут сделать автокликер. Удобно для это использовать AppleScript.
repeat 500 times
 try
  delay 3
  tell application "System Events"
   tell application process "Safari"
    click (click at {245, 193})
   end tell
   delay 5
   tell application process "Safari"
    click (click at {951, 438})
   end tell
  end tell
  delay 5
 end try
end repeat

среда, 12 сентября 2012 г.

Примеры кода в Xcode: переход между окнами

Осуществить переход между окнами в вашем iOS приложении можно следующим образом.

Пример 1(когда нужно конкретное окно)
NSArray *controllers = self.navigationController.viewControllers;
[self.navigationController popToViewController:[controllers objectAtIndex:1] animated:YES];
Пример 2(когда нужно вернуться на главное окно)
[self.navigationController popToRootViewControllerAnimated:YES];

вторник, 11 сентября 2012 г.

Примеры кода в XCode: Выводим дату и время


// Get current date time
NSDate *currentDateTime = [NSDate date];

// Instantiate a NSDateFormatter
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

// Format to show day of the week Sat,11-12-2011 23:27:09
[dateFormatter setDateFormat:@"EEE,MM-dd-yyyy HH:mm:ss"];

// Get the date time in NSString
NSString *dateInStringFormated = [dateFormatter stringFromDate:currentDateTime];

NSLog(@"%@", dateInStringFormated);

Аудио конвертер для Mac OS X

Недавно мне понадобилось сконвертировать аудио файлы из .aiff в .mp3. Для этого я использую бесплатную программу Switch Sound Converter for Mac OS X. Все очень просто - выбираем каталог или файлы для конвертирования. Далее выбираем формат и жмем Convert


понедельник, 10 сентября 2012 г.

Примеры кода в XCode: Удаление из списка tableView

Чтобы реализовать удаление из списка tableView нужно бросить на форму кнопку и дать ей идетификатор "Edit".

Далее раскомментируйте/добавьте в коде следующую функцию:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        [lists removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
    else if (editingStyle == UITableViewCellEditingStyleInsert) {
    }   
}

воскресенье, 9 сентября 2012 г.

Twitter feed

Создал twitter аккаунт для блога. Подписаться можно по ссылке.

четверг, 6 сентября 2012 г.

Примеры кода в XCode: как программно вызвать клавиатуру

[myTextField becomeFirstResponder];

Примеры кода в XCode: Как узнать разрешение экрана в iPhone/iPad

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size; 
CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;

Примеры кода Xcode: Программное создание кнопки

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *submitbutton = [UIButton buttonWithType:UIButtonTypeCustom];
    submitbutton.frame = CGRectMake(165, 20, 149, 39);
    [submitbutton setTitle:@"Submit Booking" forState:UIControlStateNormal];
    UIImage * btnImage1 = [UIImage imageNamed:@"KeyUpBackground.png"];
    [submitbutton setImage:btnImage1 forState:UIControlStateNormal];
    UIImage * btnImage2 = [UIImage imageNamed:@"KeyDownBackground.png"];
    [submitbutton setImage:btnImage2 forState:UIControlStateHighlighted];
     [submitbutton addTarget:self action:@selector(submitBookingButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:submitbutton];
}

-(void)submitBookingButtonPressed
{
   NSLog(@"pressed");
}

четверг, 30 августа 2012 г.

Отключаем ARC в некоторых файлах в XCode

ARC (Automatic Reference Count) был реализован в XCode 4.2.  Это означает что вам больше не придется использовать конструкции вида release, autorelease, или retain в вашем коде. Это намного упрощаем жизнь программистам, но в тоже время усложняет при копировании кода , написанного для более ранних версий Xcode. И как раз тут и возникают ошибки типа 'release' is unavailable: not available in automatic reference counting mode или ARC forbids explicit message send of 'release' или  ARC forbids explicit message send of 'autorelease'. Здесь я предлагаю решение данной проблемы.

1. Выберите свой проект в Project Navigator и далее на Target


2. Во вкладке "Build Phases" разверните "Compile Sources"
3. Далее щелкните 2 раза по нужному файлу напишите в открывшемся поле " -fno-objc-arc" без кавычек.

вторник, 28 августа 2012 г.

Пример кода Xcode: объединение строк

NSString *hello = @"hello";
NSString *world = @" world";
NSString *phrase = [hello stringByAppendingString:world];

Примеры кода Xcode: Int to String

int myInt = 10;
NSString *stringWithInteger = [NSString stringWithFormat: @"%d", myInt];

Примеры кода Xcode: простой класс

Приведу пример простого класса автомобиля со свойствами и методом Файл класса "car.h":
//
//  car.h
//  simple
//
//  Created by Nikita Rukavkov on 28.08.12.
//  Copyright (c) 2012 Nikita Rukavkov. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface SimpleCar : NSObject {  
    NSString* make;  
    NSString* model;  
    NSNumber* vin;  
}  
@property(readwrite, retain) NSString* make;  
@property(readwrite, retain) NSString* model;  
@property(readwrite, retain) NSNumber* vin;  
// convenience method  
- (void) setMake: (NSString*)newMake   
        andModel: (NSString*)newModel;  
@end  
Файл класса "car.m"
//
//  car.m
//  simple
//
//  Created by Nikita Rukavkov on 28.08.12.
//  Copyright (c) 2012 Nikita Rukavkov. All rights reserved.
//

#import "car.h" 
  
@implementation SimpleCar  
  
@synthesize make, model, vin;  
  
- (void) setMake: (NSString*)newMake   
        andModel: (NSString*)newModel {  
      
    [self setMake:newMake];  
    [self setModel:newModel];  
  
}  
  
@end  
Пример вызова:
    car *myCar = [[car alloc] init];
    [myCar setMake:vendor andModel:model];
    NSLog(@"The car is: %@ %@", [myCar make], [myCar model]);

Примеры кода Xcode: NSString to Integet

У класса NSString есть замечательный метод, который возвращает значение строки в типе NSNumber. Пример:
NSString *vin_m = [[NSString alloc] init];
vin_m = @"1234567890";
NSNumber *newVin = [NSNumber numberWithInt:[vin_m intValue]];

Примеры кода Xcode: объявляем тип integer (класс NSNumber)

NSNumber *newVin = [NSNumber numberWithInt:123];

Примеры кода Xcode: объявляем строку в Objective C

Пример 1:
NSString *testString;
testString = [[NSString alloc] init]; 
testString = @"Here's a test string in testString!"; 
NSLog(@"testString: %@", testString); 
Пример 2:
NSString* make=[[NSString alloc] initWithString:@"Test string"];

суббота, 11 августа 2012 г.

Клавиша insert в Mac OS X или как выделить файлы в mc

Работая удаленно через ssh с Linux-серваками в файловом менеджере midnight commander(mc) часто возникает необходимость выделить некоторые файлы. Но тут возникает проблема - в беспроводной клаве Apple нет такой клавиши. Чтобы обойти это достаточно использовать комбинацию Ctrl+T.