Copyright © Mike's Blog
Design by Dzignine
2013年11月26日 星期二

UIDocumentInteractionController - 分享至其他應用程式

這是從iOS3.2就支援的一個Class,沒想到之前都沒有用過。
通常我們要分享或是開啓到別的App方式可能都會先想到用- (BOOL)openURL:(NSURL *)url;方式,
但是如果想要開啓一些第三方的App總不能去google下來各家URL Scheme吧?

於是在google大神中找到答案,沒想的這個Controller意外的好用,會自動找iPhone上面支援的App開起,
甚至還可以預覽,而且Code還非常的簡單:

#import <UIKit/UIKit.h>
@interface MyViewController : UIViewController <UIDocumentInteractionControllerDelegate>
//如果要preview的話就要加上delegate
@end
@implementation MyViewController

- (void)shareToOtherAppsWithPreview:(BOOL)isPreivew
{

NSURL *URL = [[NSBundle mainBundle] URLForResource:@"hello" withExtension:@"jpg"];
UIDocumentInteractionController *documentVC = [UIDocumentInteractionController interactionControllerWithURL:URL];

if( isPreivew ) {
//如果要preview的話才需要設定
[documentVC setDelegate:self];

[documentVC presentPreviewAnimated:YES];
} else {

//打開分享Menu
[documentVC presentOpenInMenuFromRect:[self.textView frame] inView:self.view animated:YES];
}
}
@end

簡簡單單幾行code就可以達到分享的功能,而且是支援手機所有第三方的App。
注意URL要傳入的是你實體的file path,而不是string喔!~

參考連結:
http://mobile.tutsplus.com/tutorials/iphone/previewing-and-opening-documents-with-uidocumentinteractioncontroller/

2013年11月25日 星期一

每次都是SELinux的問題..

最近使用centos架一台主機,本來以為會跟fedora一樣平易近人,沒想到設定也是很麻煩!
而且一直出現SELinux的問題,導致常常去找設定問題,最後都是因為SELinux擋住了。雖然安全性提高,但是擾人程度實在不在話下,不過像我這種超新手還是不要隨便關掉這個偉大的安全機制,因此,在這邊記錄一下可能會碰到的問題。

新增使用者之後ftp無法上傳
首先,先檢查ftp_home_dir有沒有打開,可以輸入$getsebool -a | grep ftp後,會列出以下訊息:

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
(略)

這時候就輸入$setsebool -P ftp_home_dir=1後再試試看ftp,如果還是不行的話,就切到/home下面去查看使用者的資料夾屬性:
$cd /home
$ls -Z
會顯示出資料夾selinux的設定
drwxr-xr-x. aaa     aaa     system_u:object_r:user_home_dir_t:s0 aaa
drwxr-xr-x. bbb     bbb      system_u:object_r:home_root_t:s0 bbb

上面的bbb的home_root_t就是阻擋ftp最大的元兇,只要改成跟aaa一樣就可以上傳了,
$chcon -t user_home_dir_t bbb,這時立馬打開ftp測試,應該是沒有問題,如果操作有權限問題,記得用sudo,如果再不行的話,就google大神吧!

php噴出 permission denied
第一,先切到你要上傳的資料夾路徑,然後確定權限為775及group,以centos為例的話,httpd跑的group是apache,所以來瞧瞧設定有沒有問題:
$ls -l
列出
drwxrwxr-x.  9 mike apache   4096 2013-10-14 01:00 upload
(略)
看起來很完美,可是上傳還是無法,去check一下/tmp權限也是沒問題的,然後跑去看一下php.ini設定上也沒有錯....沒錯!問題又是SELinux,所以再看一下資料夾屬性:
$ls -Z
drwxrwxr-x. tounsen apache  system_u:object_r:user_home_t:s0 upload
(略)

果然出現的user_home_t屬性是不能讓我們上傳的,所以要將屬性改成httpd_sys_content_t就可以了:
$chcon -R -t httpd_sys_content_t upload
這樣應該可以順利上傳檔案了,上面加上-R是資料夾內部所有檔案也改變屬性。
以上是我在安裝及設定網站常常撞牆的問題,記錄一下,以後可以參考。

2014/01/07補充一下 httpd_sys_content_t 可能會擋ftp或是apache,可以改用httpd_user_content_t

參考連結:
http://diegobz.net/2010/03/07/enabling-apache-userdir-public_html-with-selinux-enabled-on-fedora/
http://linux.vbird.org/linux_server/0410vsftpd.php
2013年11月12日 星期二

菜鳥上班日誌 - Day16

奮戰中的日子,總是漫長。

沒想到才過完一個禮拜的蜜月期,整個工作就開始忙起來,本來以為應該不會弄很久,
但是bug總是會不如預期的出現,所以有時候將會超出原本估計的時間。
當然,在經過幾次奮戰之後,目前整個程式應該是沒什麼太大的問題!

現在又回歸到比較悠閒的狀態,想說來研究一下別的東西,最近想玩一下RoR,
之前就一直對他抱持著靜觀其變的想法,不過確實是越來越多人再玩,
於是不落人後地開始看起教學。但程式就是需要多寫多錯多進步。
目前還想不到有什麼網站可以寫,有點想把之前的系藍網站再重寫一遍,
不知道現在的經理還有沒有在紀錄...還是根本系籃已經沒有比賽了....
不管怎樣,先看完教學,也許之後會有些想法也說不定!

菜鳥上班日誌 - Day7

驚嚇的星期二,沒有Ending的分享會
為了補足昨晚的時數,今天特地提早上班,但心中卻有一絲傷感,因為已經知道晚上要開會而且會到蠻晚的,即使對分享會的內容有興趣,仍有無盡的哀愁。

