2011년 3월 2일 수요일

회원가입 프로세스를 심플하게 만드는 17가지 방법

xguru님의 이번 주 기술뉴스에 포함된  "회원가입 프로세스를 심플하게 만드는 17가지 방법" http://j.mp/eeC2Qp 에 대한 간단한 번역입니다. 원문에는 이해가 쉽도록 이미지 등도 있으니 참고하세요~  오역의 가능성은 다분합니다 -_-

1. 이메일을 아이디로 만들어라

2. 사용자가 항상 쓰는 비밀번호를 쓸 수 있게 하라.
(복잡한 규칙을 설정하지 마라. 은행, 개인정보 등 민감한 사항을 다루는 웹사이트들은 예외.)

3. 추가 정보는 우선 계정을 만든 다음에 받도록 해라.

4. 만약 내 아이디(이메일)가 사용되고 있다면 (Ajax등을 사용해서) 바로바로 알려줘라.
만약 아이디(이메일)가 사용되고 있다면 바로 비밀번호를 타이핑하고 로그인할 수 있도록 비밀번호 필드를 보여주고, "이 이메일 주소로 비밀번호 찾기 메일 보내기" 와 같은 링크를 달아주자.(이미 가입한 사람이 가입했는지 잊어먹은 경우의 편의를 고려함.)

5. CAPTCHA가 꼭 필요할까?
* A/B 테스트를 통해 CAPTCHA가 제거 되었을 때 스팸 가입자가 증가하는지 살펴보라.

6. 회원 가입 후에는 자동으로 로그인 되게 하라.
* 뭔가를 필요로 해서 회원가입을 하는 것이므로 바로 접근가능하게 할 것.

7. 환영 이메일을 찾기 쉽게 만들라
* 예를 들어 Your [app name] account details 와 같은 제목을 사용하고 암호와 같은 보낸 사람 이메일 대신 보낸사람이름을 활용하라.

8. 회원가입폼을 홈페이지에 드러나게 하라
* 회원 유치가 주 목적이라면 facebook과 같이 회원가입폼을 드러나게..

9. 회원 가입을 했을 때의 이점을 알려줘라

--- 이 아래부터는 의견들.
10. 회원 가입과 로그인을 한번에..
* 이메일만 입력하게 하고 가입되어있으면 로그인 폼을 보여주고, 되어있지 않으면 회원가입폼을 보여줌

11. 이메일만 받자
* 이메일만 회원 가입시 받게 하고, 자신의 정보를 수정할 수 있는 링크가 포함된 메일을 보낸다. 언제나 이 메일의 링크는 자기 정보를 수정할 수 있도록 만듦으로, 패스워드 찾기 시에도 활용될 수 있다.

12. 그냥 오픈아이디를 사용하자.

13. 뉴스레터는 opt-out이 아닌, opt-in 방식으로 보내라
여기서 opt-in은 받겠다고 요청한 사람 opt-out은 거부하지 않은 사람.

14. 내 브라우저가 자동으로 폼을 채워넣도록 해주세요.
브라우저의 자동완성 기능을 활용하는 사용자들을 위해 자바스크립트 등으로 초기값을 조정할 때는 신중하게.

15. 사용가능한 비밀번호 형식을 미리 보여줘라.

16. 어디서 가입이 가능한지를 알려줘라.
* 로그인보다 회원가입을 강조하라

17. 패스워드를 두번 넣게 하지마라.
* 그냥 인풋 텍스트로 한번 받고 말지, 비밀번호 형식으로 2번 받을지 가입자에게 고를 수 있게 하라. (이것은 좀.. 그래도 트위터는 비밀번호 한 번 입력으로 가입이 가능하죠!)

 

펌 : http://goo.gl/VUkak

ffmpeg split

$ ffmpeg -ss 0 -t 593.3 -i source.m4v -vcodec copy -acodec copy part1.m4v

svn 삭제

find ./ -name .svn -exec rm -rf {} \;

xcode 삭제

sudo /Developer/Library/uninstall-devtools --mode=all

OSX 실글모드에서 권한 받기

mount -uw /

iphone AVVideoAverageBitRateKey

NSDictionary *videoCompressionProps = [NSDictionary dictionaryWithObjectsAndKeys:
                                                                  [NSNumber numberWithDouble:128.0*1024.0], AVVideoAverageBitRateKey, nil ];


