변수형 boolean을 사용한 간단한 예제입니다.

 

 

Java  의 자료형중 하나인 boolean 을 사용하는 간단한 예제 입니다.

 

*** 원본설명

 

Vboolean.java


/*
* boolean is simple Java type which can have only of two values; true or false.

* All rational expressions retrun this type of value. 
*
* Declare boolean varibale as below
* 
* boolean = ;
* 
* here assigning default value is optional.
*/

 

*** 소스

 

package com.redjava.java.variable;

public class Vboolean {
 
    public static void main(String[] args) {

 

        boolean b1 = true;
        boolean b2 = false;
       
        boolean b3 = (10 > 2)? true:false;

        System.out.println("Value of boolean variable b1 is :" + b1);
        System.out.println("Value of boolean variable b2 is :" + b2);
        System.out.println("Value of boolean variable b3 is :" + b3);           


    } 

}

 

 

*** 결과

Value of boolean variable b1 is :true
Value of boolean variable b2 is :false
Value of boolean variable b3 is :true

 

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

MySQL Database 를 사용함에 있어서 사용자를 추가하는 예제

 

사용자를 추가하기 위해 user 테이블에 항목을 추가하는 방법을 사용할 수 있으나
여러가지 오류를 발생 시킬 수 있으므로 권하지 않습니다.

따라서 GRANT 문을 이용하여 사용자 계정을 추가하는 방법을 설명합니다.

GRANT 명령문은 사용자 계정에 권한을 부여하는 명령으로 특정 사용자에게 특정 데이터베이스에 대한 권한을 설정할 수 있습니다.

 

 


이제 test_user 라는 사용자를 만들고 이 사용자의 비밀번호를 '1234'로 설정하고 my_database에 대한 모든 권한을 부여하는 방법을 설명하겠습니다.

우선 root 권한으로 MySQL DB 에 접속 합니다.

mysql -u root -p

비밀번호를 묻는 프롬프트가 나오면 비밀번호를 입력한 후 접속합니다.


접속 후 my_database 라는 DB 를 만들어 봅니다.

create database my_database;

사용자 생성 및 권한을 부여합니다.

grant all privileges on my_database.* to test_user@localhost identified by '1234' with grant option;


상기 명령으로 생성된 유저는 localhost 에서의 접속만 허용하게 됩니다.
이 부분에 별도의 IP 나 hostname 을 주게되면 해당 IP 혹은 hostname 에서만 접속이 가능하게
됩니다.

만약 이부분을 '%' 로 지정하게 된다면, 모든 원격지에서의 접근이 가능해지게 됩니다.

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

VI 에서 유용한 찾기/바꾸기 명령들

 

1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g

 

2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g

 

3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
:1,10s/buf_.*\[255\]/hello/g

 

4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.

/^\d\+$

^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분

 

5. 전체 문서에서 add 를 plus로 치환

:s/add/plus/g

 

6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환

:s/\/etc\//\/etc\/local\//g

 

7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.

:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g

 

8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.

:%s/foo/bar/i

 

9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.

:%s/\/bar

 

10. 정렬

123 def ghi
432 ius dkf
089 cdo lks

이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면

:%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g

 

11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.

/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}

 

12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.

:%s/ab[a-z]*//g

 

13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.

:g/cpu/d

# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.

 

14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기

:g/stat[0-9]/d

 

15. 빈 줄 두 줄을 한 줄로 바꾸기

:%s/\n\n/\n/g

 

16. 두 칸을 한 칸으로 줄이기

:%s/ / /g

 

17. 탭을 스페이스 공백으로 바꾸기

:%s/\t/ /g

 

18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기

:%s/ $//g 또는
:%s/ \n/\n/g

 

19. 줄 첫 칸의 띠어쓰기를 없애기

:%s/^ //g

 

20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,
국내게임인 포트리스와 유사한 게임이고 설치없이 바로 즐길수 있습니다.

계정을 만드신분은 만드셔서 로그인 or 게스트로 접속합니다.

 

1. Join 4 player ranked game (ranked)

이 것은 4명이서 랜덤방 바로가기 이정도 입니다 1:1:1:1로 싸우게 되고 계정을 만든 분은 여기서 싸워야 랭크를 올릴수 있습니다.

 

2. 1 vs game

1 대 1로 싸우는 방인데 랭크는 올라가지 않습니다.

 

3.Join/Create Private Game

친구끼리 모여서 방을 직접 만들어서 할수 있습니다. 역시 레벨이 올라가지 않습니다.

 

4. single play

혼자 연습 삼아 이것저것 해 보는 방입니다

포트리스와는 다르게 마우스를 사용 합니다 키보드로 왼쪽 오른쪽 스페이스를 눌러서 하지 않고 마우스로 move 누르고 움직일 만큼 누르고 공격도 마우스로 이정도 각도에 이정도 파워 클릭 한번으로 끝입니다.

 

게임하기
 
 
※ 본 게임의 저작권은 해당 게임 제작사(자)에 있음을 알려드립니다.
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

ORA-12899: value too large for column

( ORA-12899: "유저명"."테이블명"."컬럼명" 열에 대한 값이 너무 큼(실제: 16, 최대값: 10)  )

 

 

 

해당에러는 표현된 컬럼에 정의되어진 길이보다 큰 문자열을 INSERT 하려고 할때 발생하는 에러.

 

실제로 값이 커서 발생하는 문제일 수도 있으나,  간혹 캐릭터셋(charset) 의 문제로 인한 에러가 발생 할 수도 있음.

 