今天的工作是加強了昨晚的修正,花了一點時間研究,也與其他人互動更多,感覺狀況越來越好了,似乎有漸入佳境。

時間快轉到晚上,因為晚上的會議,大家就一起去吃個飯,也是第一次這麼完整的整個部分都一起吃飯,大概有一半我不認識吧!不過好像不是只有我有這種感覺,因為我們team好像很多剛進來的!

吃完飯後大家趕快到會議現場,參加的人更多了,來自各個部門的RD們,還有一些看起來是主管階級的同事們,大家都跑來聽這場分享會。分享的人是精誠科技的主管,主要是要介紹Hbase的架構跟應用,但本身因為不是相關背景的人,然後又沒有很熟悉後端相關知識,所以才講沒多久就放空了....

大概一小時多過後的分享,看看時間也才8點多,看來似乎沒有到很晚的意思,沒想到我們主管就說我們部門的人留下(驚!),然後換一個看起來很年經的同事(好像是工讀生..?)跟大家報告他Hbase壓力測試的結果,這個讓我聽得更是霧煞煞。

因為中途不斷有討論,所以差不多快一小時過去,終於漫長的會議結束了。已經晚上9點,剛好把之前的時數都可以補回來....(苦笑)

明天就是美好的星期三,相信週末又快到來了!!
2013年11月11日 星期一

菜鳥上班日誌 - Day6

今天是blue monday,而且天氣也很糟糕,適合窩在家裡的日子。然而可憐的上班族們,享受短暫又快速的週末後,接下來就是要面臨5天的加班生活。

沒想到才過一周的甜蜜期,今天馬上就要開始寫code了,聽起來是兩個小功能,應該是沒有什麼問題,但是爬完code之後才發現目前的架構不太好改寫,只好想些方法去克服。與當初開發的同事討論之後,原本想說可能要砍掉其中一段重寫,最後還是用硬幹的方式去完成,感覺這樣寫會降低效能,不過弄完之後測試還OK!

晚上有跟同事約看電影,所以趕在6點就趕快下班衝去信義威秀ㄝ,本來以為會沒有什麼人...天啊! 大家平常沒事都在看電影嗎? 也有不少人在排隊,而且我們要看的這部片已經快下檔了,竟然還買不到很好的座位,這世界怎麼了?

2個小時的驚嚇過後,離開威秀跟同事討論著劇情,慢慢移動到附近吃晚餐,美好的一天就這樣過了。
2013年11月8日 星期五

菜鳥上班日誌 - Day5

上班族的星期五,總是讓人心情愉悅。
穿著帥氣襯衫,便抓起了頭毛,帶上隱形眼鏡,為的是迎接上班生涯的第一個禮拜五。原本以為今天可能會有些事情要做了,沒想到意外的沒事,連feedly上面的文章都快看爛了,第一次上班想睡覺,以後不知道還有沒有這種時光....

中午跟大家吃飯,感覺有更聊了一點,目前還是只有跟隔壁的同事比較熟,連電影都約好了。在聊天過程中似乎有嗅到一咪咪咪八卦的味道,不過因為我還太陌生,其實他們在講誰都不太清楚。

時間匆匆流去,下班去居酒屋,跟一群上班族聚餐。好好享受週末的到來
2013年11月7日 星期四

菜鳥上班日誌 - Day4

立冬的早上,預告著輕鬆上班的日子即將結束。
今天天氣照理說要變冷,但是好像早上還蠻熱的。不知道是不是因為在San Fransico那邊荼毒過之後,現在身體發熱機制好像比較好。

昨天看完code之後,今天立馬上工改個小功能,我想:要assgin工作給我也是蠻尷尬的事情吧!可能還不確定我的程度,但是又看我閒閒沒事幹,索性叫我改點小東西,算是牛刀小試一下。

聽完任務之後,想說大概10分鐘就可以改完,沒想到還是花了半個多小時,還在demo的時候出現bug... 但最後不負眾望地將我的code commit上去,在'肉肉等'的git log中看到我的commit,有點小小莫名感動~唉

下午都在看objective-c的東西,關於CoreData真的很不熟,實在是很殺腦細胞!然後無聊來弄一下node.js,很有成就感也很好玩,最近剛好要弄一下IM,這兩天做出來玩玩看吧!
今天總算是第一次下班回家吃飯,前三天晚上都有約,以後可能沒有這種閑時間了吧~
感覺一切慢慢步入不歸路啊!
2013年11月5日 星期二

菜鳥上班日誌 - Day3

今天是第三天上班,目前為止沒有什麼事情。

第一天

上班看到很多女同事,心情為之雀躍,但報到完畢之後才發現以後沒什麼機會見面。
開始期待公司配給的設備,沒有令人驚奇的MBPR,只是拿到一開不錯新的MBP 2012。

第二天

不停哀怨地想辭職,不過昨天跟兩位上班族聊天開導之後,決定26歲要轉職!!
目前不斷思考要賣什麼.... 感覺也是一條血路啊!!!
今天唯一的功課就是 git ,看了蠻多教學,多少有吸收一點,但可能實作還是最快吧~可能怕我連上git之後把他們弄爆,所以給我一些時間去study XDD

ps. 拿到一台測試機 iphone4...

第三天

已經開始看code了,我們內部有開發一個app,整支程式都是由一位大大寫的,實在太厲害了。 才看沒有幾行就學了很多技巧,感覺在這邊可以提升很多,希望web技術也可以一起提升!!
不知道什麼時候才會上工,目前都還在調整階段,預計11月中才會run新的project