IT ∩ 포르노

낙서장 2009. 12. 31. 09:13

IDG에서 작년에 [포르노가 웹을 변화시킨 12가지] 기사를 올린 것이 있다..

뭐랄까.. 우리나라의 PC보급과 인터넷에 가장 큰 기여를 한 포르노를 조목조목 나열한듯하다

1. 긍정적인 기여 : 온라인결제시스템

2. 부정적인 기여 : 스팸

3. 긍정적인 기여 : 스트리밍 컨텐츠

4. 부정적인 기여 : 악성코드

5. 긍정적인 기여 : 실시간 채팅

6. 부정적인 기여 : 팝업, 팝다운, 마우스트래핑

7. 긍정적인 기여 : 브로드밴드

8. 부정적인 기여 : 브라우저 하이재킹

9. 긍정적인 기여 : 트래픽 최적화

10. 부정적인 기여 : 도메인네임 하이재킹

11. 긍정적인 기여 : 3G 모바일 서비스

12. 부정적인 기여 : 패리스 힐튼

 

국내 ODD 보급에 가장 큰 기여를한 오양, 백양 등등.. 많은 야동들이

국내 PC보급과 인터넷을 발전시켰다! 라고해도 과언이 아니라 생각된다

 

P2P가 뜨면서 국내에서는 성인 웹사이트는 거의 접속하지 않는 것 같다

찌질한 IT바닦에 있으면서 트렌드(?)를 참고하기위해 종종 외국 사이트를

