자바스크립트로 인수를 부여하는 방법이다.


<예제 코드>

 <script language='javascript'>
function triangle(args){
return args.height * args.width;
}
var test = triangle({height:5,width:4});
alert(test);
</script>



인수를 부여하는 방법의 장점: 

1. 인수가 많아져도 코드의 의미를 쉽게 알수있다.

2. 인수의 차례를 마음껏 변경 가능하다.
















*자바스크립트 다시 시작 .예전에 할때는 이런게 없었던 것 같은데..열심히!!읏쨔라라라라라

저작자 표시 비영리
신고
posted by 몰라용

2011 - 10- 17

컴퓨터/etc 2011.10.17 13:29
크게 버리는 사람만이 크게 얻는다.



- 무소유 중-



 
저작자 표시 비영리
신고
posted by 몰라용

제 11회 2011 한국자바개발자 컨퍼런스
저작자 표시 비영리
신고
posted by 몰라용

파이썬 1일차

컴퓨터/Python 2011.05.25 13:42
Python 으로 프로그래밍시작!

훔....그냥 에디트 플러스나 노트패드에서 하기 귀찮아서....

이클립스에 플러그인을 설치해서 사용하기 결정!!!

플러그인 주소:  http://pydev.org/updates


 
 
저작자 표시 비영리
신고
posted by 몰라용

SysntaxError: Non-ASCII character ~~~어쩌구 에러뜰시

아래 구문 붙히기..첫줄에..


# -*- coding: euc-kr -*-
저작자 표시 비영리
신고
posted by 몰라용

현재 보고 있는 책은... os구조와 원리

os를 30일안에 완성 할 수있다는.......................???

문제는 플로피 디스켓을 중심으로 작성이 되었다는 것이지만...가상 플로피 디스크 드라이브를 생성해서 가능할 것 같다.

make file 만드는 강좌 : http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html
가상 플로피 디스크 드라이브 생성 : http://prolite.tistory.com/98


ㅇㄹㅇㄹㅇㄹ

저작자 표시 비영리
신고
posted by 몰라용

파티션의 이해

컴퓨터/etc 2011.04.20 10:03

요즘은 프로그래밍을 하다보면..무엇인가 컴퓨터 관련 지식에 목마를때가 많다.
그거 정리할겸....... kldp에서 글 읽을때마다 주저지주저리 적어 볼까 한다.

파티션 파트에서 가장 중요한 부분은 mbr인것 같다.master boot record라고도 불리는 이 부분...
MBR의 구조는 한번 짚고 넘어가야 될 듯하다

0000 0 코드 영역 440
최대 446
01B8 440 디스크 서명 4
01BC 444 보통 없음(Null); 0x0000 2
01BE 446 프라이머리 파티션 테이블
(4개의 16바이트 엔트리)
64
01FE 510 55h MBR 서명;
0xAA55
2
                                 <mbr의 구조>


파티션은 어디에 위치한 것일까?

파티션은 주 파티션과 확장 파티션으로 나뉘어 지는데 주 파티션의 경우는 LBA방식으로 나타낸다면 0번 섹터이며 CHS방식으로 나타낸다면 0/0/1 에 위치한것이 됩니다. 즉, 물리적으로 가장 처음부분이 주 파티션이 위치하는 곳이며 이곳을 Master Boot Record(MBR)이라고도 불리워집니다. 도스에서 "fdisk /MBR"명령은 이곳을 초기화 하는 명령이 되는 것이고요. 또한 이곳에는 파티션정보만 있는것이 아니고 PC가 부팅되면 이곳에서 부팅코드를 읽어와서 부팅하게 됩니다. 즉, 만약 이곳이 읽어질수 없는 상태(파괴?)가 된다면 하드디스크는 무용지물이 되버리는 중요한 영역이 되는 것입니다. 


파티션의 목적
  • 첫째 : 하나의 물리적 디스크를 몇개의 영역으로 나누어 관리가 용이하도록 하는 것.
  • 둘째 : 운영체제가 여러가지인 경우 그러한 각각의 고유 파일시스템을 단일 영역에 독립적으로 유지할수 있게 하기 위해서.
  • 셋째 : 한 파티션이 손실되더라도 다른 파티션 영역은 손실로부터 보호할수 있는 확률을 높이기 위한 수단. 





 
 



