2013年7月23日 星期二

iOS write and read file to NSMutableArray

好用的兩個讀取寫入function

- (BOOL) writeToFile:(NSString *)filename writeData:(NSMutableArray *)data{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fileName = [NSString stringWithFormat:@"%@/%@", documentsDirectory, filename];
    
    return [data writeToFile:fileName atomically:NO];
    
}
- (BOOL) loadFromFile:(NSString *)filename writeData:(NSMutableArray *)data{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fileName = [NSString stringWithFormat:@"%@/%@", documentsDirectory, filename];
    
    [data addObjectsFromArray:[NSMutableArray arrayWithContentsOfFile:fileName]];
    return 0;
}

2013年7月22日 星期一

fail2ban

最近電腦Server不斷被從ssh攻擊測試密碼,讓我的log檔不堪其擾...

找到fail2ban的小工具來幫忙阻擋。

安裝:sudo apt-get install fail2ban

使用:修改/etc/fail2ban/jail.conf來開啟ssh的阻擋功能
  [ssh]
  enabled  = true
  port     = ssh
  filter   = sshd
  logpath  = /var/log/auth.log
  bantime  = -1
  maxretry = 3

重新開啟sudo /etc/init.d/fail2ban restart

....這個世界清靜了....(不過iptable越來越多規則了 ="=)

其他:sudo fail2ban-client status ssh  //查看ssh
      /etc/fail2ban/filter.d/    //過濾條件
      /etc/fail2ban/action.d/    //動作

修改Baker framework,變成書架功能

本篇主要的目的是希望修改Baker ebook framework,並套AQGridView framework。我們可以寫出類似雜誌櫃的APP來觀看電子書,而不需要全部重新篡寫。

Baker主要利用RootViewController來當作主要的控制,並透過自己客製的UIWindow來管理使用者的觸碰事件,所以在BakerAppDelegate裡有段程式碼:

self.window = [[[InterceptorWindow alloc] initWithTarget:self.rootViewController.scrollView eventsDelegate:self.rootViewController frame:[[UIScreen mainScreen]bounds]] autorelease];

利用自訂的InterceptorWindow來取代原本的UIWindow,

[window addSubview:rootViewController.view];

再將rootViewController加入window中,這行程式也可以使用 window.view.rootViewController = rootViewController  取代。

現在我們希望對Baker修改,並希望不需要動到太多它的程式碼,但是Baker設計的初衷是提供電子書一個簡單的APP套用環境。所以他Modulize的程度並不高,修改起來困難。我這邊會慢慢嘗試去做修改,並將我修改的過程寫下來。

1. 替換rootViewController
現在必須將Baker裡的第一頁View給置換掉,置換成書櫃的頁面,讓使用者可以先選擇書之後,在將書本內容丟給Baker去處理。