방문한다.. 단지.. 추세를 보기위함이다…( `皿´)a

해외 사이트는 빠르다.. IDG에서 기고한 글처럼 웹을 변화시키는데 신기술과

새로운 컨텐츠로 큰 기여를 한다

 

예전에 어디선가 알게된 스트리밍 서비스 사이트를 알게되어 방문했을때는

정말 새로웠다.. 물론 성인 사이트였고.. 수많은 동영상을 무료로 제공하는 곳이었다

 

독특한건 많은 동영상의 리스트들이다 동영상 리스트와 리스트앞에 잇는 Thumbnail

이미지.. 항상 보아오던 Thumbnail 이미지가 아니라 마우스 오버가 되면 마치 동영상이

작게 재생되는듯한 효과처럼 많은 Thumbnail이미지를 GIF나 플래쉬로 구성하여 보여주는것같다.

물론 클릭을하게되면 컨텐츠를 스트리밍으로 제공한다. (*д´)b

 

여차저차해서 아이폰으로 접속을 하게되었다 절대.. 보고싶어 접속한 것은 아니다.. o(ιº o º)o

정말 엄청난 사이트들과 컨텐츠에 놀라지 않을 없었다.. 블랙베리, iPhone 등등 스마트폰으로 접속하게되면 UserAgent 통해 모바일 페이지로 구성된 페이지로 리다이렉트한다.

 

외국엔 스마트폰이 많이 보급되고 그만큼 이용자가 많다는 얘기이다..

 

아이폰 동영상 컨텐츠는 mp4.. 몇몇 사이트는 재생이 되지 않지만.. 거의 모든 사이트가 iPhone에서 재생되도록 제공한다….

 

국내엔글쌔 모르겠다.. 되지도 않는 영어단어로 구글신님께 물어보면 외국 사이트는 봇물처럼 쏟아져 나오지만.. 국내사이트는 아직 본적없다.

 

아이폰이 국내 스마트폰 시장에 쓰나미를 일으키고.. 대항마로 안드로이드가 떠오르는 추세다. 많은 서비스업체들이 스마트폰을 겨냥한 컨텐츠를 준비중일텐데.. 과연 어떤것들이 나올지 기대된다..

Posted by 이버리
,

멍청한 구피

물생활 2009. 12. 29. 23:14
멍청한구피 버블카운터에 끼다....
암수 2쌍중 암놈 한마리가 보이질 않는다... 한참을 찾던중


이건 뭥미 =_=;; 머하자는 씨츄에이션이신지 참나 .. 못나오고 숨만 깔딱 깔딱 ... 긴급구출시도 .. 뭐 긴급은 아니지만 어쨌던 썩쎄쓰~~~

iPhone 에서 작성된 글입니다.
Posted by 이버리
,

2자항 수초 투입

물생활 2009. 12. 29. 09:08

구매내역

수초 : 볼비티스 휴델로티, 브릭샤, 이름모를 2종

생물 : 제브라 스네일

기구 : 버블 카운터

 

TODO. 개운죽 꼽아야지..ㅋㅋㅋ

 

  • 볼비티스 휴델로티
    •  ph 6-7.2
    • 수온 22-27
    • 수질 연-중-경수
    • 조명 보통
    • 재배난이도 약간 어려움 물건에 활착하는 성질이 강하다.표면이 부드러운 유목보다 거친 바위등이 적합다다.뿌리와 줄기를 늘어뜨려 활착한것의 위쪽에서 생장점을 아래로 향하게 두고 고무밴드등으로 고정한다.활착하는데 1개월정도 걸리고, 뿌리가 뻗으면 서서히 커다란 잎을 전개하게 된다.낮은수온과 PH,영양분이 많은 수질을 좋아한다. 아주 연수나 고수온의 경우 잎이 반투명 갈색으로 되어 시들어가는 병이 발생하기도 한다.
  • 브릭샤 & ...
  • 제브라 스네일
  • 버블 카운터

Posted by 이버리
,
장난하시나 ㅡㅡ;;

아이폰으로 작성하면 위치도 되넹 ㅋ






iPhone 에서 작성된 글입니다.
Posted by 이버리
,

에혀에혀...

생활의 여유 2009. 12. 24. 16:36
아.... 나도 인제 늙은건가..ㅎㅎ
놀만큼 놀았고.. 알만큼 안다고 생각했는데 말이지...
나도 "아~ 요즘애들.." 이런말을 할 줄이야..( T -˘)

인커밍, 팬픽.. 첨듣는다...-_-
언어파괴의 선두 주자랄까? skylove, ohmylove..등등
각종 채팅사이트가 판을칠때 그 중심에서있던...
흠흠.. 중심은 좀 아니고.. 중심에서 조금 빗겨잇는? ( ̄へ  ̄ )

하늘사랑1반을 장악하던 우리 빼밀리도 있었는뎀..

인커밍 어쩌고저쩌고.. 글들보면 남자애들 얘기.. 야동얘기..

!! 단번에 알았다..ㅋㅋ Incomming 폴더.. 풉..(ιº o º)b

그런데 팬픽이라... 좋아하는 연예인을 소재로 소설을 쓴다는거...
뭐 그럴수도있지..라고 생각했는데말이지.. 19금...;;
하앍물... 이런 미췬.. 19 아래인것들이 19금을 써놓고 19 아랫것들과 본다?
ㅄ아냐? ;; 정말 얼척이 없더이다... 라고 쓰면서도.. 느끼면서도..

이것이 세대차이구나.. 나도 늙었구나.. 라는 찝찝한 느낌..ㅋ

하나 찾아서 보고싶은 생각이 잇어.. 검색을 하던 찰나.. 참나.. 애들이 쓴
찌질한 19금 텍트스 문서속의 하앍하앍하는걸 본다는거 자체가 참 한심하다 생각된다..

얼추 누가 적어논거 보면
『지용은 그의 뜨거운 페니스를.... 승현의 작고 갸날픈입에 슬그머니 삽입했다...
"아흑.."
지용의 살짝 흥분하면서도 야릇한 교성에 승현은 그의 물건을 더욱더 할짝..할짝.. 』

요지랄 하면서 쓰고있다....
하긴.. 뭐 옛날 야설이나.. 지금 팬픽이나 다를게 뭐가 있으랴..
왕X지 밤바다.. 철수 시리즈..등등...ㅋ 한 때인것인가..

ㅆㅂ 근데 향가향가는 뭐야..( `皿´)a
Posted by 이버리
,
2자, 25큐브 두개의 수조중 25큐브가 물벼룩도 생기고.. 수초도 잘자라고.. 거머리도 줠리많고 Orz..
뭐 괜춘한데.. 2자항의 등이 문제다.. 초기에 광량을 생각못하고 자작해서.. ( `皿´)a 젝일..

새우공방 subi님 왈
광 량은 총량으로 계산을 합니다. 1일 필요광량이죠. 조금 부족한듯 하면 오래 켜주고 좀 과한듯하면 조명시간을 줄이면 되는겁니다. 대략 물1리터에 조명 1와트로(수초의 종류에 따라서 달라집니다.) 8시간 조사를 기준으로 합니다. 귀차니즘님의 어항은 0.6*0.35*0.4 = 0.0084*1000 = 84리터 가 되니까 약 84와트조명이 필요한거죠. 하지만 엄밀히 따지면 조도는 거리에 비례를 합니다.

왕새우님 왈
참고로 조도와 광도는 거리의 제곱에 반비례합니다 쉽게 생각해서 가까울수록 거리의 제곱으로 빛은 밝아진다는거죠

정말 물질은 복합적인 학문을 토대로 하는 취미인듯하다... 머리나쁘면 못한다는..(ノºДº)ノ 훠이~
( ` 皿 ´)==@) ´ Д`) 퍽!! 저도 머리는 나쁩니다만...ㅎㅎ

일단... 보수공사? 보완? whatever~
600(가로), 세로(350), 높이(450) 나누기 1000을 했나보군..

0.6 * 0.35 * 0.45 = 0.0084 * 1000 = 84리터
어라...-_-; 150리터는 될텐데... 아닌가..

암퉌.. 걍 완제 사야겠담...o( >▽<)o 쿠헬헬헬~

싸나이중에 싸나이.... 봉쿠레~(*`д´)b
Posted by 이버리
,