관련자료

http://wiki.kldp.org/wiki.php/%C6%C4%C6%BC%BC%C7 
http://ko.wikipedia.org/wiki/%EB%A7%88%EC%8A%A4%ED%84%B0_%EB%B6%80%ED%8A%B8_%EB%A0%88%EC%BD%94%EB%93%9C 
저작자 표시 비영리
신고
posted by 몰라용

스택은 자료 구조 공부를 하면서 제일 많이 듣는 내용인 것 같다

스택이란 ?  제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다.

스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸시(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 (pop)이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 된다. 이처럼 나중에 넣은 값이 먼저 나오는 것을 LIFO 구조라고 한다.

 





참고 자료 및 소스 출처:

1. 위키
저작자 표시 비영리
신고
posted by 몰라용
이중 연결 리스트의 구조는 단순 연결 리스트와 비슷하지만, 포인터 공간이 두 개가 있고 각각의 포인터는 앞의 노드와 뒤의 노드를 가리킨다


public class CLinkedList {
	
	private ListNode head = null;
	
	public CLinkedList(){
		this.head = null;
	}

	public void insertFirstNode(String data){
		ListNode newNode = new ListNode(data);
		if(this.head == null){
			this.head = newNode;
			this.head.link = head;
		}else{
			ListNode temp = this.head;
			while(temp.link != head){
				temp = temp.link;
			}
			
			newNode.link = temp.link;
			this.head = newNode;
			temp.link = newNode;
		}
		
	}
	
	
	public void insertMiddleNode(ListNode pre, String data){
		ListNode newNode = new ListNode(data);
		newNode.link = pre.link;
		pre.link = newNode;
	}
	
	
	public void insertLastNode(String data){
		ListNode newNode = new ListNode(data);
		if(head == null){
			this.head = newNode;
			this.head.link = head;
		}else{
			ListNode temp = head;
			while(temp.link != head) temp = temp.link;
			temp.link = newNode;
			newNode.link = head;
		}
	}
	
	public void deleteLastNode(){
		ListNode pre, temp;
		if(head == null) return ;
		if(head.link == null){
			head = null;
		}else{
			pre = head;
			temp = head.link;
			while(temp.link != head){
				pre =temp;
				temp = temp.link;
			}
			pre.link = head;
		}
	}
	
	public ListNode searchNode(String data){
		ListNode temp = this.head;
		while(temp.link != head && temp != null){
			if(data == temp.getData()) return temp;
			else temp = temp.link;
		}
		return temp;
	}
	
	public void printList(){
		ListNode temp = this.head;
		System.out.printf("L =(");
		while(temp != null && temp.link != this.head){
			System.out.printf(temp.getData());
			temp = temp.link;
			if(temp != null && temp.link != this.head){
				System.out.printf(", ");
			}
		}
		System.out.println(")");
	}
	
	
}
public class CLinkedListMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CLinkedList L = new CLinkedList();
		System.out.println("add linkedList");
		L.insertLastNode("1");
		L.insertLastNode("2");
		L.insertLastNode("3");
		L.printList();
		
		System.out.println("add node(first)");
		
		L.insertFirstNode("first");
		L.printList();
		
		System.out.println("add node after 1");
		ListNode pre = L.searchNode("1");
		L.insertMiddleNode(pre, "ex");
		L.printList();
		
		System.out.println("delete");
		L.deleteLastNode();
		L.printList();
		

	}

}

참고 자료 및 소스 출처:

1. 위키
2. http://www.gurubee.net/pages/viewpage.action?pageId=1507898

저작자 표시 비영리
신고
posted by 몰라용
링크드 리스트 중 간단히 구현할 수 있는 단순 연결 리스트 이다

실상.. 간단하지는 않은 내용이다. 중간에 보변 reverse함수 부분은 유심히 보는 편이 좋을 듯 쉽다.

아래 그림은 단순 연결리스트 구조 이다.




class : ListNode
 
public class ListNode {
	
	private String data;
	public ListNode link = null;
	
	public ListNode(){
		this.data = null;
		this.link = null;
	}
	
	
	public ListNode(String data, ListNode node){
		this.data = data;
		this.link = node;
	}

	
	public ListNode(String data){
		this.data = data;
	}
	