실제 UTF-8 과 ASCII 의 Byte 수가 틀리기 때문입니다.

 

 

해당 오류가 발생할 경우 1차적으로 해당 컬럼에 삽입되어지는 데이터의 값을 먼저 확인을 하시면 되고,

 

한글등이 섞여 있는 경우는 Byte 수를 잘 계산하여 컬럼 사이즈와 비교를 해봐야 함.

 

오라클 캐릭터셋의 변경은 다음과같이..

 

---------------------------------------------

해결방안 먼저 로컬의 문자셋 확인

select * from propS$ where NAME LIKE 'NLS_%';

 

현재의값 'AL32UTF8'을  'KO16KS5601'로 변경한다.

 

UPDATE PROPS$ SET VALUE$='AL32UTF8' WHERE NAME = 'NLS_CHARACTERSET';

오라클 재시작...

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

Javascript 에서 Request 의  Parameter 값 구하기

 

1. Javascript에서 request.getParameter 사용

 

Javascript 를 이용한 Request 파싱은 GET 형태의 파라메터만 가능함.

1) Request 를 function 으로 생성
======================================================================================================

function Request(){
 var requestParam ="";
 
 //getParameter 펑션
  this.getParameter = function(param){
  //현재 주소를 decoding
  var url = unescape(location.href);
  //파라미터만 자르고, 다시 &그분자를 잘라서 배열에 넣는다.
   var paramArr = (url.substring(url.indexOf("?")+1,url.length)).split("&");
 
   for(var i = 0 ; i < paramArr.length ; i++){
     var temp = paramArr[i].split("="); //파라미터 변수명을 담음
 
     if(temp[0].toUpperCase() == param.toUpperCase()){
       // 변수명과 일치할 경우 데이터 삽입
       requestParam = paramArr[i].split("=")[1];
       break;
     }
   }
   return requestParam;
 }
}


======================================================================================================

2) 사용예
 
  // Request 객체 생성
 var request = new Request();
 // test 라는 파라메터 값을 얻기
  request.getParameter("test");

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

Linux iptabes 설정

 

 

초기 세팅시 iptable 명령어 이용보다는 

/etc/sysconfig/iptables 파일을 직접 편집하여 설정 하는게 편함

 

 

 

 

#Generated by iptables-save v1.4.7 on Mon Jun  9 16:13:55 2014

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j DROP

-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j DROP

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j DROP

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

COMMIT

# Completed on Mon Jun  9 16:13:55 2014

 

필요한 포트를 ACCEPT 하거나 DROP 함.

 

설정변경 후

 

/etc/init.d/iptables restart

 

명령을 이용하여 서비스 재시작하여 적용

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

HTTP POST 여러개의 파라미터를 포함한 request 테스트

 

아파치 httpclient 라이브러리를 이용하여 POST 형태로 다중 파라메터를 전송하는 예제입니다.

 

 

 

 

package com.redjava.interfaces.https;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class httpClientParams {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
    HttpClient client = new DefaultHttpClient();
      HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");

      try {

        List<namevaluepair> nameValuePairs = new ArrayList<namevaluepair>(1);
        nameValuePairs.add(new BasicNameValuePair("Email", "jsaclova"));
        nameValuePairs
            .add(new BasicNameValuePair("Passwd", "************"));
        nameValuePairs.add(new BasicNameValuePair("accountType", "GOOGLE"));
        nameValuePairs.add(new BasicNameValuePair("source", "Google-cURL-Example"));
        nameValuePairs.add(new BasicNameValuePair("service", "ac2dm"));

        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = client.execute(post);
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

        String line = "";
        while ((line = rd.readLine()) != null) {
          System.out.println(line);
          if (line.startsWith("Auth=")) {
            String key = line.substring(5);
            // Do something with the key
          }

        }
      } catch (IOException e) {
        e.printStackTrace();
      }
   }


}
</namevaluepair></namevaluepair>

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

Assigning the return value of new by reference is deprecated

 

PHP 개발 중 위와같은 오류가 발생하는 경우는

 

참조 시키는 경우 바로 받아서 사용할 수 없는 경우의 경고 메세지 입니다.

 

물론 이는 php.ini 의 설정 (에러메세지 출력 관련)에 따라서 안나올 수도 있습니다.

 

만약 경고를 유발시키지 않으시려면...

 

$a  = & new classname();

 

이런식으로 바로 참조 시키면 안되고..

 

$tmp = new classname();

$a = &$tmp;

 

이런식으로 한번 거쳐서 해주시면 아무런 문제가 없답니다~

 

즐프하세요.

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

Javascript 로 홈페이지 즐겨찾기 추가 버튼 및 시작페이지로 등록하기

 

1. 즐겨찾기

 

//즐겨찾기 스크립트
function bookmark_add() {
     bookmark_url  = "도메인입력";
     bookmark_name = "홈페이지 타이틀";
    
     try {
      window.external.AddFavorite(bookmark_url,bookmark_name);
     } catch(e) {
      alert('이 브라우저는 즐겨찾기 추가 기능을 지원하지 않습니다.');
      return false;
     }
 }

 

적용은 아래와 같이..
 <a href="javascript: bookmark_add();">즐겨찾기 추가</a>

 


 2. 시작페이지로


<a href="#" onClick="this.style.behavior='url(#default#homepage)';this.setHomePage('도메인입력');">시작페이지로</a>

 

 

빨간글씨 도메인입력 부분에 원하는 사이트를 적어주면됩니다.

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,