<Android> The project cannot be built until build path errors are resolved

프로젝트 Properties에서 Build Path의 order and expert부분에

android라이브러리를 최상위로 올려주면 된당..

 

<딱.. 이상황이다.. ㅆㅂ -_->

Posted by 이버리
,

2자 어항 셋팅

물생활 2009. 12. 21. 15:33

김부장님으로 부터 받은 2자 어항.. 너미는 좋으나 폭이.. 너무 넓다..Orz..

 

600 x 500 x 500 인듯... 어림잡아...

우찌됐던간에 500에서 150을 배면섬프로 개조하기로 하였다..

포맥스와 아크릴을 이용해서 150을 띄우고 막은뒤에

600을 4등분.. 150되겠다.. 흠.. 조금 넉넉하게 입수구와 출수구쪽은 좀 좁힐까..-_-

 

재료는

- 배면섬프

  • 600x500 5T 포맥스(or 아크릴) 1장 595mm X 400mm (약 15,000원)
  • 100x370 5T 아크릴 150mm간격 4장, 120mm간격 5장 (30정도 출수구)  개당 4,500원
  • 5W 수중 모터 아마존 \7,000 or 협신 울트라 파워 7W 8처넌
  • 프리필터 스폰지 (25DPI) \3,000
  • 여과재 \20,000
  • 레인바 6,000원 만들어도 될듯..

 

 - 조명 (세트로 구매시 등빼고 \17,000 )

  • 36W X 2등용 안정기
  • 형광등 고정클립 2개
  • 형광등 소켓 2개 (36W용)
  • 36w PL등 2개 \10,000

http://www.aquaself.net/index.php?salegdno=665&gtype=1&pgurl=shop/sh_goods_view&ctpose=AAM&ctno=328&otype=1&

 

 - 바닥재

  옥션 브릭샌드 소일 3L 7,000 - 4포 (2.8)

 

구매 내역 - 피알피쉬

협신 수중모터 7W 

울트라 레인바

필그린 소일

필그린 필터튜브

필그린 바이오필터 그래뉼

여과솜

여과 스펀지

미니헤어글라스

이 글은 스프링노트에서 작성되었습니다.

Posted by 이버리
,

물생활

물생활 2009. 12. 21. 15:33

2009/11/10

수조 30 큐브
바닥재 흑사 + 소일
여과기 돔형식
온열기 100W 외부제어 히터
냉각기 조광기와 12V 아답터 , 컴퓨터 팬을 이용한 자작팬
수초  나나 , 유목 (나나, 택시 활착) , 윌로모스, 광준이가 준거 바닥수초
어종  체리새우 4 + 치비 약 15 , 피노키오 2
특이사항

구매 예정 내역

 - 이스타 미니 외부여과기 (65,000) or 필그린 걸이식 여과기 (13,000)

 - 미니 헤어글라스 수초

 - CO2 : 저압이탄 (자체제작할꺼임)

 - Up 세라믹 오토 마이져 (자체제작하면 필요없음)

 - 이스타 쉬림프 푸드

 - 오토씽 2마리정도

 - 불꽃 모스 강츄.....ㅜㅜ

 

2009/11/11

 - 히까리 CRS 사료 구매

 - 필그린 걸이식 여과기 구매

  • 오토씽 구매....

 

2009/11/21

  • 김부장님 기증..ㅋㅋ 완전 득템...
  • 2자 수조 + 각종 유목, 석, 온도계 등등..

 

내 목표사진..+_+