NSMutableDictionary *d=[[NSMutableDictionary alloc] init];
[d setValue: AVVideoCodecH264 forKey: AVVideoCodecKey];
[d setValue:[NSNumber numberWithInt:192] forKey:AVVideoWidthKey];
[d setValue:[NSNumber numberWithInt:144] forKey:AVVideoHeightKey];
[d setValue:videoCompressionProps forKey:AVVideoCompressionPropertiesKey];  

iPhone NSUserDefaults

저장
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:@"event"];

호출 
[[NSUserDefaults standardUserDefaults] objectForKey:@"event"];

iPhone itunes file sharing

add info.plist
UIFileSharingEnabled
YES

iPhone MD5

#import <CommonCrypto/CommonDigest.h>


- (NSString *)uniqueIDFromString:(NSString *)source
{
const char *src = [[source lowercaseString] UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(src, strlen(src), result);

NSString *ret = [[[NSString alloc] initWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
  result[0], result[1], result[2], result[3],
  result[4], result[5], result[6], result[7],
  result[8], result[9], result[10], result[11],
  result[12], result[13], result[14], result[15]
  ] autorelease];

return ret;
}

[apache] alias


<IfModule alias_module>
    Alias /alias "/var/www/alias"
    <Directory "/var/www/alias">
        Options MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>

iphone other apps

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://info@iphonedevelopertips.com"]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://01041875616"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:55555"]];

NSURL *appStoreUrl = [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8"]; [[UIApplication sharedApplication] openURL:appStoreUrl];

iphone font

1. info.plist에 UIAppFonts를 추가하고 array로 변경 폰트 파일의 이름 작성

UILabel *Count = [[[UILabel alloc] init] autorelease];
Count.frame = CGRectMake(0, 0, 105, 20);
Count.backgroundColor = [UIColor clearColor];
Count.textColor = RGBA(109,109,109,1);
Count.font = [UIFont fontWithName:@"PicoBlackAl" size:20];
Count.text = @"Tweet";
[self.view addSubview:Count];




Amazon Free tier for new AWS customers

New AWS customers will receive the following EC2 services each month for one year. Usage is calculated each month across all regions and automatically applied to your bill - unused monthly usage will not roll over. Restrictions apply; see offer terms for more details. 

  • 750 hours of Amazon EC2 running Linux/Unix Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) - enough hours to run steady state each month
  • 750 hours of Elastic Load Balancing plus 15 GB data processing
  • 10 GB of Amazon Elastic Block Storage (EBS) plus 1 million IOs, 1 GB snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests
  • 15 GB of bandwidth in and 15 GB of bandwidth out aggregated across all AWS services

클라우드 서비스는 여러대의 컴퓨터를 혹은 하나의 컴퓨터를 다시 여러개의 컴퓨터로 만들어 독립된 컴퓨터로 만든다.
즉 VMWare 에 리눅스 하나를 추가 하는 것과 같다. 저렴한 가격에 루트 권한을 같는 독립된 서버를 가질 수 있다. 

아마존 EC2 서비스는 정말 사용한 만큼 돈을 낸다. 그 대신 복잡하고 많은 신경을 써야 한다.

1년간 제한된 상황에서 무료로 사용할 수 있다. (방문자 수가 낮은 개인 홈페이지 정도 운영할 수 있다.)

미국 서부 중심으로 작성하였다. (켈리포니아)
Amazon EC2 running Linux/UNIX
$0.025 per Micro Instance (t1.micro) instance-hour (or partial hour)
하나의 t1을 생성하여 일년동안 공짜다. 즉 서버하나를 1년동안 공짜로 사용 할 수 있다.

Elastic IP Addresses
$0.00 per Elastic IP address remap - first 100 remaps / month
아이피 하나를 생성해서 만든 서버에 연결하면 공짜(?) 여튼 아이피 하나는 공짜다. 

Data Transfer**
$0.000 per GB - first 15 GB of data transferred in per month*
$0.000 per GB Internet Data Transfer - first 15 GB / month data transfer out of Amazon EC2*
트래픽인데 인터넷을 통해 들어오는 데이터가 15GB/한달 나가는 데이터가 15GB가 공짜다.
그거 이상 쓸때 들어오는 데이터는 기가당 $0.100 공짜가 끝나고 한달 동안 10TB를 쓰면 $1024 백만원!
나가는 데이터도 따로 15GB가 공짜다. 한달동안 10TB를 쓰면 백오십만원 안팍이다. 더 비싸다.

Storage 
$0.000 per GB - first 5 GB / month of storage used*
용량이 한달동안 5기가 공짜다. 그 이상 쓰면 기가당 $0.140 100GB쓰면 $14

Amazon Elastic Block Store
10GB 짜리 하드 디스크를 만들 수 있고 볼륨을 만들 때도 돈이 든다.
볼륨에 데이터 쓰고 지우고를 백만번 당 $0.11 내야 된다. 한달 1백만번 공짜다.
즉 파일 업로드 다운로드 혹은 디비를 읽고 쓰고를 한달 동안 백만번할 수 있다.
또 쓰는 용량이 기가당 $0.11 이고 한달동안 15GB 쓰고 읽는데 공짜도.
EBS가 좀 복잡한데 볼륨을 만들고 쓰고 지우는데 돈이 든다. 공짜로 쓰는데는 한달 동안 백만번이고
15GB 쓰고 15GB 읽고가 가능하다.
스넵샷 찍고 읽고 하는데도 돈이 든다. 그것도 한달동안 1,000 Get, Put 공짜다.

Apple Push Notification

Generating the Apple Push Notification SSL certificate on Mac:
  • Log in to the iPhone Developer Connection Portal and click App IDs
  • Ensure you have created an App ID without a wildcard. Wildcard IDs cannot use the push notification service. For example, our iPhone application ID looks something like AB123346CD.com.serverdensity.iphone
  • Click Configure next to your App ID and then click the button to generate a Push Notification certificate. A wizard will appear guiding you through the steps to generate a signing authority and then upload it to the portal, then download the newly generated certificate. This step is also covered in the Apple documentation.
  • Import your aps_developer_identity.cer into your Keychain by double clicking the .cer file.
  • Launch Keychain Assistant from your local Mac and from the login keychain, filter by the Certificates category. You will see an expandable option called “Apple Development Push Services”
  • Expand this option then right click on “Apple Development Push Services” > Export “Apple Development Push Services ID123″. Save this as apns-dev-cert.p12 file somewhere you can access it.
  • Do the same again for the “Private Key” that was revealed when you expanded “Apple Development Push Services” ensuring you save it as apns-dev-key.p12 file.
  • These files now need to be converted to the PEM format by executing this command from the terminal:
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
  • If you wish to remove the passphrase, either do not set one when exporting/converting or execute:
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
  • Finally, you need to combine the key and cert files into a apns-dev.pem file we will use when connecting to APNS:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

Production : gateway.push.apple.com
Development : gateway.sandbox.push.apple.com

iphone applicationWillResignActive

didFinishLaunchingWithOptions 이 먼저 실행 되어 필요한 모든 정보를 로드한 후 
applicationWillResignActive가 실행된다.

슬립모드에서 복귀 되면 applicationWillResignActive가 실행된다.

Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.

[Android] 컴파일, 인스톨

1. 컴파일
adt -package -target apk -storetype pkcs12 -keystore test.p12 test.apk test-app.xml test.swf

2. 인스톨
adb install test.apk

twitter limit


Please submit this form as the user you would like an increased/lifted rate limit for. Before you apply, review ourdocumention on API rate limits. Whitelisting is only available to developers and to applications in production; all other requests are rejected.
Follower limits are not affected by API whitelisting. If you are hitting the follower limit, please consult our support documentation. API whitelisting will not solve your problem in this case.
Finally, if any of this is confusing to you, then whitelisting is probably not the answer to your question or problem. Pleasevisit our support site to resolve your issue.

iphone sharekit


ShareKit License
ShareKit is open source as described by the MIT license:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE

iTunes Seller name change


The seller name that is displayed for your app in the App Store is associated with the legal entity name of your 
organization as contracted with Apple. In order to request a change or update to your seller name, you must 
contact Apple Developer Support in the iOS or Mac Provisioning Portal.

devprograms@apple.com

맥 화면 켑쳐

/usr/bin/podcast --setconfig Capture=Screen:Best 
/usr/libexec/podcastproducer/pcastagentd -f "Desktop/capture.mov"