Contenu connexe
Similaire à KPW2012::LT::spot
Similaire à KPW2012::LT::spot (20)
KPW2012::LT::spot
- 2. 누구?
● 13년차 개발자 (2000.01~)
● 1년에 책100권 읽어 본 경험자
http://iklo.egloos.com/4782366
● Perl 사용자 및 권유자
● 前 듣보잡 블로거
- 3. 뭘로 먹고 살았나?
● 6번째 회사 + 굵직한 알바
○ Perl CGI, ASP, Java, PHP
○ PHP
○ C#
○ Java
○ Java, PHP
○ Java
○ HTML, CSS, Javascript, Java
- 5. 살아남기 위해 갖춰야 했던 것
● 구글
● 메모장
● 엑셀
● 에디터 단축키, 특히 vim, eclipse
● Perl
- 7. 이럴 때 했다고!!!!
● 빨리 해야되면
● 안되면
● 닥치면
● 시키면
● 할 사람 없으면
● 놀고 싶으면
● 돈 필요하면
● kpw2012 발표! 윽.....(__)
- 8. 사례
#1. 다 막아둘꺼야. 오던가.
● 우리는 공무원
● 일단 80port 빼고 다 막는다
● 소스는 와서 배포해
● 서울,경기,인천,강원도,대전, 대구.... 울산
까지?
- 10. 사례
#2. Site 뒈진다!!! 뒤질래?
● 웹하드 솔루션
HPUX+Mysql+Apche+PHP
● 심심하면 전화질
● 수업 중
● 적당히 해라
나 대학생 ● 뒈지는 상황을 봐야 알지
제길...
- 11. 뒈지면 고친다!!!
조낸 뛰는
거닷!
가끔 죽어 주는 서버
sms
monitor.pl
- 12. 사례
#3. 배포는 왜 root로만;;;
-bash: /usr/bin/rsync: Permission denied ...
- 13. root로 로그인 해서 배포해!!
user => deamon
user => root
#!/usr/bin/perl
use Expect;
my $exp = Expect->.....blah...
...
- 15. 설치하기 귀찮
아
all RE!!! and SQL
WWW::mechanize
HTML::TagParser
my ($value) = ($html =~ m/(blahblah)/g);
print "insert into tbl values('$value');"
- 16. 또!!!! more, more, more
Cluster SSH,
Dump, Batch, 등등등
그리고, 최근엔
NexentaStor API를 이
용한 POC를 perl로 진
행했........
염장???
- 17. 됐고! 그래서 펄 할 줄 아냐고....
● 그래서 perl 할줄 아는
겨?
● 말로 코딩하냐?
● 사랑스런 $들을 보여달
라!
● 더 이상의 사례는 필요
없다.
당신의 마음
알았다! 보여주께!!
자신감 없는 회색;;;
- 18. '참석자 중 나를 follow 한 님은?'.pl
● KPW2012를 위해 하루 코딩;;;;;
● 일단 참석자 목록 긁고
● 대충 트위터 로그인 해서
● html parsing 하면 만들 수 있겠
다!!!
- 21. 뭐 사용했냐면....
use utf8;
use Encode;
use Data::Dumper;
use Modern::Perl;
use Mojo::UserAgent;
use List::MoreUtils qw/ uniq /;
- 22. cookie + token
my $tx = $UserAgent-> get('https://twitter.com');
if ($tx->success) {
for my $cookie (@{$tx->res->cookies}) {
if ($cookie->name eq '_twitter_sess' ){
$cookie_twitter_sess = $cookie->value;
last;
}
}
$authenticity_token = $tx->res->dom
->at('.js-front-language input[name= authenticity_token ]')
->{value};
} else {
say $tx->error."n";
exit(1);
}
- 23. login
$tx = $UserAgent->build_form_tx(
'https://twitter.com/sessions/' => {
'session[username_or_email]' => 'iklonet@gmail.com'
, 'session[password]' => 'kpw2012'
, 'authenticity_token' => $authenticity_token
, 'scribe_log' => ''
, 'redirect_after_login' => '/'
, 'return_to_ssl' => 'true'
}
);
$tx->req->headers
->cookie('_twitter_sess='. $cookie_twitter_sess.';');
$UserAgent->start($tx);
- 24. parseInfo
$tx->res->dom->find(' .content .account-group')
->slice(0)
->each(sub {
my $el = shift;
$profile_avatar = $el->at(' .avatar')->{'src'};
$username = $el->at(' .username b')->text;
});
$follow_status = $tx->res->dom
->at(' .profile-card-inner .follow-status')
-> text;
- 25. 사용자 목록
my $txt_members = '
keedi aanoaa JEEN_LEE JellyPooo ja3ck..... Block Copy
';
(vim) Paste
gg
$txt_members =~ s/n//g;
Shift+v
my @members = split(/ /, $txt_members); Shift+g
foreach (@members) { Shift+j
&parseInfo($_);
}
- 27. 결과
10명도 안됨
삐뚫어 질테닷ㅡㅡ^
...
- 29. 느닷없이 결론! 오래 살아 남으려면...
● 살아남기 위해 필요한 것 갖추기
● 책 많이 읽기
● 돈 조금 더 벌기
● 커뮤니티 눈팅하기
● 잠자기
Enjoy Perl;