	public String getData(){
		return this.data;
	}
	
}
class: LinkedList
 

public class LinkedList {
	
	private ListNode head = null;
	
	public LinkedList(){
		this.head = null;
	}
	
	public void insertFirstNode(String data){
		ListNode newNode = new ListNode(data);
		
		if( this.head == null){
			this.head = newNode;
		}else{
			ListNode tmpListNode = head;
			this.head = newNode;
			newNode.link = tmpListNode;
		}
	}
	
	public void insertMiddleNode(ListNode pre, String data){
		ListNode newNode = new ListNode(data);
		newNode.link = pre.link;
		pre.link = newNode;
	}
	
	public void insertLastNode(String data){
		ListNode newNode = new ListNode(data);
		if(head == null) this.head = newNode;
		else{
			ListNode tmp = head;
			while(tmp.link != null) tmp = tmp.link;
			tmp.link = newNode;
		}
	}
	
	public void deleteLastNode(){
		ListNode pre,temp;
		if(head == null) return ;
		if(head.link == null) head = null;
		else{
			pre = head;
			temp = head.link;
			while(temp.link != null){
				pre = temp;
				temp = temp.link;
			}
			pre.link = null;
		}
	}
	
	public ListNode searchNode(String data){
		ListNode temp = this.head;
		while(temp != null){
			if(data.equals(temp.getData())) return temp;
			else temp = temp.link;
		}
		
		return temp;
	}
	
	public void reverseList(){
		ListNode next = head;
		ListNode current = null;
		ListNode pre = null;
		while(next != null){
			pre = current;
			current = next;
			next = next.link;
			current.link = pre;
		}
		
		head = current;
	}
	
	public void printList(){
		ListNode temp = this.head;
		System.out.printf("L = (");
		while(temp != null){
			System.out.printf(temp.getData());
			temp = temp.link;
			if(temp != null){
				System.out.printf(" ,");
			}
		}
		System.out.println(")");
	}	

}
 class : LinkedListMain
public class LinkedListMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LinkedList L = new LinkedList();
		System.out.println("add linkedList");
		L.insertLastNode("1");
		L.insertLastNode("2");
		L.insertLastNode("3");
		L.printList();
		
		System.out.println("add node(first)");
		L.insertFirstNode("first");
		L.printList();
		
		System.out.println("add node after 1");
		ListNode pre = L.searchNode("1");
		L.insertMiddleNode(pre, "ex");
		L.printList();
		
		System.out.println("reverse");
		L.reverseList();
		L.printList();
		
		System.out.println("delete");
		L.deleteLastNode();
		L.printList();
		

	}

}

실행 결과

 
참고 자료 및 소스 출처:

1. 위키
2. http://www.gurubee.net/pages/viewpage.action?pageId=1507898



저작자 표시 비영리
신고
posted by 몰라용
- 목 적
  개인 실력 향상을 위한 프로젝트

- 기 간
  11. 4.18 ~



- 목 차 
  1. 연결 리스트
     - 단일 연결 리스트 (자바)
     - 이중 연결 리스트 (자바)
  2. 스택

  




- history
2011-4-18  알고리즘 & 자료구조 정리 시작






- 자료 출처 리스트
1.http://ko.wikipedia.org/wiki/%EC%97%B0%EA%B2%B0_%EB%A6%AC%EC%8A%A4%ED%8A%B8#.EB.8B.A8.EC.88.9C_.EC.97.B0.EA.B2.B0_.EB.A6.AC.EC.8A.A4.ED.8A.B8 
2.http://www.gurubee.net/pages/viewpage.action?pageId=1507898
3.뇌를 자극하는 알고리즘
저작자 표시 비영리
신고
posted by 몰라용

perl 시작(작성중)

컴퓨터/perl 2010.12.22 09:27
<윈도우 계열 프로그램 다운로드>
http://strawberryperl.com/

1. 프로그램 다운로두 후 설치
2. 실행창에서 cmd -> cpan
여기까지면 일단 설치 완료


                                 <테스트 화면>

1.hello.pl 작성
2. perl hello.pl로 실행


*****설치 후 필요시****
1. 업그레이드 필요시
cpan > upgrad



<mac>

저작자 표시 비영리
신고
posted by 몰라용