%EC%82%AC%EC%A7%84_1949.jpg

 

나의 롤모델들......

크기변환_제독DSC_0211(1).JPG

출처는 새우공방 일껍니다...-_-;

이 글은 스프링노트에서 작성되었습니다.

Posted by 이버리
,

 

SimpleFormController는 앞서 살펴본 AbstractCommandController를 상속해서 구현된 Controller로서...

GET 방식으로 요청이 들어올 경우 formView 프로퍼티에 지정된 뷰를 보여주고..

POST 방식으로 요청이 들어오게 되면 폼으로 넘어온 데이터를 처리한 후 successView 프로퍼티에 지정된 뷰를 보여준다...

물론 폼으로 넘어온 데이터는 commandClass 프로퍼티에 설정된 커맨드 객체에 저장된다..

보통 로그인 페이지를 작성한다고 하면 입력 화면을 처리하는 컨트롤러와 로그인을 처리하는 컨트롤러가 필요하지만..

Spring에서는 이거 하나만 가지고도 2가지 역할을 모두 할 수 있다...

SimpleFormController의 처리 흐름은 다음과 같다...

 

GET 방식인 경우

1. formBackingObject() 메소드 호출

2. showForm() 메소드 호출

 

POST 방식인 경우

1. formBackingObject() 메소드 호출

2. 입력된 폼 검증

    3-1. 검증이 실패할 경우 showForm() 메소드 호출

    3-2. 검증이 성공할 경우 onSubmit() 메소드 호출

 

그렇다면 직접 SimpleFormController를 구현해보도록 하자..

 

public class LoginController extends SimpleFormController
{
    @Override
    protected ModelAndView onSubmit(HttpServletRequest req, HttpServletResponse res,

                                                       Object command, BindException errors) throws Exception
    {
        LoginCommand login = (LoginCommand)command;
  
        if(login.getId().equals("id") && login.getPswd().equals("pswd"))
        {
            ModelAndView mav = new ModelAndView();
            mav.setViewName(getSuccessView());
            mav.addAllObjects(errors.getModel());
   
            return mav;
        }
        else
            return showForm(req, res, errors);
        }

}

 

위와 같이 onSubmit() 메소드를 재정의해주면 된다...

SimpleFormController가 AbstractCommandController를 상속받기 때문에 command를 매개변수로 갖는 것을 볼 수 있다...

아무튼 입력된 폼을 검증하는 코드를 수행한 후에는...

getSuccessView()를 호출하면 successView 프로퍼티에 지정된 뷰를 가져오게 된다...

만약 검증에 실패해서 showForm() 메소드를 실행해주면 formView 프로퍼티에 지정된 뷰를 보여주게 된다...

원한다면 검증 오류 페이지로 ModelAndView를 만들어도 될 것이다..

BindException 객체는 커맨드 객체 정보 및 요청 파라미터 값 검증 결과를 담고 있는데...

getModel() 메소드를 호출하면...

commandName 프로퍼티에 설정된 이름과 commandClass 프로퍼티에 설정된 커맨드 객체 쌍으로 된 Map 객체를 리턴한다...

따라서 View에서는 commandName에 지정된 이름을 통해 커맨드 객체에 접근할 수 있게 된다...

좀 더 자세한 내용은 다음에 알아보도록 하고...

커맨드 클래스는 아래와 같이 간단히 id와 패스워드를 갖도록 만들어 주면 된다...

 

public class LoginCommand
{
    private String id;
    private String pswd;
 
    public String getId()
    {
        return id;
    }
    public void setId(String id)
    {
        this.id = id;
    }
    public String getPswd()
    {
        return pswd;
    }
    public void setPswd(String pswd)
    {
        this.pswd = pswd;
    }
}

 

그 후 XML 다음과 같이 XML 설정을 해주면 된다...

 

<bean name="loginController" class="org.cuvic.web.LoginController">
     <property name="commandClass" value="org.cuvic.web.command.LoginCommand"/>
     <property name="commandName" value="login"/>
     <property name="formView" value="login"/>
     <property name="successView" value="result"/>
</bean>

 

commandClass와 commandName은 AbstractCommandController와 동일한 역할을 하고..

위에서 알아보았듯이 formView는 GET 방식일 때 보여줄 View이고..

successView는 POST 방식으로 넘어온 후 결과를 보여줄 View를 설정해주면 된다...

 

실제 로그인하는 페이지인 login.jsp를 간단하게 만들어 보자...

 