일단 기본적으로.....윈도우는 패스.....ㅜㅜ
리눅스 또는 맥에서 하기를 권장 합니다. (모..cygwin등등을 깔면 가능하지만 !!! 차라리 리눅스를 깔아서하는게 덜 귀찮을려나??
여튼~~`)

기본적인 설치법은 옆에 사이트에서 알수있습니다. -->  http://golang.org/doc/install.html#ctools

간단하게 설치 방법을 말해보자면

(우분투.....상황에서)
1.  sudo apt-get install bison ed gawk gcc libc6-dev make

2. sudo apt-get install mercurial

3. hg clone -r release https://go.googlecode.com/hg/ go


 

저작자 표시 비영리
신고
posted by 몰라용
추천 블로그 : http://inter999.blog.me/140053719800

jvm 메모리 모델을 프로그래밍을 하면서 한번은 꼭 알아야하는 내용인 듯 하다
추천 블로그에 주요 내용은 아래와 같습니다.

jvm 메모리 모델 영역은 총 4영역으로 이루어져 있다.
1.Method area - Class 정보, static 변수 영역 저장
2.Heap - new 연산자로 생성되는 객체를 저장
3.Java stack - 로컬변수, 매개변수 등이 저장
4.Native MEhotd Stack - native 매개변수를 저장할시 Native의 매개변수, 지역 변수 등을 저장



저작자 표시 비영리
신고
posted by 몰라용

bbc news

컴퓨터/HTML5 2010.08.24 23:43

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

이문서의 번역 출처는 http://itstation.tistory.com/ 이곳입니다.

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

BBC News, Part I.

:: 신기술 정리/- BBC NEWS 2010/08/24 21:46

For the inaugural WhitherApps project, we’re going to look at the (excellent) BBC News iPhone/iPad app and see if it could have been built as a web app, rather than in native code.
개시하는 WhitherApps 프로젝트를 위해, 우리는 (훌륭한) BBC 뉴스 아이폰 / iPad 애플리케이션을 볼 것이고, 그리고 만일 그것이 웹 애플 리케이션으로 구축되어있다면, 차라리 원시 코드를 참고해라.

To kick off with, we’re going to try and emulate the iPad version, in both orientation modes. What we’re basically aiming for is this:
우리가 시도하는 것은 iPad 버전을 에뮬레이션, 두 방향 모드로 가고있어 함께 킥오프합니다. 우리는 기본적으로 이건를 겨냥하고있다 :


And this :



Let’s see how we get on. I’ve decided to break the process down into 4 steps:

  • Figure out how the app pulls content from the BBC
  • Make a wireframe web page that behaves like the app
  • Stitch the content into the wireframe
  • Decorate the wireframe so it looks just like the real thing

     1. 어떻게 app가 BBC에서 content를 끌어오는지 알아보자
     2. 애플리케이션 같은 행동 와이어 프레임 웹 페이지 만들기
     3. 스티치 - 와이어 프레임에서 콘텐츠
     4. 와이어 프레임을 장식하라 그래서 그것이 진짜 인것처럼 만들어라

This gives me a chance to assess the feasibility of the undertaking
before I get too swept up with pushing pixels around.
이는 그 일의 실현 가능성을 평가하는 기회를 주었다,
전에 내가 완전히 전멸했을때 with pushing pixels around



BBC뉴스앱을 HTML5로 만드는 강좌 사이트 http://whitherapps.com 
앞으로 다양한 네이티브앱을 HTML5로 컨버팅 하는 프로젝트를 진행한다고 하내요.

** 제가 직접 번역한 것이라 오역이 많습니다.. 잘못된 부분은 수정부탁드립니다 ^^;
** 원문을 보시고 싶으시다면 위의 사이트를 보시면 되겠습니다. **

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

Introducing WhitherApps


The debate (토론)

It’s 2010 and debate rages in the mobile industry over the future of applications.
On one hand, people seem to love native client apps.
A quick download process from an app store,
and the shiny icon is sitting on the mobile device’s desktop, ready to go.
이것은 2010과 토론의 모바일 산업에서 어플리케이션의 미래에 대한 열망들이다
한편으로는, 사람들은 native client apps를 좋아하는 듯 하다.
애플 리케이션 저장소에서 빠른 다운로드 프로세스,
그리고 반짝 이는 아이콘이 모바일 디바이스의 바탕 화면에 놓일 준비가 되어있다.


What’s more, as a developer, I might even get paid for it.
But wait! Damn.
더 충격적인 것은, 한 개발자로서, 난 심지어 그것을 위해 돈을 받을 수 있다.
그러나 기다려라! 젠장!


If I want to reach lots of users,
I have to write different code for every single device platform.
iPhone, Android, Symbian. That’s a lot of code to keep in sync.
And I need users to keep updating the applications every time I make a small change.
만일 내가 많은 유저들에 도달하고자 한다면,
나는 모든 단일장치 플랫폼들에 대한 다른 코드를 작성해야만 한다.
아이폰, 안드로이드, 심비안. 많은 코드들을 sync시켜서 유지해야한다.
그리고 나는 작은 변화를 만들어 응용 프로그램을 매번 업데이트를 유지하려면 계속 사용자가 필요합니다.


On the other hand, the mobile web.
Build a site which looks and feels like a self-contained application
but which can render nicely on a variety of platforms.
(It helps that a lot of modern mobile operating systems have broadly similar browsers.)
I might not be able to make money by selling access to it,
but I can update the site
whenever I want, and users will see the latest and greatest version.
In reality, there’s an essential role to be played by both types of application
– as there is for computing in general. But the debate still continues and it’s fun to be involved.
반면에, 모바일 웹이다.
하나의 사이트를 만들어라. 보고 느끼는 마치 독립적으로 된 어플리케이션 처럼
그러나 각가지의 플랫폼들을 멋지게 만들어라
(그것은 많은 모던한 모바일 오퍼레이팅 시스템이 폭넓게 비슷한 브라우저들을 돕는다) 
나는 그것에 접근하여 판매하는 것에 의하여 돈을 벌 수 없을지도 모른다.
그러나 나는 그사이트를 업데이트 할것이다.
언제든지 나는 원한다, 그리고 유저들은 가장 최근에 그리고 엄청난 버전을 보게될 것이다.
사실은, 하나의 필수적인 역할이 있다. 양쪽 타입의 어플리케이션에 의하여 플레이하게 된다.
- 일반적인 컴퓨팅을 위한 것으로서. 하지만 논쟁은 여전히 지속되고 그것은 즐거움을 포함하고 있다.
---------------------------------------------------------------------------------------------------------------------------
Enter WhitherApps

So what’s the point of this site, then?
그래서 이 사이트의 요점이 무엇인가?

WhitherApps is a bandwagon-busting experiment.
I believe there are far too many native client apps which could have been far better written as mobile web apps.
WhitherApps는 bandwagon-busting 실험이다.
나는  너무 많이 native client apps가 있고 어느 훨씬 더 나은 모바일 웹 애플리케이션으로 기록되었을 수 있다고 믿는다.


What we’re going to try and do is take a few examples,
apply a little reverse-engineering, and rewrite them, warts and all, with web technologies.
우리가 시도하려하고 있고 할 몇 가지 예제들,
약간의 리버스 엔지니어링, 재작성, 결점과 전체, 웹 기술들을 적용한다.

We’ll focus on native client apps that are free to download.
These wouldn’t have suffered commercially had they been written this way in the first
place.
우리는 native client apps를 무료로 다운로드 하는것에 초점을 둘 것이다.
이는 상업적으로 고통받지는 않았을 것이다. 그들이 이 방법을 작성했었더라면 그 첫번째 장소에서. // 이 부분 해석이 매끄럽지 못하군요..

Obviously, we’ll also focus on feasible genres of apps.
No 3D games or background apps, for example.
To start with, informational media apps (such as newspapers and broadcasters) will be in the spotlight.
명백하게, 우리는 또한 애리케이션의  실현 가능한 장르에 초점을 둘것이다.
3D 게임이나 배경 애플리케이션이 아닌, 예를 들자면.
정보미디어 애플리케이션들(신문과 방송)은 스포트라이트를 받으며 시작할 것이다.  


But otherwise, we may not need to pull too many punches.
Offline access? Through the wonders of HTML5, that should be OK.
Native device API access?
Well, BONDI and proprietary libraries permitting, we’ll have a go
– and there’s always PhoneGap too.
그렇지 않으면, 우리는 너무 많이 호소할 필요가 없을 수도 있습니다.

오프라인 접근? HTML5의 경이로움을 통하면 OK입니다.
Native device API 접근?
글쎄, 본다이와 독점 라이브러리를 허용, 우리는 시도할  수 있을것입니다.
- 그리고 거기에는 항상 PhoneGap 역시 있을 것입니다.

Each post on the site will be a walkthrough (or part of a walkthrough) of the process.
As we get our hands dirty, from the protocol-sniffing to the pixel-jiggling,
site에 각각 post는  그 프로세스를 절차파악(또는 절차부분을 파악)할 것이다.
마찬가지로 우리의 손은 그 protocol-sniffing을 the pixel-jiggling 함으로  더러워 질것이다.

you can follow the steps we took.
Stay tuned and wish us luck!
당신은 우리가 걸어온 발자취를 따라올 수 있을 것이다.
계속해서 주목하고 기원해라. 우리의 행운을


---------------------------------------------------------------------------------------------------------------------------
다음 포스팅 부터 소스코드를 통하여 구현해 보도록 하겠습니다-


저작자 표시 비영리
신고
posted by 몰라용

출 처 : http://nobae.egloos.com/3275120


package main


import "fmt"


func main() {
  fmt.Printf("Hello, 안녕\n")
}


빨라요.


Go 컴파일러는 아주아주 빠르게 컴파일해요. 일반적으로 C와 C++ 비교해서 빠르게 결과를 만들어냅니다.


안전해요.


Go 언어는 타입과 메모리에 안전해요. 포인터를 지원합니다. 하지만 포인터연산은 못해요. 랜덤으로 접근하고, slice를 사용하죠. 이것들을 적절히 제한합니다.


동시성


Go 언어는 시스템사용을 촉진시켜요. 서버는 goroutin 호출, 언어의 강력한 지원, 경량의 커뮤니케이션으로 처리합니다. 원한다면 stack overflow 랑도 빠이빠이죠.


즐거움


빠르게 빌드하고 깔끔한 문법, 가비지 콜렉션지원, 어떤 타입도 가능한 메소드, 런타임에서 리플렉션 지원, 다이나믹한 언어의 느낌 그러나 빠르고 안전하고 정적인 언어로 사용하면 즐거워요.


오픈소스





이 부분내용이 사이트에는 영어로 써있지만 어느분이 친절하게 적어놓으셔서....퍼왔습니다.
깊게 공부해야지...

저작자 표시 비영리
신고
posted by 몰라용

html5...

컴퓨터/HTML5 2010.08.23 13:55

html5시작......
이걸.. 프로그래밍이라고 불러야하는지.......아직 깊게 안봐서 모르겠다......

예전 일할때 html이용하는건 무한대의 테이블 생성할때밖에 안썼는데.....요즘은 아닌것 같은데.............
여튼 이제 시작해 볼련다

맨처음 도전해 볼만한 사이트를 찾았다..

bbc뉴스를 html5로 구현하는 ................................

http://whitherapps.com/bbc-news/


해보는거야!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
저작자 표시 비영리
신고
posted by 몰라용

새로운 시스템 프로그램의 등장인가

도전해볼만한 프로그래밍이다...... 씨언어를 뛰어넘을 언어인가....구글이 관심을 가진다면.....ㅋ..

사이트 : http://golang.org/doc/go_learning.html#orig_tutorial

저작자 표시 비영리
신고
posted by 몰라용

출처 : http://not-at-school.blogspot.com/2010/07/beautiful-code-sense-of-direction.html

위에 링크에 글을 번역을해서 다 써놓고 싶었지만...그럴 수 없었다..너무 긴 관계로 인해 ..아하하하
내용만큼은 참 심플하고 좋았다.

beutiful source를 만들기위해
가장 중요한것은
  • Less is more,
  • Local is manageable,
  • Innovation is risk.
  • 이 세가지를 지킬것....... 정확히는 설명할 수는 없지만 의미는 대충 이해가 간다.

    밑에는 위 사이트에서 간략히 소스를 만드는 과정에 대해 설명한 예이다.


    Before

    class Point
    {
    int x;
    int y;
    int distance;

    public void ShiftHorizontally(int deltaX)
    {
    this.x += deltaX;
    this.distance = this.x*this.x + this.y*this.y;
    }

    public void ShiftVertically(int deltaY)
    {
    this.y += deltaY;
    this.distance = this.x*this.x + this.y*this.y;
    }
    }


    After
     class Point
    {
        int x;
        int y;
        int Distance
        {
            get
            {
                return this.x*this.x + this.y*this.y;
            }
        }

        public void ShiftHorizontally(int deltaX)
        {
            this.x += deltaX;
        }

        public void ShiftVertically(int deltaY)
        {
            this.y += deltaY;
        }
    }


    get의 쓰임새가  눈여겨볼만 한거 같다..
    그밖의 나머지 좋은 예제가 많으니까 꼭 저 링크를 봤으면 좋겠습니다.~

    저작자 표시 비영리
    신고
    posted by 몰라용

    보안 2

    컴퓨터/보안 2009.03.19 15:37


    패킷캡쳐프로그램
    http://www.jxdev.com/


    내 LAN 내에 패킷을 원하는 형태로 생성하기 위해서는 http://engagesecurity.com/products/engagepacketbuilder/에 가서 Download로 이동

    ping 옵션
    -i
    -l
    -f

    tracert 옵션

    arp -a  : arp 테이블 보기



    숙제: traceroute 를 그래픽화할시킬수있는 프로그램 가져오기
    (어느위치당 등등등)

    신고
    posted by 몰라용

    와이어 샥 따운로드

    http://www.wireshark.org/

      e-watch lite 다운로드

    http://ewatch.hangkong.ac.kr/

    신고
    posted by 몰라용



    //importation 인터페이스


    public interface Importation {
     public abstract double calculate_traiff();
     

    }

    //Sale 인터페이스

    public interface Sale {
     public abstract double calculate_tax();
    }

    //Car 클래스

    public class Car implements Importation, Sale {
     
     String make;
     String model;
     int year;
     int max_speed;
     float price;
     
     public double getTotalPrice(){
      return (price + calculate_traiff() + calculate_tax());
     }


     public double calculate_traiff() {
      return price*0.1;
     }


     public double calculate_tax() {

      return price*0.3;
     }

    }

    //Clotaes 클래스

    public class Clotaes implements Importation, Sale {
     String make;
     String model;
     float price;


     public double getTotalPrice() {
      return (price + calculate_traiff() + calculate_tax());
     }

     @Override
     public double calculate_traiff() {
      return (price*0.05);
     }
     

     public double calculate_tax(){
      return price*0.2;  
     }

    }

    신고
    posted by 몰라용

    자바 상속부분

    컴퓨터/자바 2009.02.22 18:23

    자바상속부분부터 오랜만에 다시보게되었다.
    중요하게 볼점은 this, super, 기본적인 상속 관계 (extends)다



    // shape 클랙스
    public class Shape {
     private double x,y;
     
     public Shape(double x, double y){
      setX(x);
      setY(y);
      
     }
     
     public double getX(){
      return x;
     }
     
     public void setX(double x){
      this.x = x;
     }
     
     public double getY(){
      return y;
     }
     
     public void setY(double y){
      this.y = y;
     }

    }

    //Circle 클래스

    public class Circle extends Shape {
     private double radius;
     
     public Circle(){
      super(0,0);
     }
     
     public Circle(double radius){
      this(0,0);
      this.setRadius(radius);
     }
     
     public Circle(double x, double y){
      super(x,y);
     }
     
     public void draw(){
      System.out.println("이 다각형은 원 입니다.");
      System.out.println("\t 중심좌표: (" + this.getX() + "," + this.getY() + ")");
      System.out.println("t 반지름: " + this.getRadius() + "\n");  
     }
     
     public double getRadius() {
      return radius;
     }
     
     public void setRadius(double radius){
      this.radius = radius;
     } 
     

    }

    //Polygon 클래스

    public class Polygon {
     public static void main(String[] args){
      
      Circle poly1 = new Circle();
      poly1.draw();
      
      Circle poly2 = new Circle(10, 20);
      poly1.draw();

      Circle poly3 = new Circle(4.5, 7.9);
      poly3.draw();

      Circle poly4 = new Circle(3.5);
      poly4.draw();

     }

    }


    -오늘할일을 내일로 미루지말자..- 이상

    신고
    posted by 몰라용