<html>
    <head>
        <title>로그인 테스트</title>
    </head>
    <body>
        <form method="post">
            <input type="text" name="id">
            <input type="password" name="pswd">
            <input type="submit">
        </form>
    </body>
</html>

 

그 후 결과를 보여줄 result.jsp 파일도 간단하게 만든다...

 

<html>
    <head>
        <title>로그인 성공</title>
    </head>
    <body>

        로그인 성공!!

    </body>
</html>

 

그냥 GET 방식으로 접속하면 login.jsp로 접속이 되고...

POST로 전송을 하면 문제가 없다면 result.jsp가 보이고 뭔가 문제가 있으면 바로 login.jsp 페이지가 보여진다...

 

로그인 페이지를 예로 했기 때문에 간단했지만..

회원 가입 폼이나 기타 다른 폼에서는 기본적으로 무언가 정해진 값을 선택해야 하는 경우가 있다..

예를 들어 직업이라던가 학교같은 것들을 콤보박스로 선택할 수 있게 해 놓은 경우라 할 수 있다..

이런 값들은 대개 DB에서 값을 읽어다가 출력하게 되는데...

이렇게 입력 폼에서 사용할 수 있는 값을 설정할 수 있도록 referenceData() 메소드가 제공된다..

이 메소드에서 입력 폼에서 사용할 값을 설정해서 ModelAndView로 전달할 수 있다...

 

@Override

protected Map referenceData(HttpServletRequest request) throws Exception

{

    List job = new ArrayList();

    job.add("학생");

    job.add("직장인");

    job.add("백수");

 

    Map data = new HashMap();

    data.put("job", job);

   

    return data;

}

 

위와 같이 해주면 job이라는 이름으로 입력 폼에서 값을 사용할 수가 있다...

그리고 회원 정보 수정이나 각종 정보 수정 시에는 수정할 정보가 이미 출력이 되어 있어야 하는데..

이럴 때 formBackingObject() 메소드를 사용한다...

이 메소드는 GET방식이던 POST방식이던 무조건 호출되서 커맨드 객체를 생성한다...

그 후 POST방식이면 요청 파라미터 값을 커맨드 객체에 반영하게 된다...

그러므로 폼에 미리 값을 출력해주려면 이 메소드를 재정의한다..

 

@Override

protected Object formBackingObject(HttpServletRequest request) throws Exception

{

    if(!isFormSubmission(request))

    {

        FooCommand foo = new FooCommand();

        foo = barDAO.getFoo();

 

        return foo;

    }

    else

    {

        return super.formBackingObject(request);

    }

}

 

isFormSubmission() 메소드는 POST 요청인지 판단하는 메소드이다..

! 연산자가 사용되어 POST가 아닌 경우..

즉 GET 요청인 경우 BarDAO에서 FooCommand 값을 가져오고 있는 것을 볼 수 있다..

그 외에 POST 요청인 경우에는 전달된 요청 파라미터를 그대로 처리하기 위해...

부모 클래스의 formBackingObject() 메소드를 호출하는 것을 볼 수 있다...

 

AbstractFormController에는 sessionForm 프로퍼티가 있는데..

기본 값은 false이지만 이 값을 true로 설정할 경우 아래와 같이 처리 과정이 약간 달라진다...

 

GET 방식인 경우

1. formBackingObject() 메소드 호출

2. showForm() 메소드 호출

3. HttpSession에 커맨드 객체 저장

 

POST 방식인 경우

1. HttpSession에 커맨드 객체가 있는지 확인

   2-1. 커맨드 객체가 없는 경우 GET 방식 호출

   2-2  커맨드 객체가 있는 경우 HttpSession에서 커맨드 객체 제거 후 입력 폼 검증

          3-1 검증이 실패할 경우 showForm() 메소드 호출

          3-2 검증이 성공할 경우 onSubmit() 메소드 호출

 

GET 요청이 있는 경우 커맨드 객체를 생성하여 HttpSession에 저장하게 된다..

그 후 POST 요청이 들어오면 HttpSession에서 저장된 커맨드 객체를 가져다 사용하게 된다...

왜 이렇게 사용하는지는 Spring 문서를 살펴보면..

 

Indicates whether the form object should be kept in the session when a user asks for a new form.

This allows you e.g. to retrieve an object from the database, let the user edit it, and then persist it again.

Otherwise, a new command object will be created for each request

(even when showing the form again after validation errors).

이 글은 스프링노트에서 작성되었습니다.

Posted by 이버리
,