- 경시대회준비반/BigInteger . . . . 101 matches
* Permission to use, copy, modify, distribute and sell this software
* provided that the above copyright notice appear in all copies and
* representations about the suitability of this software for any
#include <iostream>
#include <cstring>
#include <strstream>
#include <string>
enum BigMathERROR { BigMathMEM = 1 , BigMathOVERFLOW , BigMathUNDERFLOW, BigMathINVALIDINTEGER, BigMathDIVIDEBYZERO,BigMathDomain};
const int BigIntRevision = 25;
void Dump(const char *,enum BigMathERROR);
string& DumpString (char const*,enum BigMathERROR);
// The Size Type
// The Data Type
// The Base Used
// The integer array to hold the number
DATATYPE *TheNumber;
// Start of the location of the number in the array
// End of the location of the number in the array
// True if the number is negative
// Constructor with specified bytes
- MatrixAndQuaternionsFaq . . . . 67 matches
== The Matrix and Quaternions FAQ ==
This FAQ is maintained by "hexapod@netcom.com". Any additional suggestions or related questions are welcome. Just send E-mail to the above address.
Feel free to distribute or copy this FAQ as you please.
Contributions
Introduction I1: steve@mred.bgm.link.com
Q1. What is a matrix?
Q2. What is the order of a matrix?
Q3. How do I represent a matrix using the C/C++ programming languages?
Q4. What are the advantages of using matrices?
Q5. How do matrices relate to coordinate systems?
Q6. What is the identity matrix?
Q7. What is the major diagonal matrix of a matrix?
Q8. What is the transpose of a matrix?
Q9. How do I add two matrices together?
Q10. How do I subtract two matrices?
Q11. How do I multiply two matrices together?
Q12. How do I square or raise a matrix to a power?
Q13. How do I multiply one or more vectors by a matrix?
Q14. What is the determinant of a matrix?
Q15. How do I calculate the determinant of a matrix?
- MoreEffectiveC++/Techniques1of3 . . . . 48 matches
== Item 25: Virtualizing constructors and non-member functions ==
=== Virtual Constructor : 가상 생성자 ===
NewsLetter 객체는 아마 디스크에서 자료를 적재할 것이다. NewsLetter가 디스크에서 자료를 가지고 보여주기 위해 istream을 사용해서 NewsLetter를 구성할 객체들을 생성한다고 가정한다면 다음과 같은 코드들을 대강 만들수 있는데
NewsLetter(istream& str);
NewsLetter::NewsLetter(istream& str)
while(str){
다음에 추가될 인자 객체(component object)를 str로 부터 읽는다.
// 순수히 디스크에 있는 데이터를 읽어 드리는 istream과 자료 str에서
static NLComponent * readComponent(istream& str);
NewsLetter::NewsLetter(istream& str)
while (str) {
components.push_back(readComponent(str));
가상 생성자의 방식의 한 종류로 특별하게 가상 복자 생성자(virtual copy constructor)는 널리 쓰인다. 이 가상 복사 생성자는 새로운 사본의 포인터를 반환하는데 copySlef나 cloneSelf같은 복사의 개념으로 생성자를 구현하는 것이다. 다음 코드에서는 clone의 이름을 쓰였다.
// 가상 복사 생성자 virtual copy constructor 선언
virtual ostream& operator<<(ostream& str) const = 0;
virtual ostream& operator<<(ostream& str) const;
virtual ostream& operator<<(ostream& str) const;
virtual ostream& print(ostream& s) const = 0;
virtual ostream& print(ostream& s) const;
virtual ostream& print(ostream& s) const;
- 몸짱프로젝트/BinarySearchTree . . . . 40 matches
class BinartSearchTree:
return True
return True
if self.search( aRoot, aKey ) == True:
return True
class BinartSearchTreeTestCase(unittest.TestCase):
bst = BinartSearchTree()
bst = BinartSearchTree()
self.assertEquals(bst.search(bst.root, 1), True)
bst = BinartSearchTree()
self.assertEquals(bst.search(bst.root, 1), True)
self.assertEquals(bst.search(bst.root, 5), True)
## bst = BinartSearchTree()
bst = BinartSearchTree()
def testReplace(self):
bst = BinartSearchTree()
bst = BinartSearchTree()
bst = BinartSearchTree()
self.assertEquals(bst.delete(bst.root, 5), True)
self.assertEquals(bst.delete(bst.root, 25), True)
- VonNeumannAirport/1002 . . . . 36 matches
#include <cppunit/Ui/Text/TestRunner.h>
CppUnit::TextUi::TestRunner runner;
이럴 때, traffic 을 구하면 1명이 나온다.
CPPUNIT_ASSERT_EQUAL (1, conf->getTraffic ());
int getTraffic () {
CPPUNIT_ASSERT_EQUAL (1, conf->getTraffic ());
CPPUNIT_ASSERT_EQUAL (2, conf->getTraffic ());
traffic += people;
int getTraffic () {
return traffic;
CPPUNIT_ASSERT_EQUAL (102, conf->getTraffic ());
CPPUNIT_ASSERT_EQUAL (expectedSet[i], conf->getTraffic ());
1->1 로 1명 가기 : traffic 1.
1->1 로 1명 더 가기 : traffic 2.
1->1 로 100명 더 가기 : traffic 102.
1->2 로 1명 가기 : traffic 2.
CPPUNIT_ASSERT_EQUAL(2, conf->getTraffic());
CPPUNIT_ASSERT_EQUAL(2, conf->getTraffic());
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
this->traffic = 0;
- WikiTextFormattingTestPage . . . . 35 matches
This page originated on Wiki:WardsWiki, and the most up-to-date copy resides there. This page has been copied here in order to make a quick visual determination of which TextFormattingRules work for this wiki. Currently it primarily determines how text formatted using the original Wiki:WardsWiki text formatting rules is displayed. See http://www.c2.com/cgi/wiki?WikiOriginalTextFormattingRules.
If you want to see how this text appears in the original Wiki:WardsWiki, see http://www.c2.com/cgi/wiki?WikiEngineReviewTextFormattingTest
People reviewing this wiki from the original Wiki:WardsWiki will be referred to this page. If you want to see the review, go to http://www.c2.com/cgi/wiki?WikiEngineReview.
Other places this page appears (perhaps as an older version):
This page contains sample marked up text to make a quick visual determination as to which Wiki:TextFormattingRules work for a given wiki. To use the page, copy the text from the edit window, and paste it in the wiki under test. Then read it.
And, the next logical thing to do is put a page like this on a public wiki running each Wiki:WikiEngine, and link to it from the appropriate Wiki:WikiReview page, as has been done in some cases -- see above.
The next line (4 dashes) should show up as a horizontal rule. In a few wikis, the width of the rule is controlled by the number of dashes. That will be tested in a later section of this test page.
This first section will test the Wiki:WikiOriginalTextFormattingRules.
If a wiki properly interprets the Wiki:WikiOriginalTextFormattingRules, the text will appear as described here.
The original Wiki:WardsWiki text formatting rules make no provision for headings. They can be simulated by applying emphasis. See the next several lines.
The next phrase, even though enclosed in triple quotes, '''will not display in bold because
I've broken the phrase across a line''' boundary by inserting a <return>.
If I don't break the phrase by inserting a <return>, '''the bold portion can start and end on different lines,''' as this does.
Note that the logic seems to be easily confused. In the next paragraph I combine the two sentences (with no other changes). Notice the results. (The portion between the "innermost" set of triple quotes, and nothing else, is bold.)
The next phrase, even though enclosed in triple quotes, '''will not display in bold because
I've broken the phrase across a line''' boundary by inserting a <return>. If I don't break the phrase by inserting a <return>, '''the bold portion can start and end on different lines,''' as this does.
I don't know if Wiki:WardCunningham considers this the desired behavior.
* Tenth level, preceded by <tab><tab><tab><tab><tab><tab><tab><tab><tab><tab>*<space>, appears indented 40 spaces with a solid square bullet. It is left to the reader to determine whether there is a limit to this progression.
This is another bulleted list, formatted the same way but with shortened lines to display the behavior when nested and when separated by blank lines.
* Top level -- these headings should appear with a blank line between them
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 . . . . 32 matches
Train.java
class Trainer {
private Map<String,Integer> sectionWord;
private boolean isSkipData(String inputStr) {
if(inputStr.length() == 1 || inputStr.equals("http") || inputStr.equals("blog") || inputStr.equals("com") ||
inputStr.equals("naver") || inputStr.equals("empas") || inputStr.equals("daum") || inputStr.equals("yahoo") ||
inputStr.equals("tistory") || inputStr.equals("co") || inputStr.equals("kr") || inputStr.equals("www") || inputStr.equals("ohmynews") ||
inputStr.equals("//") || inputStr.equals("블로그")) {
return true;
public Trainer(File f) {
public void TrainData() {
this.sectionWord = new HashMap<String,Integer>();
try {
String[] a = sectionLearn.nextLine().split("\\s+");
for(String wordTmp:a) {
e.printStackTrace();
public HashMap<String,Integer> getSectionData() {
return (HashMap<String, Integer>) this.sectionWord;
public int getSectionWordNumber(String word) {
private Trainer[] sectionTrain;
- Celfin's ACM training . . . . 26 matches
|| 1 || 1 || 110101/100 || The 3n+1 Problem || . || [3n 1/Celfin] ||
|| 3 || 1 || 110103/10137 || The Trip || . || [The Trip/Celfin] ||
|| 6 || 6 || 110606/10254 || The Priest Mathmatician || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4132&title=ThePriestMathematician/하기웅&login=processing&id=&redirect=yes The Priest Mathmatician/Celfin] ||
|| 8 || 9 || 110908/10276 || Hanoi Tower Troubles Again || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4078&title=HanoiTowerTroublesAgain!/하기웅&login=processing&id=&redirect=yes Hanoi Tower Troubles Again/Celfin] ||
|| 11 || 10 || 111007/10249 || The Grand Dinner || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4188&title=TheGrandDinner/하기웅&login=processing&id=celfin&redirect=yes The Grand Dinner/Celfin] ||
|| 14 || 12 || 111207/10233 || Dermuba Triangle || 3 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4238&title=DermubaTriangle/하기웅&login=processing&id=&redirect=yes Dermuba Triangle/Celfin] ||
|| 16 || 13 || 111303/10195 || The Knights of the Round Table || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4263&title=TheKnightsOfTheRoundTable/하기웅&login=processing&id=&redirect=yes TheKnightsOfTheRoundTable/Celfin] ||
|| 17 || 13 || 111306/10215 || The Largest/Smallest Box || 40 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4264&title=TheLagestSmallestBox/하기웅&login=processing&id=&redirect=yes TheLargestSmallestBox/Celfin] ||
|| 20 || 1 || 110107/10196 || Check the Check || 4 hours || [CheckTheCheck/Celfin] ||
- Slurpys/박응용 . . . . 25 matches
return True
return True
return True
self.assertEquals(True, word.match('DEF'))
self.assertEquals(True, andDE.match('DE'))
self.assertEquals(True, More('F').match('FFFF'))
self.assertEquals(True, And(Word('D'), More('F')).match('DFFF'))
self.assertEquals(True, Or(Word('F'), Word('E')).match('F'))
self.assertEquals(True, Or(Word('F'), Word('E')).match('E'))
self.assertEquals(True,
self.assertEquals(True, Slump().match('DFG'))
self.assertEquals(True, Slump().match('EFG'))
self.assertEquals(True, Slump().match('DFFFFFG'))
self.assertEquals(True, Slump().match('DFDFDFDFG'))
self.assertEquals(True, Slump().match('DFEFFFFFG'))
self.assertEquals(True, Slimp().match('AH'))
self.assertEquals(True, Slimp().match('ABAHC'))
self.assertEquals(True, Slimp().match('ABABAHCC'))
self.assertEquals(True, Slimp().match('ADFGC'))
self.assertEquals(True, Slimp().match('ADFFFFGC'))
- Slurpys/황재선 . . . . 24 matches
def isSlimp(self, aStr):
if not aStr: return False
if aStr[0] != 'A':
if len(aStr) == 2 and aStr[1] == 'H':
return True
if aStr[-1] != 'C': return False
if aStr[0:2] == 'AB' and self.isSlimp(aStr[2:-1]):
return True
if aStr[0] == 'A' and self.isSlump(aStr[1:-1]):
return True
def isSlump(self, aStr):
if aStr[0] == 'D' or aStr[0] == 'E':
if aStr[1] != 'F':
for ch in aStr[1:]:
index = aStr.find(ch,1)
if aStr[index] == 'G':
return True
elif self.isSlump(aStr[index:]):
return True
def isSlurpy(self, aStr):
- 조영준/파스칼삼각형/이전버전 . . . . 24 matches
* PTriangle 클래스를 갈아 엎었습니다.
* PTriangle 클래스만 똑 떼서 파스칼 삼각형을 필요로 하는 다른 프로그램에서 쓸 수 있게 손을 봤습니다.
namespace PascalTriangle
static void Main(string[] args)
string s;
while (true)
try
PTriangle pTriangle = new PTriangle(lines);
Printer printer = new Printer(lines, pTriangle.getMax().ToString().Length+1);
printer.print(pTriangle.Next());
=== PTriangle.cs ===
namespace PascalTriangle
class PTriangle
private int[][] _triangle; //파스칼 삼각형
public int[][] triangle { get { return _triangle; } }
public PTriangle(int row)
_triangle = new int[this._row][];
_triangle[0] = new int[] { 1 };
if (this._row > 1) _triangle[1] = new int[] { 1, 1 };
_triangle[i] = new int[i+1];
- EnglishSpeaking/2011년스터디 . . . . 23 matches
1. The Simpsons (심슨네 가족들)의 한 장면을 역할 분담해서 따라하기.
* [EnglishSpeaking/TheSimpsons]
1. Theme Talking
* There are four members in my family: my father, mother, and a younger brother. Well, actually there are five including our dog. My father was a military officer for twenty years. He recently retired from service and now works in a weaponry company. My mother is a typical housewife. She takes care of me and my brother and keeps our house running well. My brother is attending a university in the U.S.A. He just entered the university as a freshman and is adjusting to the environment. I miss the memory of fighting over things with him. The last member of my family is my dog named Joy. She is a Maltese terrier and my mother named her Joy to bring joy into our family. That's about it for the introduction of my family members.
1. The Simpsons
* [EnglishSpeaking/TheSimpsons/S01E01]
1. Theme Talking
* [김수경] - 오늘 처음으로 심슨 대사를 따라해봤습니다. 지원언니께서 네명이 같이 연습할만한 장면들을 미리 골라두셨는데 막상 오늘 온 사람이 두명이라 다른 장면을 연습했습니다. 40초도 채 안 되는 짧은 대화인데 참 어렵더라구요. 한 문장씩 듣고 따라하고, 받아쓰기도 하고, 외워서 해보는 등 한 장면을 가지고 여러번 연습한 것은 매우 좋았습니다. ''You tell me that all the time.''이나 ''Let me be honest with you.''가 어려운 문장은 아니지만 막상 말하려면 딱 생각이 안 났을 것 같은데 오늘 이후로는 좀 더 유려하게 말할 수 있을 것 같아요. 앞으로 매주 진행하면 이런 표현들이 늘어나겠죠 ㅋㅋㅋ
* [송지원] - 혹시나 했지만 역시나 현지 영어 따라하기는 쉽지 않습니다. 짧은 몇 줄 문장을 외워서 따라하기는 어렵지만 많이 하면 실력이 늘 거라는 생각은 들어요. Free Talking은 제가 하고 싶은 말을 나름 자유롭게 구사해서 만족했는데 Theme Talking에서는 한계를 느끼고 한국어를 섞어서 그 점이 좀 아쉬웠어요. 다음 주에는 The Simpsons.. 정말 4명이 함께 하기를 (온 성의를 다해 대본을 준비하는 만큼;ㅁ;)
1. The Simpsons
* [EnglishSpeaking/TheSimpsons/S01E02]
1. Theme Talking
* [김수경] - 이번주 영상은 문장이 단어 조금 바꾸면 여기저기 가져다 쓸만한 것이 많아 재미있었어요. 가위바위보로 역할을 분담했는데 ''Along with the ego and the superego, one of three components of the psyche.''라는 문장을 외워보고 싶어서 리사를 선택했습니다. 그런데 리사 분량이 제일 적어서 본의아니게(?) 가장 날로먹었네요 ㅋㅋ
1. The Simpsons
* [EnglishSpeaking/TheSimpsons/S01E03]
1. Theme Talking
1. The Simpsons
* [EnglishSpeaking/TheSimpsons/S01E04]
1. Theme Talking
* Theme : 자신의 ''Role Model''.
- 영호의바이러스공부페이지 . . . . 22 matches
Introduction -
get erased so you have a psycological problem with viruses, erase these
001...........................Virus Spotlight, The Tiny virus
Co-Editor, Theory Consultant - Bionic Slasher
The first virus I would like to spotlight is the Tiny virus, lets see
Removal Instructions: Scan/D, F-Prot 1.12+, or Delete infected
The 163 COM Virus, or Tiny Virus, was isolated by Fridrik Skulason
The first time a file infected with the 163 COM Virus is executed,
the virus will attempt to infect the first .COM file in the
be COMMAND.COM. After the first .COM file is infected,each time
an infected program is executed another .COM file will attempt to
be infected. Files are infected only if their original length is
date/time stamps in the directory changed to the date/time the
hex string: '2A2E434F4D00'.
This virus currently does nothing but replicate, and is the
The Tiny Virus may or may not be related to the Tiny Family.
^like she'd know the difference!
OK, Theres the run down on the smallest MS-DOS virus known to man. As for
Here is a dissasembly of the virus, It can be assembled under Turbo Assembler
;attributes
- MoreEffectiveC++/Appendix . . . . 21 matches
So your appetite for information on C++ remains unsated. Fear not, there's more — much more. In the sections that follow, I put forth my recommendations for further reading on C++. It goes without saying that such recommendations are both subjective and selective, but in view of the litigious age in which we live, it's probably a good idea to say it anyway. ¤ MEC++ Rec Reading, P2
There are hundreds — possibly thousands — of books on C++, and new contenders join the fray with great frequency. I haven't seen all these books, much less read them, but my experience has been that while some books are very good, some of them, well, some of them aren't. ¤ MEC++ Rec Reading, P4
What follows is the list of books I find myself consulting when I have questions about software development in C++. Other good books are available, I'm sure, but these are the ones I use, the ones I can truly recommend. ¤ MEC++ Rec Reading, P5
A good place to begin is with the books that describe the language itself. Unless you are crucially dependent on the nuances of the °official standards documents, I suggest you do, too. ¤ MEC++ Rec Reading, P6
* '''''The Annotated C++ Reference Manual''''', Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley, 1990, ISBN 0-201-51459-1. ¤ MEC++ Rec Reading, P7
* '''''The Design and Evolution of C++''''', Bjarne Stroustrup, Addison-Wesley, 1994, ISBN 0-201-54330-3. ¤ MEC++ Rec Reading, P8
These books contain not just a description of what's in the language, they also explain the rationale behind the design decisions — something you won't find in the official standard documents. The Annotated C++ Reference Manual is now incomplete (several language features have been added since it was published — see Item 35) and is in some cases out of date, but it is still the best reference for the core parts of the language, including templates and exceptions. The Design and Evolution of C++ covers most of what's missing in The Annotated C++ Reference Manual; the only thing it lacks is a discussion of the Standard Template Library (again, see Item 35). These books are not tutorials, they're references, but you can't truly understand C++ unless you understand the material in these books
For a more general reference on the language, the standard library, and how to apply it, there is no better place to look than the book by the man responsible for C++ in the first place: ¤ MEC++ Rec Reading, P10
* '''''The C++ Programming Language (Third Edition)''''', Bjarne Stroustrup, Addison-Wesley, 1997, ISBN 0-201-88954-4. ¤ MEC++ Rec Reading, P11
Stroustrup has been intimately involved in the language's design, implementation, application, and standardization since its inception, and he probably knows more about it than anybody else does. His descriptions of language features make for dense reading, but that's primarily because they contain so much information. The chapters on the standard C++ library provide a good introduction to this crucial aspect of modern C++. ¤ MEC++ Rec Reading, P12
If you're ready to move beyond the language itself and are interested in how to apply it effectively, you might consider my other book on the subject: ¤ MEC++ Rec Reading, P13
A book pitched at roughly the same level as my Effective C++ books, but covering different topics, is ¤ MEC++ Rec Reading, P16
* '''''C++ Strategies and Tactics''''', Robert Murray, Addison-Wesley, 1993, ISBN 0-201-56382-7. ¤ MEC++ Rec Reading, P17
Murray's book is especially strong on the fundamentals of template design, a topic to which he devotes two chapters. He also includes a chapter on the important topic of migrating from C development to C++ development. Much of my discussion on reference counting (see Item 29) is based on the ideas in C++ Strategies and Tactics.
If you're the kind of person who likes to learn proper programming technique by reading code, the book for you is ¤ MEC++ Rec Reading, P19
Each chapter in this book starts with some C++ software that has been published as an example of how to do something correctly. Cargill then proceeds to dissect — nay, vivisect — each program, identifying likely trouble spots, poor design choices, brittle implementation decisions, and things that are just plain wrong. He then iteratively rewrites each example to eliminate the weaknesses, and by the time he's done, he's produced code that is more robust, more maintainable, more efficient, and more portable, and it still fulfills the original problem specification. Anybody programming in C++ would do well to heed the lessons of this book, but it is especially important for those involved in code inspections. ¤ MEC++ Rec Reading, P21
One topic Cargill does not discuss in C++ Programming Style is exceptions. He turns his critical eye to this language feature in the following article, however, which demonstrates why writing exception-safe code is more difficult than most programmers realize: ¤ MEC++ Rec Reading, P22
If you are contemplating the use of exceptions, read this article before you proceed. ¤ MEC++ Rec Reading, P24
Once you've mastered the basics of C++ and are ready to start pushing the envelope, you must familiarize yourself with ¤ MEC++ Rec Reading, P25
I generally refer to this as "the LSD book," because it's purple and it will expand your mind. Coplien covers some straightforward material, but his focus is really on showing you how to do things in C++ you're not supposed to be able to do. You want to construct objects on top of one another? He shows you how. You want to bypass strong typing? He gives you a way. You want to add data and functions to classes as your programs are running? He explains how to do it. Most of the time, you'll want to steer clear of the techniques he describes, but sometimes they provide just the solution you need for a tricky problem you're facing. Furthermore, it's illuminating just to see what kinds of things can be done with C++. This book may frighten you, it may dazzle you, but when you've read it, you'll never look at C++ the same way again. ¤ MEC++ Rec Reading, P27
- IndexedTree/권영기 . . . . 20 matches
IndexedTree
#include<iostream>
struct node{
struct Indexed_tree{
Indexed_tree it;
void Init_IndexedTree(node *current, int limit, int *count, int *items){
Init_IndexedTree(current->left, limit, count, items);
Init_IndexedTree(current->right, limit, count, items);
Init_IndexedTree(it.root, level, &it.count, items);
BinaryIndexedTree
#include<iostream>
void init_BinaryIndexedTree(int *tree, int *f, int *n){
tree[idx] += f[i];
int read_BinaryIndexedTree(int *tree, int sp, int ep){
sum1 += tree[temp];
sum2 += tree[temp];
void update_BinaryIndexedTree(int *tree, int address, int item, int *n)
int temp = tree[address] - item;
tree[address] += temp;
int tree[N];
- VonNeumannAirport/인수 . . . . 20 matches
// 끝부분에 소트시키는 부분이 있는데.. 귀찮아서 그냥 map에 때려넣었다. map<int,int> 해서 키값은 traffic양, 값은 테스트번호, 이런식으로 하면 지가 알아서 정렬한다.
//Traffic은 거의 데이타 저장고(data holder)의 역할을 하고 있네요. C의 struct처럼 말이죠.
#include <iostream>
#include <fstream>
class Traffic;
class Traffic
Traffic(int departureGateNum, int arrivalGateNum, int passengerNum)
vector<Traffic> _traffics;
int _totalTraffic;
void addTrafficData(const Traffic& traffic)
_traffics.push_back(traffic);
int getTrafficAmount(const Traffic& traffic) const
return traffic.getPassengerNum();
int getDistance(const Traffic& traffic) const
if( _departureGateNums[i] == traffic.getDepartureGateNum() )
if( _arrivalGateNums[j] == traffic.getArrivalGateNum() )
int getTotalTraffic()
for(int i = 0 ; i < _traffics.size() ; ++i)
total += getDistance(_traffics[i]) * getTrafficAmount(_traffics[i]);
_totalTraffic = total;
- DataCommunicationSummaryProject/Chapter8 . . . . 19 matches
= The Air Link =
* 에어 링크가 동작하기 위해서는 두가지 수신기가 필요한데 사용자에 의해서 작동하는게 MSU(핸드폰) 운영자에 의해서 동작하는게 BTS(Base Transceiver Station) 이다.
* Base Transceiver Stations (BTS)
= Voice Infrastructure =
== Station Controllers ==
* 디지털 핸드폰의 첫번째 단계는 BTS를 BSC(Base Station Controller)에 연결하는 것이다.
=== The Home Location Register(HLR) ===
=== The Visitors' Location Register(VLR) ===
=== The Equipment Identity Register(EIR) ===
=== The Authentication Center(AuC) ===
=== The Messaging Center ===
== Trunking ==
* 초기 핸드폰 네트워크에서 MSC가 그물망처럼 되었는데, 이건 곧 제어하기 힘들게 되었다. 그래서 TSCs(Trunking Switching Centers)가 씌여지게 되었다.
* The Gateway Mobile Switching Center (GMSC)는 스위칭 체계의 최 상위에 있다.
= Data Infrastructure =
== Packet Control ==
* GPRS 네트워크에서 가장 비싼 부분이 Packet Control Unit(PCU)이다. base station은 패킷 데이터를 위해서 이게 있어야 한다.
* Serving GPRS Support Node (SGSN)은 data infrastructure 에서 MSC와 비슷한 것이다.
== The GPRS Backbone ==
== The Gateway Node ==
- SolarSystem/상협 . . . . 19 matches
bool active=TRUE;
bool fullscreen=TRUE;
glMatrixMode(GL_PROJECTION);
// Calculate The Aspect Ratio Of The Window
glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
return TRUE;
glTranslatef(-distance*cosin*cosin,-distance*sin*cosin,0.0f);
glTranslatef(0.0f,0.0f,-22.0f);
glPushMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(distance1,0.0f,0.0f);
glPopMatrix();
glPushMatrix();
glTranslatef(distance2,0,0.0f);
glPopMatrix();
glPushMatrix();
glTranslatef(distance3,0.0f,0.0f);
glPopMatrix();
glPushMatrix();
- SpiralArray/Leonardong . . . . 19 matches
return True
return True
return True
return True
def goStraight(self, direction, board):
self.goStraight( Right(), board )
self.goStraight( Down(), board )
self.goStraight( Left(), board )
self.goStraight( Up(), board )
self.matrix = []
self.matrix.append( [Point((-1,-1),-1)] * size )
for row in self.matrix:
return True
for row in self.matrix:
return self.matrix[row][col]
def construct(self, pointList):
self.matrix[p.coordinate[ROW]][p.coordinate[COL]] = p
for row in self.matrix:
self.assertEquals( True, self.board.isWall( (-1,0) ) )
self.assertEquals( True, self.board.isWall( (0,-1) ) )
- Slurpys/신재동 . . . . 18 matches
def isSlump(self, string):
if((len(string) == 0) or\
(string[0] != 'D' and string[0] != 'E') or\
(string[1] != 'F') or\
(string[len(string) - 1] != 'G')):
for i in range(2, len(string)):
if(string[i] == 'F'):
elif(string[i] == 'G'):
return True
return self.isSlump(string[i:])
def isSlimp(self, string):
if(len(string) == 0 or string[0] != 'A'):
if(len(string) == 2 and string == 'AH'):
return True
elif(len(string) > 2):
if(string[1] == 'B' and string[len(string) - 1] == 'C'):
return self.isSlimp(string[2:len(string)-1])
elif(string[len(string) - 1] == 'C'):
return self.isSlump(string[1:len(string)-1])
def isSlurpy(self, string):
- Trac . . . . 18 matches
http://projects.edgewall.com/trac/
= Trac ? =
Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission; to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies.
Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. A timeline shows all project events in order, making getting an overview of the project and tracking progress very easy.
Trac(트랙) 은 소프트웨어 개발 프로젝트를 위한 위키 이자 이슈 트래킹 시스템이다. Trac은 웹 기반 소프트웨어 프로젝트 관리에 대해서 미니멀리스트적인 접근법을 취한다. 우리의 미션은 개발자들이 위대한 소프트웨어를 작성하는 것을 도우면서도, 그들의 방식에 대해 간섭하지 않는 것이다. Trac은 가능한한 팀에 이미 정착된 개발 프로세스와 정책에 대해서 덜 간섭해야 한다.
Trac 은 SubVersion 에 대한 인터페이스를 제공하며 위키와 통합되어있고 편리한 레포트 기능을 제공해준다.
Trac 은 이슈에 대한 서술과 커밋 메세지에 대해서 위키 태그를 지원하며, 버그,테스크,체인지셋,화일,그리고 위키 페이지들 간에 대해서 seamless 한 참조가 가능하게 해준다. timeline(타임라인)은 모든 프로젝트 이벤트를 순서에 맞게 보여주며, 프로젝트에 대한 오버뷰를 얻는 것과 트래킹 진행을 매우 쉽게 해준다.
http://wiki.kldp.org/wiki.php/trac 트랙 설치방법
http://kldp.net/projects/trac-ko/ - 한글화 프로젝트
http://projects.edgewall.com/trac/wiki/TracTermsKo - Trac 용어에 대한 한글 버전
http://nohmad.sub-port.net/wiki/Trac - nohmad 님의 설명
http://trac.edgewall.org/wiki/TracModPython - Trac을 Apache+mod_Python과 함께 돌리기
== Trac dev 버전을 윈도우에 설치하려면 ==
dev를 위해서는 사실 위의 링크들의 설치 방법은 거의다 쓸모 없다. Trac이 10->11로 넘어가는데 오래 정체되고 있는 이유는 내부를 대폭 개선하고 있기 때문이다. Template engine과 소스 컬러링 엔진을 바꾸었고, 기존의 plugin으로 존재하던 유용한 관리 도구들을 모두 결합하고 있다. 자료 구조도 손보고 있다. NeoCoin이 몇달간 dev버전을 사용해 보면서 별 무리 없이 이용하고 있다.
[http://neocoin.cafe24.com/cs/moin.cgi/Trac 아파치 없이, 설치 방법과 운용 방법]
trac과 subversion 연동된 것을 보고 싶으면 다음 페이지들을 구경해보길.
- MoniWikiPo . . . . 17 matches
msgstr ""
"Last-Translator: Won-kyu Park <wkpark@kldp.org>\n"
"Content-Transfer-Encoding: 8bit\n"
msgstr ""
msgid "Upload new Attachment \"%s\" on the \"%s\""
msgstr ""
msgid "BabelFish Translation"
msgstr ""
msgid "Translate %s to %s"
msgstr "%s에서 %s(으)로 번역하기"
msgstr ""
msgstr "\"%s\"(이)가 갱신되었습니다"
msgstr ""
msgid "Error: No blog entry found!"
msgstr ""
msgstr ""
msgstr ""
msgid "Blog entry added to \"%s\""
msgstr ""
msgstr ""
- TwistingTheTriad . . . . 17 matches
http://www.object-arts.com/Papers/TwistingTheTriad.PDF
http://www.esug.org/summerschools/2000_Southampton/twistingTheTriad/twistingTheTriad.pdf
with a widget-based system it is easy to avoid having to think about the (required) separation between the user interface and the application domain objects, but it is all too easy to allow one's domain code to become inextricably linked with the general interface logic.
it was much more that the widget system was just not flexible enought. We didn't know at the time, but were just starting to realise, that Smalltalk thrives on plugability and the user interface components in out widget framework were just not fine-grained enough.
One example of this deficiency surfaced in SmalltalkWorkspace widget. This was originally designed as a multiline text-editing component with additional logic to handle user interface commands such as Do-it, Show-it, Inspect-it etc. The view itself was a standard Windows text control and we just attached code to it to handle the workspace functionality. However, we soon discovered that we also wanted to have a rich text workspace widget too. Typically the implementation of this would have required the duplication of the workspace logic from the SmalltalkWorkspace component or, at least, an unwarranted refactoring session. It seemed to us that the widget framework could well do with some refactoring itself!
=== ModelViewController ===
In MVC, most of the application functionality must be built into a model class known as an Application Model. It is the reponsibility of the application model to be the mediator between the true domain objects and the views and their controllers. The views are responsible for displaying the domain data while the controller handle the raw usr gestures that will eventually perform action on this data. So the application model typically has method to perform menu command actions, push buttons actions and general validation on the data that it manages. Nearly all of the application logic will reside in the application model classes. However, because the application model's role is that of a go-between, it is at times necessary for it to gain access to the user interface directly but, because of the Observer relationship betweeen it and the view/controller, this sort of access is discouraged.
http://free1002.nameip.net:8080/pyki/upload/MVCTriad.jpg
For example, let's say one wants to explicitly change the colour of one or more views dependent on some conditions in the application model. The correct way to do this in MVC would be to trigger some sort of event, passing the colour along with it. Behaviour would then have to be coded in the view to "hang off" this event and to apply the colour change whenever the event was triggered. This is a rather circuitous route to achieving this simple functionality and typically it would be avoided by taking a shoutcut and using #componentAt : to look up a particular named view from the application model and to apply the colour change to the view directly. However, any direct access of a view like this breaks the MVC dictum that the model should know nothing about the views to which it is connected. If nothing else, this sort of activity surely breaks the possibility of allowing multiple views onto a model, which must be the reason behind using the Observer pattern in MVC in the first place.
- 내가 파악한 MVC 모델은 너무 얕은 지식이였나. 여태껏 그냥 Layer 단으로만 그렇게 나누어진다만 생각했지 해당 이벤트 발생시나 모델의 값 변화시 어떠한 단계로 Control 이 흘러가는지에 대해서는 구체적으로 생각해본 적이 없었던 것 같다. 화살표를 보면 Application Model -> Controller 로의 화살표가 없다. 그리고 Problem Space 의 범위도 차이가 난다.
근데, WEB 에서의 MVC 와 GUI 에서의 MVC 는 그 Control Flow 가 다르긴 할것이다. 웹에서는 View 부분에서 이벤트가 발생하여 이것이 도로 Model 로 올라간다..식이 없기 때문이다. 믿을만한 출처일지는 모르겠지만, 암튼 이를 구분하는 글도 있는듯. http://www.purpletech.com/articles/mvc/mvc-and-beyond.html
=== TwistingTheTriad : ModelViewPresenter ===
http://free1002.nameip.net:8080/pyki/upload/MVPTriad.jpg
This is the data upon which the user interface will operate. It is typically a domain object and the intention is that such objects should have no knowledge of the user interface. Here the M in MVP differs from the M in MVC. As mentioned above, the latter is actually an Application Model, which holds onto aspects of the domain data but also implements the user interface to manupulate it. In MVP, the model is purely a domain object and there is no expectation of (or link to) the user interface at all.
The behaviour of a view in MVP is much the same as in MVC. It is the view's responsibility to display the contents of a model. The model is expected to trigger appropriate change notification whenever its data is modified and these allow the view to "hang off" the model following the standard Observer pattern. In the same way as MVC does, this allows multiple vies to be connected to a single model.
One significant difference in MVP is the removal of the controller. Instead, the view is expected to handle the raw user interface events generated by the operating system (in Windows these come in as WM_xxxx messages) and this way of working fits more naturally into the style of most modern operating systems. In some cases, as a TextView, the user input is handled directly by the view and used to make changes to the model data. However, in most cases the user input events are actually routed via the presenter and it is this which becomes responsible for how the model gets changed.
While it is the view's responsibility to display model data it is the presenter that governs how the model can be manipulated and changed by the user interface. This is where the heart of an application's behaviour resides. In many ways, a MVP presenter is equivalent to the application model in MVC; most of the code dealing with how a user interface works is built into a presenter class. The main difference is that a presenter is ''directly'' linked to its associated view so that the two can closely collaborate in their roles of supplying the user interface for a particular model.
Compared with our orignnal widget framework, MVP offers a much greater separation between the visual presentation of an interface and the code required to implement the interface functionality. The latter resides in one or more presenter classes that are coded as normal using a standard class browser.
- 영호의해킹공부페이지 . . . . 17 matches
about the way the world works-should be unlimited and total.
Always yield to the Hands-On imperative!
3. Mistrust Authority-Promote Decentralization.
4. Hackers should be judged by their hacking, not bogus criteria such
6. Computers can change (your) life for the better.
manner of exploiting daemons - The Buffer Overflow.
The remote buffer overflow is a very commonly found and exploited bug in badly
coded daemons - by overflowing the stack one can cause the software to execute
a shell equal to its current UID - thus if the daemon is run as root, like
A buffer is a block of computer memory that holds many instances of the same
up over the top, or breaking their boundaries.
A stack has the property of a queue of objects being placed one on top of the
other, and the last object placed on the stack will be the first one to be
to the stack (PUSH) and removed (POP). A stack is made up of stack frames,
The stack pointer (SP) always points to the top of the stack, the bottom of it
is static. PUSH and POP operations manipulate the size of the stack
dynamically at run time, and its growth will either be down the memory
addresses, or up them. This means that one could address variables in the
stack by giving their offsets from SP, but as POP's and PUSH's occur these
offsets change around. Another type of pointer points to a fixed location
- DPSCChapter1 . . . . 16 matches
== Introduction ==
Welcome to ''The Design Patterns Smalltalk Companion'' , a companion volume to ''Design Patterns Elements of Reusable Object-Oriented Software'' by Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). While the earlier book was not the first publication on design patterns, it has fostered a minor revolution in the software engineering world.Designers are now speaking in the language of design patterns, and we have seen a proliferation of workshops, publications, and World Wide Web sites concerning design patterns. Design patterns are now a dominant theme in object-oriented programming research and development, and a new design patterns community has emerged.
''The Design Patterns Smalltalk Companion'' 의 세계에 오신걸 환영합니다. 이 책은 ''Design Patterns Elements of Reusable Object-Oriented Software''(이하 DP) Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). 의 편람(companion, 보기에 편리하도록 간명하게 만든 책) 입니다. 앞서 출간된 책(DP)이 디자인 패턴에 관련한 책에 최초의 책은 아니지만, DP는 소프트웨어 엔지니어링의 세계에 작은 혁명을 일으켰습니다. 이제 디자이너들은 디자인 패턴의 언어로 이야기 하며, 우리는 디자인 패턴과 관련한 수많은 workshop, 출판물, 그리고 웹사이트들이 폭팔적으로 늘어나는걸 보아왔습니다. 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지며, 그에 따라 새로운 디자인 패턴 커뮤니티들이 등장하고 있습니다.(emerge 를 come up or out into view 또는 come to light 정도로 해석하는게 맞지 않을까. ''이제 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지고 있으며, 디자인 패턴 커뮤니티들이 새로이 등장하고 있는 추세입니다.'' 그래도 좀 어색하군. -_-; -- 석천 바꿔봤는데 어때? -상민 -- DeleteMe)gogo..~ 나중에 정리시 현재 부연 붙은 글 삭제하던지, 따로 밑에 빼놓도록 합시다.
''Design Patterns'' describes 23 design patterns for applications implemented in an object-oriented programming language. Of course, these 23 patterns do not capture ''all'' the design knowledge an object-oriented designer will ever need. Nonetheless, the patterns from the "Gang of Four"(Gamma et al.) are a well-founded starting point. They are a design-level analog to the base class libraries found in Smalltalk development environments. They do not solve all problems but provide a foundation for learning environments. They do not solve all problems but provide a foundation for learning about design patterns in general and finding specific useful architectures that can be incorporated into the solutions for a wide variety of real-world design problems. They capture an expert level of design knowledge and provide the foundation required for building elegant, maintainable, extensible object-oriented programs.
In the Smalltalk Companion, we do not add to this "base library" of patterns;rather, we present them for the Smalltalk designer and programmer, at times interpreting and expanding on the patterns where this special perspective demands it. Our goal is not to replace Design Patterns; you should read the Smalltalk Companion with Design Patterns, not instead of it. We have tried not to repeat information that is already well documented by the Gang of Four book. Instead, we refer to it requently;you should too.
Another)
Learning an object-oriented language after programming in another paradigm, such as the traditional procedural style, is difficult. Learning to program and compose application in Smalltalk requires a complex set of new skills and new ways of thinking about problems(e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991). Climbing the "Smalltalk Mountain" learning curve is cetainly nontrivial. Once you have reached that plateau where you feel comfortable building simple Smalltalk applications, there is still a significant distance to the expert peak.
Smalltalk experts know many things that novices do not, at various abstraction levels and across a wide spectrum of programming and design knowledge and skills:
* The low-level details of the syntax and semantics of the Smalltalk language
* What is available in the form of classes, methods, and functionality in the existing base class libraries
* How to use the specific tools of the Smalltalk interactive development environment to find and reuse existing functionality for new problems, as well as understanding programs from both static and runtime perspective
* How to define and implement behavior in new classes and where these classes ought to reside in the existing class hierarchy
* Which classes work well together as frameworks
* Recurring patterns of object configurations and interactions and the sorts of problems for which these cooperating objects provide (at least partial) solutions
This is by no means an exhaustive list, and even novices understand and use much of the knowledge. But some items, especially the last -- recurring patterns of software design, or design patterns -- are the province of design expert.
A '''design pattern''' is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. The pattern sometimes describes how methods in a single class or subhierarchy of classes work together; more often, it shows how multiple classes and their instances collaborate. It turns out that particular architectures reappear in different applications and systems to the extent that a generic pattern template emerges, one that experts reapply and customize to new application - and domain-specific problems. Hence, experts know how to apply design patterns to new problems to implement elegant and extensible solutions.
In general, designers -- in numerous domains, not just software -- apply their experience with past problems and solution to new, similar problems. As Duego and Benson(1996) point out, expert designers apply what is known in cognitive psychology and artificial intelligence as '''case-based reasoning''', remembering past cases and applying what they learned there. This is the sort of reasoning that chess masters, doctors, lawyers, and architects empoly to solve new problems. Now, design patterns allow software designers to learn from and apply the experiences of other designers as well. As in other domains, a literature of proven patterns has emerged. As a result, we can "stand on the shoulders of giants" to get us closer to the expert peak. As John Vlissies (1997) asserts, design patterns "capture expertise and make it accessible to non-experts" (p. 32).
디자이너들-소프트웨어에만 국한하지 않은 수많은 분야에서-은 그들의 과거의 문제와, 해법에 경험을 비슷한 문제에 적용 시킨다. '''''Duego와 Genson(1996)은 전문 디자이너들이 사례를 기반으로 경험에서 인지한 지혜안에서 과거의 사례를 기억하고 그들이 배운것을 적용시키는 것에 주목한다. (생략 및 의역) ''''' 이것은 체스의 고수, 의사, 변호사 그리고 건축가들이 새로운 문제에 대응하는 추론 방식의 한 방식이다. 현재, 디자인 패턴은 소프트웨어 디자이너들이 배워온것들과 다른 분야의 디자이너(other designer)들의 경험들 모두를 감안한다. 이런 노력들은 결과적으로, "거인의 어깨에 올라서 있는것" 같은 방법으로 우리를 훌륭한 디자인에 이끌수 있다. John Vlissies(1997)은 디자인 패턴은 "전문 지식을 잡고 비전문가들이 그것을 이용하기 쉽게 해주는 것이라고 평한다. (p. 32).
Design patterns also provide a succinct vocabulary with which to describe new designs and retrospectively explain existing ones. Patterns let us understand a design at a high level before drilling down to focus on details. They allow us to envision entire configurations of objects and classes at a large grain size and communicate these ideas to other designers by name. We can say, "Implement the database access object as a Singleton," rather than, "Let's make sure the database access class has just one instance. The class should include a class variable to keep track of the singl instance. The class should make the instance globally available but control access to it. The class should control when the instance is created and ..." Which would you prefer?
Christopher Alexander and his colleagues have written extensively on the use of design patterns for living and working spaces-homes, buildings, communal areas, towns. Their work is considered the inspiration for the notion of software design patterns. In ''The Timeless Way of Building''(1979) Alexander asserts, "Sometimes there are version of the same pattern, slightly different, in different cultures" (p.276). C++ and Smalltalk are different languages, different environments, different cultures-although the same basic pattern may be viable in both languages, each culture may give rise to different versions.
- SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 16 matches
Back in the days when data was separated from computation, and seldom the twain should meet, encoding decisions were critical. Any encoding decision you made was propagated to many different parts of the computation. If you got the encoding wrong, the cost of change was enormous. The longer it took to find the mistake, the more ridiculous the bill.
과거로 돌아가서 데이타가 연산으로부터 불리되었을 때, 그리고 종종 그 둘이 만나야 했을 때, 인코딩 결정은 중대한 것이었다. 너의 어떠한 인코딩 결정은 연산의 많은 다른 부분들을 점차적으로 증가시켜나아갔다. 만약 잘못된 인코딩을 한다면, 변화의 비용은 막대하다. The longer it took to find the mistake, the more ridiculous the bill.
Objects change all this. How you distribute responsibility among objects is the critical decision, encoding is a distant second. For the most part, in well factored programs, only a single object is interested in a piece of information. That object directly references the information and privately performs all the needed encoding and decoding.
Sometimes, however, information in one object must influence the behavior of another. When the uses of the information are simple, or the possible choices based on the information limited, it is sufficient to send a message to the encoded object. Thus, the fact that boolean values are represented as instances of one of two classes, True and False, is hidden behind the message #ifTrue:ifFalse:.
때때로, 그러나, 한 객체의 정보는 다른 객체의 행위에 영향을 미칠 것이다. 정보의 사용이 단순할 경우, 또는 제한된 정보에 기반해서 선택이 가능할 경우에는 인코딩된 객체에게 메시지를 보내는 것이 충분히 가능하다. 이와 같이, 부울린 값들은 두 클래스의 하나의 인스턴스로 표현되어진다는 사실은, True 그리고 False, 메시지 #ifTrue: ifFalse:. 뒤로 숨겨진다
True>>ifTrue:trueBlock ifFalse:falseBlock
^trueBlock value
False>>ifTrue:trueBlock ifFalse:falseBlock
We could encode boolean values some other way, and as long as we provided the same protocol, no client would be the wiser.
Sets interact with their elements like this. Regardless of how an object is represented, as long it can respond to #=and #hash, it can be put in a Set.
Sometimes, encoding decisions can be hidden behind intermediate objects. And ASCII String encoded as eight-bit bytes hides that fact by conversing with the outside world in terms of Characters:
String>>at: anInteger
When there are many different types of information to be encoded, and the behavior of clients changes based on the information, these simple strategies won't work. The problem is that you don't want each of a hundred clients to explicitly record in a case statement what all the types of information are.
For example, consider a graphical Shape represented by a sequence of line, curve, stroke, and fill commands. Regardless of how the Shape is represented internally, it can provide a message #commandAt: anInteger that returns a Symbol representing the command and #argumentsAt: anInteger that returns an array of arguments. We could use these messages to write a PostScriptShapePrinter that would convert a Shape to PostScript:
command = #line if True:
Every client that wanted to make decisions based on what commands where in a Shape would have to have the same case statement, violating the "once and only once" rule. We need a solution where the case statement is hidden inside of the encoded objects.
* ''Have the client send a message to the encoded object. PAss a parameter to which the encoded object will send decoded messages.''
The simplest example of this is Collection>>do:. By passing a one argument Block(or any other object that responds to #value:), you are assured that the code will work, no matter whether the Collection is encoded as a linear list, an array, a hash table, or a balanced tree.
This is a simplified case of Dispatched Interpretation because there is only a single message coming back. For the most part, there will be several messages. For example, we can use this pattern with the Shape example. Rather than have a case statement for every command, we have a method in PostScriptShapePrinter for every command, For example:
Rather than Shapes providing #commandAt: and #argumentsAt:, they provide #sendCommantAt: anInteger to: anObject, where #lineFrom:to: is one of the messages that could be sent back. Then the original display code could read:
- FortuneCookies . . . . 15 matches
* "It seems strange to meet computer geeks who're still primarily running Windows... as if they were still cooking on a wood stove or something." - mbp
* "Heck, I'm having a hard time imagining the DOM as civilized!" -- Fred L. Drake, Jr.
* Some men are discovered; others are found out.
* He who spends a storm beneath a tree, takes life with a grain of TNT.
* You attempt things that you do not even plan because of your extreme stupidity.
* Take care of the luxuries and the necessities will take care of themselves.
* Words are the voice of the heart.
* Your mind understands what you have been taught; your heart, what is true.
* The universe is laughing behind your back.
* The best prophet of the future is the past.
* Even the boldest zebra fears the hungry lion.
* Money will say more in one moment than the most eloquent lover can in years.
* You will overcome the attacks of jealous associates.
* You have the power to influence all with whom you come in contact.
* You will step on the soil of many countries.
* You are secretive in your dealings but never to the extent of trickery.
* He who invents adages for others to peruse takes along rowboat when going on cruise.
* You are tricky, but never to the point of dishonesty.
* Of all forms of caution, caution in love is the most fatal.
* The person you rejected yesterday could make you happy, if you say yes.
- RSSAndAtomCompared . . . . 15 matches
feed formats. As of mid-2005, the two
The purpose of this page is to summarize, as clearly and simply as possible, the differences between the RSS 2.0 and Atom 1.0 syndication languages.
Toru Marumoto has produced [http://www.witha.jp/Atom/RSS-and-Atom.html a Japanese translation].
The RSS 2.0 specification is copyrighted by Harvard University and is frozen. No significant changes can be made and it is intended that future work be done under a different name; Atom is one example of such work.
The Atom 1.0 specification (in the course of becoming an
IETF standards track RFC) represents the consensus of the
within the [http://www.ietf.org/ IETF], as reviewed and approved by the IETF community and the
[http://www.ietf.org/iesg.html Internet Engineering Steering Group]. The specification is structured in such a way that the IETF could conceivably issue further versions or revisions of this specification without breaking existing deployments, although there is no commitment, nor currently expressed interest, in doing so.
See the Extensibility section below for how each can be extended without changing the specifications themselves.
There are two popular protocols widely used with RSS, [http://www.xmlrpc.com/metaWeblogApi MetaWeblog]
and [http://www.blogger.com/developers/api/ Blogger]. There are frequent
The Atompub working group is in the late stages of developing the
[http://ietfreport.isoc.org/idref/draft-ietf-atompub-protocol/ Atom Publishing Protocol], which is closely integrated with the Atom feed format and is based on the experience with the existing protocols.
RSS 2.0 requires feed-level title, link, and description. RSS 2.0 does not require that any of the fields of individual items in a feed be present.
Atom 1.0 requires that both feeds and entries include a title (which may be empty), a unique identifier, and a last-updated timestamp.
RSS 2.0 may contain either plain text or escaped HTML, with no way to indicate which of the two is provided. Escaped HTML is ugly (for example, the string AT&T would be expressed as “AT&T”) and has been a source of difficulty for implementors. RSS 2.0 cannot contain actual well-formed XML markup, which reduces the re-usability of content.
* plain text, with no markup (the default)
* some other XML vocabulary (There is no guarantee that the recipient will be able to do anything useful with such content)
* a pointer to Web content not included in the feed
RSS 2.0 has a “description” element which is commonly used to contain either the full text of an entry or just a synopsis (sometimes in the same feed), and which sometimes is absent. There is no built-in way to signal whether the contents are complete.
- VonNeumannAirport/Leonardong . . . . 15 matches
Traffic하고 Configuration을 각각 2차원 행렬로 표현했다. Traffic은 ( origin, destination )에 따른 traffic양이고, Configuration은 origin에서 destination 까지 떨어진 거리를 저장한 행렬이다. 전체 트래픽은 행렬에서 같은 위치에 있는 원소끼리 곱하도록 되어있다. 입출력 부분은 제외하고 전체 트래픽 구하는 기능까지만 구현했다.
class Matrix:
self.matrix = []
self.matrix.append([0]*numofGates)
return self.matrix[origin-1][destination-1]
class DistanceMatrix(Matrix):
Matrix.__init__(self, numofGates)
def construct( self, origins, destinations ):
self.matrix[o-1][d-1] = abs( origins.index(o)
class TrafficMatrix(Matrix):
Matrix.__init__(self, numofGates)
def construct( self, origin, traffics ):
for traffic in traffics:
self.matrix[origin-1][traffic.destination-1] = traffic.load
class Traffic:
def total( traffic, distance ):
* traffic.getLoad(origin, dest)
self.distMatrix = DistanceMatrix(MAX)
self.traffic = TrafficMatrix(MAX)
self.distMatrix.construct( origins = range(1,MAX+1),
- [Lovely]boy^_^/EnglishGrammer/Passive . . . . 15 matches
ex) Two hundred people are employed by the company.
B. When we use the passive, who or what causes the action is often unknown or unimportant.(그리니까 행위주체가 누군지 모를때나 별로 안중요할때 수동태 쓴대요)
ex) A lot of money was stolen in the robbery.
If we want to say who does or what causes the action, we use by(수동태에서 누가 했는지 알고 싶으면 by 쓰래요)
ex) This house was built by my grandfather.
active) Somebody will clean the room later.
passive) The room will be cleaned later.
ex) The music was very loud and could be heard from a long way away.
active) Somebody should have cleaned the room.
passive) The room should have been cleaned.
ex) I haven't received the letter yet. It might have been sent to the wrong address.
active) The room looks nice. Somebody has cleaned it.
passive) The room looks nice. It has been cleaned.
active) The room looked nice. Somebody had cleaned it.
passive) The room looked nice. It had been cleaned.
active) Somebody is cleaning the room right now.
passive) The room is being cleaned right now.
active) Somebody was cleaning the room when I arrived.
passive) The room was being cleaned when I arrived.
ex) We gave the police the information. (We gave the information to the police.)
- AutomatedJudgeScript . . . . 14 matches
The answer is: 10
The answer is: 5
The answer is: 10
The answer is: 5
The answer is: 10
The answer is: 5
The answer is: 10
The answer is: 15
The answer is: 10
The answer is: 5
The answer is: 10
The answer is: 5
The judges are mean!
The judges are good!
- MySQL 설치메뉴얼 . . . . 14 matches
A more detailed version of the preceding description for installing a
binary distribution follows:
These commands add the `mysql' group and the `mysql' user. The
different versions of Unix, or they may have different names such
You might want to call the user and group something else instead
of `mysql'. If so, substitute the appropriate name in the
2. Pick the directory under which you want to unpack the distribution
and change location into it. In the following example, we unpack
the distribution under `/usr/local'. (The instructions, therefore,
`/usr/local'. If that directory is protected, you must perform the
3. Obtain a distribution file using the instructions in *Note
getting-mysql::. For a given release, binary distributions for all
platforms are built from the same MySQL source distribution.
4. Unpack the distribution, which creates the installation directory.
Then create a symbolic link to that directory:
The `tar' command creates a directory named `mysql-VERSION-OS'.
The `ln' command makes a symbolic link to that directory. This
lets you refer more easily to the installation directory as
You can replace the first line with the following alternative
command to uncompress and extract the distribution:
- 서지혜/단어장 . . . . 14 matches
명령적인 : 1. imperative programming. 2. We use the Imperative for direct orders and suggestions and also for a variety of other purposes
당황하게 하다 : The thing that baffles me is that the conversations do not center around the adults but almost exclusively about their respective kids
(세금)추가 부담금 : he does not object to paying the levy
음절 : 1. Don't breathe a syllable(word) about it to anyone. 2. He explained it in words of one syllable. 3. He couldn't utter a syllable in reply(그는 끽소리도 못했다)
The wrangler rounded the drove toward the tents.
'''Administration'''
관리직 : administration officer
1. I've decided to study full-time to finish my business administration degree
2. I'm working on a master's degree in business administration.
'''administer (= administrate)'''
관리하다 : The pension funds are administered by commercial banks.
집행하다 : It is no basis on which to administer law and order that people must succumb to the greater threat of force.
무릎을 꿇다 : The town succumbed after a short siege.
포위 작전 : Our army is laying siege to the enemy.
인용 : The forms of citations generally subscribe to one of the generally excepted citations systems, such as Oxford, Harvard, and other citations systems, as their syntactic conventions are widely known and easily interrupted by readers.
The study of history of words, their origins, and how their form and meaning have changed over time.
'''intrinsic'''
본래 갖추어진 (<-> extrinsic)
Density is physical intrinsic property of any physical object, whereas weight is an extrinsic property that varies depending on the strength of the gravitational field in which the respective object is placed.
식별하다 : The computer program was unable to discriminate between letters and numbers.
- MoinMoinFaq . . . . 13 matches
The term ''Wiki'' is a shortened form of Wiki''''''Wiki''''''Web. A Wiki
A Moin''''''Moin is a wiki provided by the python wiki program Moin''''''Moin.
ideas, etc. for people to comment on. Some pages just sit there and
convey information. Other pages are an open invitation for discussion
value derives from the use to which it is put. For instance, a page in
a wiki can serve the same purpose as a discussion thread. You could
Wikis are used internally by the guys who write [http://www.zope.org/ Zope]
to manage their ideas and projects.
=== What are the major features of a Wiki? ===
* ability to see the change history for a document
=== How does this compare to other collaboration tools, like Notes? ===
A Wiki can accomplish certain things very easily, but there are
some things it cannot do. The biggest missing
feature is some kind of access control, to allow only certain groups
'''NO''' security. (That's right!) Because of this, the
possibility exists for accidental or conscious destruction or corruption
of part of all of the wiki.
There are two main ways to devalue a wiki. One is through erasure
and the other is through corruption. Dealing with erasure is not terribly
difficult, because there is a change log (and back versions) of every page
- TheTrip/황재선 . . . . 13 matches
=== TheTrip ===
==== {{{~cpp TheTrip.java}}} ====
import java.io.InputStreamReader;
* TODO To change the template for this generated file go to
public class TheTrip {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
String line = in.readLine();
e.printStackTrace();
private void printResult(ArrayList list) {
static public void main(String [] args) {
while(true) {
TheTrip trip = new TheTrip();
int student = trip.inputStudentNum();
student = trip.inputStudentNum();
if (trip.studentNum == 0) {
trip.printResult(list);
trip.inputMoney();
trip.setAverage();
trip.setMovedMoney();
- UML . . . . 13 matches
In software engineering, Unified Modeling Language (UML) is a non-proprietary, third generation modeling and specification language. However, the use of UML is not restricted to model software. It can be used for modeling hardware (engineering systems) and is commonly used for business process modeling, organizational structure, and systems engineering modeling. The UML is an open method used to specify, visualize, construct, and document the artifacts of an object-oriented software-intensive system under development. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.
This diagram describes the functionality of the (simple) Restaurant System. The Food Critic actor can Eat Food, Pay for Food, or Drink Wine. Only the Chef Actor can Cook Food. Use Cases are represented by ovals and the Actors are represented by stick figures. The box defines the boundaries of the Restaurant System, i.e., the use cases shown are part of the system being modelled, the actors are not.
The OMG defines a graphical notation for [[use case]]s, but it refrains from defining any written format for describing use cases in detail. Many people thus suffer under the misapprehension that a use case is its graphical notation; when in fact, the true value of a use case is the written description of scenarios regarding a business task.
This diagram describes the structure of a simple Restaurant System. UML shows [[Inheritance_(computer_science)|Inheritance]] relationships with a [[triangle]]; and containers with [[rhombus|diamond shape]]. Additionally, the role of the relationship may be specified as well as the cardinality. The Restaurant System has any number of Food dishes(*), with one Kitchen(1), a Dining Area(contains), and any number of staff(*). All of these objects are associated to one Restaurant.
This diagram describes the sequences of messages of the (simple) Restaurant System. This diagram represents a Patron ordering food and wine; drinking wine then eating the food; finally paying for the food. The dotted lines extending downwards indicate the timeline. The arrows represent messages (stimuli) from an actor or object to other objects. For example, the Patron sends message 'pay' to the Cashier. Half arrows indicate asynchronous method calls.
Above is the collaboration diagram of the (simple) Restaurant System. Notice how you can follow the process from object to object, according to the outline below:
A Collaboration diagram models the interactions between objects in terms of sequenced messages. Collaboration diagrams represent a combination of information taken from [[#UML_Class Diagram|Class]], [[#UML_Sequence_Diagram|Sequence]], and [[#UML_Use_Case_Diagram|Use Case Diagrams]] describing both the static structure and dynamic behavior of a system.
Collaboration and sequence diagrams describe similiar information, and as typically implemented, can be transformed into one another without difficulty.
However, collaboration diagrams use the free-form arrangement of objects and links as used in Object diagrams. In order to maintain the ordering of messages in such a free-form diagram, messages are labeled with a chronological number and placed near the link the message is sent over. Reading a Collaboration diagram involves starting at message 1.0, and following the messages from object to object.
In UML 2.0, the Collaboration diagram has been simplified and renamed the Communication diagram.
Activity diagrams represent the business and operational workflows of a system. An Activity diagram is a variation of the state diagram where the "states" represent operations, and the transitions represent the activities that happen when the operation is complete.
This activity diagram shows the actions that take place when completing a (web) form.
The user starts by filling out the form, then it is checked; the result of the check determines if the form has to be filled out again or if the activity is completed.
Deployment diagrams serve to model the hardware used in system implementations and the associations between those components. The elements used in deployment diagrams are nodes (shown as a cube), components (shown as a rectangular box, with two rectangles protruding from the left side) and associations.
This deployment diagram shows the hardware used in a small office network. The application server (node) is connected to the database server (node) and the database client (component) is installed on the application server. The workstation is connected (association) to the application server and to a printer.
Although UML is a widely recognized and used standard, it is criticized for having imprecise semantics, which causes its interpretation to be subjective and therefore difficult for the formal test phase. This means that when using UML, users should provide some form of explanation of their models.
Another problem is that UML doesn't apply well to distributed systems. In such systems, factors such as serialization, message passing and persistence are of great importance. UML lacks the ability to specify such things. For example, it is not possible to specify using UML that an object "lives" in a [[server]] process and that it is shared among various instances of a running [[process]].
At the same time, UML is often considered to have become too bloated, and fine-grained in many aspects. Details which are best captured in source code are attempted to be captured using UML notation. The [[80-20 rule]] can be safely applied to UML: a small part of UML is adequate for most of the modeling needs, while many aspects of UML cater to some specialized or esoteric usages.
(However, the comprehensive scope of UML 2.0 is appropriate for [[model-driven architecture]].)
A third problem which leads to criticism and dissatisfaction is the large-scale adoption of UML by people without the required skills, often when management forces UML upon them.
- 데블스캠프2005/java . . . . 13 matches
The Java platform and language began as an internal project at Sun Microsystems in the December 1990 timeframe. Patrick Naughton, an engineer at Sun, had become increasingly frustrated with the state of Sun's C++ and C APIs and tools. While considering moving to NeXT, Patrick was offered a chance to work on new technology and thus the Stealth Project was started.
The Stealth Project was soon renamed to the Green Project with James Gosling and Mike Sheridan joining Patrick Naughton. They, together with some other engineers, began work in a small office on Sand Hill Road in Menlo Park, California to develop a new technology. The team originally considered C++ as the language to use, but many of them as well as Bill Joy found C++ and the available APIs problematic for several reasons.
Their platform was an embedded platform and had limited resources. Many members found that C++ was too complicated and developers often misused it. They found C++'s lack of garbage collection to also be a problem. Security, distributed programming, and threading support was also required. Finally, they wanted a platform that could be easily ported to all types of devices.
According to the available accounts, Bill Joy had ideas of a new language combining the best of Mesa and C. He proposed, in a paper called Further, to Sun that its engineers should produce an object-oriented environment based on C++. James Gosling's frustrations with C++ began while working on Imagination, an SGML editor. Initially, James attempted to modify and extend C++, which he referred to as C++ ++ -- (which is a play on the name of C++ meaning 'C++ plus some good things, and minus some bad things'), but soon abandoned that in favor of creating an entirely new language, called Oak named after the oak tree that stood just outside his office.
Like many stealth projects working on new technology, the team worked long hours and by the summer of 1992, they were able to demo portions of the new platform including the Green OS, Oak the language, the libraries, and the hardware. Their first attempt focused on building a PDA-like device having a highly graphical interface and a smart agent called Duke to assist the user.
The device was named Star7 after a telephone feature activated by *7 on a telephone keypad. The feature enabled users to answer the telephone anywhere. The PDA device itself was demonstrated on September 3, 1992.
In November of that year, the Green Project was spun off to become a wholly owned subsidiary of Sun Microsystems: FirstPerson, Inc. The team relocated to Palo Alto. The FirstPerson team was interested in building highly interactive devices and when Time Warner issued an RFP for a set-top box, FirstPerson changed their target and responded with a proposal for a set-top box platform. However, the cable industry felt that their platform gave too much control to the user and FirstPerson lost their bid to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. FirstPerson was unable to generate any interest within the cable TV industry for their platform. Following their failures, the company, FirstPerson, was rolled back into Sun.
- 3DGraphicsFoundation/INSU/SolarSystem . . . . 12 matches
static LPCTSTR lpszAppName = "Solar System";
sizeof(PIXELFORMATDESCRIPTOR), // Size of this structure
1, // Version of this structure
// Set the pixel format for the device context
// Calculate aspect ratio of the window
// Set the perspective coordinate system
glMatrixMode(GL_PROJECTION);
// Modelview matrix reset
glMatrixMode(GL_MODELVIEW);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(0.0f, 0.0f, fFar);
glPushMatrix();
glTranslatef(50.0f, 0.0f, 0.0f);
glPopMatrix();
glPushMatrix();
glTranslatef(0.0f, 0.0f, -70.0f);
glPopMatrix();
glPushMatrix();
glTranslatef(0.0f, 0.0f, -90.0f);
- ProjectZephyrus/ClientJourney . . . . 12 matches
* 내가 지난번과 같이 5분 Pair를 원해서 이번에도 5분Play를 했다.. 역시 능률적이다.. 형과 나 둘다 스팀팩먹인 마린같았다.. --;; 단번에 1:1 Dialog창 완성!! 근데 한가지 처리(Focus 관련)를 제대로 못한게 아쉽다.. 레퍼런스를 수없이 뒤져봐도 결국 자바스터디까지 가봤어도 못했다.. 왜 남들은 다 된다고 하는데 이것만 안되는지 모르겠다.. 신피 컴터가 구려서그런거같다.. 어서 1.7G로 바꿔야한다. 오늘 들은 충격적인 말은 창섭이가 주점관계로 거의 못할꺼같다는말이었다.. 그얘긴 소켓을 나도 해야된다는 말인데.... 나에게 더 많은 공부를 하게 해준 창섭이가 정말 고맙다.. 정말 고마워서 눈물이 날지경이다.. ㅠ.ㅠ 덕분에 소켓까지 열심히 해야된다.. 밥먹고와서 한 네트워크부분은 그냥 고개만 끄덕였지 이해가 안갔다.. 그놈에 Try Catch는 맨날 쓴다.. 기본기가 안되있어 할때마다 관련된것만 보니 미치겠다.. 역시 기본기가 충실해야된다. 어서 책을 봐야겠다.. 아웅~ 그럼 인제 클라이언트는 내가 완성하는것인가~~ -_-V (1002형을 Adviser라고 생각할때... ㅡ_ㅡ;;) 암튼 빨리 완성해서 시험해보고싶다.. 3일껀 내가 젤먼저썼다.. 다시한번 -_-V - 영서
* 5분간격으로 Pair Programming을 했다.. 진짜 Pair를 한 기분이 든다.. Test가 아닌 Real Client UI를 만들었는데, 하다보니 Test때 한번씩 다 해본거였다.. 그런데 위와 아래에 1002형이 쓴걸 보니 얼굴이 달아오른다.. --;; 아웅.. 3일전 일을 쓰려니 너무 힘들다.. 일기를 밀려서 쓴기분이다.. 상상해서 막 쓰고싶지만 내감정에 솔직해야겠다.. 그냥 생각나는것만 써야지.. ㅡ.ㅡ++ 확실히 5분간격으로 하니 속도가 배가된 기분이다.. 마약을 한상태에서 코딩을 하는 느낌이었다.. 암튼 혼자서 하면 언제끝날지 알수없고 같이 해도 그거보단 더 걸렸을듯한데, 1시간만에 Login관련 UI를 짰다는게 나로선 신기하다.. 근데 혼자서 나중에 한 Tree만들땐 제대로 못했다.. 아직 낯선듯하다. 나에게 지금 프로젝트는 기초공사가 안된상태에서 바로 1층을 올라가는 그런거같다.. 머리속을 짜내고있는데 생각이 안난다 그만 쓰련다.. ㅡㅡ;; - 영서
''5분 플레이를 시도하려고 할때 학습과 능률 사이를 잘 저울질 할 필요가 있을듯. ["생각을곱하는모임"]의 글에서도 그렇듯, 사람과의 의견교환과 홀로 공부하고 생각하는 것 양자간의 균형을 잡아야겠지. 하지만, 우리가 만나서 플밍할때 해당 라이브러리공부와 플밍을 둘 다 하기엔 시간이 모자르니, 학습부분은 개인적으로 어느정도 해야 겠지. (나도 JTree 보려고 Graphic Java 랑 Core Java, Professional Java 에 있는 JTree 다 읽어보고 집에서 개인적인 예제 코드 작성하고 그랬다. 그정도 했으니까 자네랑 플밍할때 레퍼런스 안뒤져보지. 뭐든지 기본 밑바탕이 되는건 학습량이라 생각. 학습량 * 효율적 방법론 = Output --석천''
(그 이후 창섭이가 와서 영서에게 JTree관련 Solo Programming 을 시켰는데, 말이 안되는 프로그래밍을 했다. -_-; 아직 영서가 Swing 에 익숙하지 않아서 그런데, 앞의 프로그램은 어떻게 만들어졌을까 의문이 들 정도였다; 아마 5분 간격 플밍시에는 서로 앞 사람 소스작성을 한 것을 기준으로 붙여나가는 방식이기에 그 흐름을 잡고 프로그래밍을 해서 Pair 가 성립이 가능했던것 같다는 생각도 해본다. 이는 처음 프로그래밍을 하는 사람과의 PairProgramming 시 궁리해봐야 할 사항인듯)
영서에게 JTree 관련 프로그래밍에 대해서 설명을 했다. JTree와 관련하여 미리 공부하라고 하긴 했는데, 아직은 힘든가 보다. 오늘 작업시간이 5시 30분부터 9시 (저녁 30분가량), 약 3시간 가량이 걸렸던것으로 기억된다. 팀으로 모일 수 있는 시간이 흔하지 않으므로, 각 필요한 부분에 대한 학습과 예제 코드등의 JDK에 대한 SpikeSolution 에 대해서는 집에서 해 봐야 할 것이다. 작업 시간에 학습시간을 같이 할애 하기엔 시간이 그리 넉넉치 않다. [[BR]]
그래도 메신저리스트의 사용자 추가/삭제 부분에 대한 JTree 부분 플밍을 비슷한 수준으로 했다는 것과 CVS 에 add & commit 하는 전체 한 과정을 해본점에서 의의를 두어본다.[[BR]]
DeleteMe) ''참고로 자바에서는 순수한 형태의 MVC 모델을 사용하지 않습니다. 변형된 형태의 MVC 모델을 사용합니다 [http://java.sun.com/products/jfc/tsc/articles/getting_started/getting_started2.html Introducing Swing Architecture]. 이론과 실제의 차이랄까요. --이선우''
''순수한 형태의 MVC 모델을 구경해본적이 없는 관계로;; 저에겐 추상적인 개념일 뿐인지라. 하긴 JTree 에서 TreeModel 부분과 TreeRender & UIManager 부분, JTree 부분에 연결된 리스너와 관련할때 정확히 Control 부분과 UI 부분이 따로 떨어지지 않고 경계가 좀 모호하긴 하다는. --석천''
- TheKnightsOfTheRoundTable . . . . 12 matches
=== TheKnightsOfTheRoundTable ===
{{| The radius of the round table is: r |}}
{{| The radius of the round table is: 2.828 |}}
|| 하기웅 || C++ || 1시간 || [TheKnightsOfTheRoundTable/하기웅] ||
|| 김상섭 || C++ || 엄청 || [TheKnightsOfTheRoundTable/김상섭] ||
|| 문보창 || C++ || 10분 || [TheKnightsOfTheRoundTable/문보창] ||
|| 허준수 || C++|| ? || [TheKnightsOfTheRoundTable/허준수] ||
- 제12회 한국자바개발자 컨퍼런스 후기 . . . . 12 matches
|| 09:30 ~ 10:20 |||||||||||||| Registration ||
|| || Track 1 || Track 2 || Track 3 || Track 4 || Track 5 || Track 6 || Track 7 ||
|| 15:00 ~ 15:50 || 스타트업을위한 Rapid Development (양수열) || 하둡 기반의 규모 확장성있는 트래픽 분석도구 (이연희) || 초보자를 위한 분산 캐시 활용 전략 (강대명) || Venture Capital & Start-up Investment (이종훈-벤처캐피탈협회) || How to deal with eXtream Applications? (최홍식) || SW 융합의 메카 인천에서 놀자! || 섹시한 개발자 되기 2.0 beta (자바카페 커뮤니티) ||
간단하게 점심을 먹고 본인은 첫 세미나로 Track 3에서 한 아키텍트가 알아야 할 12/97가지를 들었다. 그 내용중에서 STAN으로 프로그램의 상태를 보여주는 부분이 인상깊었다. 그렇다고 여기에 너무 민감하게 반응하지는 말라던.. 그리고 그 곳에 심취해 있다고 단순히 신기술이라고 무조건적으로 사용하기 보다는 이런 저런 상황을 고려하라는 것.. 가장 생각나는 것은 문제는 기술의 문제가 아니라 모든 것은 사람에 관한 것이다라는.. 모든 일은 나 자신으로부터 비롯된다라고 생각하고 있었는데 그 부분과 어느정도 상통하는 이야기였던 것 같다.
그 다음으로 Track 5에서 있었던 Java와 Eclipse로 개발하는 클라우드, Windows Azure를 들었다. Microsoft사의 직원이 진행하였는데 표준에 맞추려고 노력한다는 말이 생각난다. 그리고 처음엔 Java를 마소에서 어떻게 활용을 한다는 건지 궁금해서 들은 것도 있다. 이 Windows Azure는 클라우드에서 애플리케이션을 운영하든, 클라우드에서 제공한 서비스를 이용하든지 간에, 애플리케이션을 위한 플랫폼이 필요한데, 애플리케이션 개발자들에게 제공되는 서비스를 위한 클라우드 기술의 집합이라고 한다. 그래서 Large로 갈 수록 램이 15GB인가 그렇고.. 뭐 여하튼.. 이클립스를 이용해 어떻게 사용하는지 간단하게 보여주고 하는 시간이었다.
세 번째로 들은 것이 Track 5의 How to deal with eXtream Application이었는데.. 뭔가 하고 들었는데 들으면서 왠지 컴구 시간에 배운 것이 연상이 되었던 시간이었다. 다만 컴구 시간에 배운 것은 컴퓨터 내부에서 CPU에서 필요한 데이터를 빠르게 가져오는 것이었다면 이것은 서버에서 데이터를 어떻게 저장하고 어떻게 가져오는 것이 안전하고 빠른가에 대하여 이야기 하는 시간이었다.
네 번째 시간으로는 Track 3에서 모바일 웹 개발 플랫폼을 들었는데.. 뭔가 웹에서 사용되는 것은 이러이러한 것이 있습니다라고 50분동안 열거하는 느낌이라 기대보다는 지루했다. -_-a 그래서 사실 기억에 남는 것이 별로 없다..;
마지막으로 Track 4에서 한 반복적인 작업이 싫은 안드로이드 개발자에게라는 것을 들었는데, 안드로이드 프로그래밍이라는 책의 저자인 사람이 안드로이드 개발에 관한 팁이라고 생각하면 될 만한 이야기를 빠르게 진행하였다. UI 매핑이라던지 파라미터 처리라던지 이러한 부분을 RoboGuice나 AndroidAnnotations를 이용해 해결할 수 있는 것을 설명과 동영상으로 잘 설명했다. 준비를 엄청나게 한 모습이 보였다. 이 부분에 대해서는 이 분 블로그인 [http://blog.softwaregeeks.org/ 클릭!] <-여기서 확인해 보시길...
- 토이/삼각형만들기/김남훈 . . . . 12 matches
void forwardTriangle(int num, char * buffer) {
void backwardTriangle(int num, char * buffer) {
int calcBidirTriangleSize(int num) {
return calcBidirTriangleSize(num - 1) + 2;
void bidirTriangle(int num, char * buffer) {
center = calcBidirTriangleSize(num) / 2;
void produceTriangle(int sel, int num) {
forwardTriangle(num, buffer);
backwardTriangle(num, buffer);
buffer = makeBuffer( calcBidirTriangleSize(num) );
bidirTriangle(num, buffer);
produceTriangle(sel, num);
- ACM_ICPC/2012년스터디 . . . . 11 matches
* Binary Indexed Tree
* [IndexedTree/권영기]
* Binary Indexed Tree
=== required data structure ===
(=> 여기서 이진검색트리의 최악의 경우 시간복잡도를 줄이기 위해서 AVL Tree가 구현되어졌는데, 레드블랙트리는 AVL의 일종입니다. 정올 할 때 꼭 배울 필요성은 없습니다..)
- (Binary) Indexed Tree (이건 알아둬야 합니다. 실제로 Binary Indexed Tree는 Binomial에 가깝지만..)
- Interval Tree (이것 또한 Indexed Tree가 이녀석의 역할을 대신할정도로 만능이지만.)
- Matroid Theory (이것도 꼭 알 필요는 없습니다)
- Dijkstra (다익스트라)
강한 연결 성분 (Strongly Connected Components , 줄여서 SCC)
다각형이 시작되는 edge를 만날때 ... indexed tree
* BackTracking 문제(25) - [http://211.228.163.31/30stair/eating_puzzle/eating_puzzle.php?pname=eating_puzzle eating_puzzle], [http://211.228.163.31/30stair/scales/scales.php?pname=scales scales]
* tree 문제(15) - [http://211.228.163.31/30stair/treeornot/treeornot.php?pname=treeornot treeornot]
* Tree 문제(15) - [http://211.228.163.31/30stair/binary_tree/binary_tree.php?pname=binary_tree binary_tree], [http://211.228.163.31/30stair/nca/nca.php?pname=nca nca], [http://211.228.163.31/30stair/treeornot/treeornot.php?pname=treeornot treeornot]
- BabyStepsSafely . . . . 11 matches
Introduction
This article outlines the refactoring of an algorithm that generate the prime numbers up to a user specified maximum. This algorithm is called the Sieve of Eratosthenes. This article demonstrates that the granularity of the changes made to the source code are very small and rely completely on the ability to recompile and test the code after every change no matter how small. The step where the code is tested insures that each step is done safely. It is important to note that the execution of tests do not actually guarantee that the code is correct. The execution of the tests just guarantees that it isn't any worse that it used to db, prior to the change. This is good enough for the purposes of refactoring since we are tring to not damage anything thay may have worked before Therefore for each change in the code we will be recompilling the code and running the tests.
The code that is to be refactored has existed in the system for awhile. It has undergone a couple of transformations. Initially it returned an array of int variables that are the prime numbers. When the new collection library was introduced in Java2 the interface was changed to return a List of Integer objects. Going forward the method that returns a List is the preferred method, so the method that returns an array has been marked as being deprecated for the last couple of releases. During this release the array member function will be removed. Listing1, "Class GeneratePrimes," contains the source code for both methods.
The algorithm is quite simple. Given an array of integers starting at 2.Cross out all multiples of 2. Find the next uncrossed integer, and cross out all of its multiples. Repeat until you have passed the square root of the maximum value. This algorithm is implemented in the method generatePrimes() in Listing1. "Class GeneratePrimes,".
/** @param maxValue is the generation limit.
if(maxValue >= 2) // the only valid case
// initialize array to true.
f[i] = true;
// how many primes are there?
// move the primes into the result
// return the primes
The test cases for the GeneratePrimes class are implemented using the JUnit testing framework. The tests are contained in class called TestGeneratePrames. There are a 5 tests for each return type (array and List), which appear to be similiar. Our first step to insure보증하다, 책임지다 that we are starting from a stable base is to make sure what we have works.
Therefore, recompile the both GeneratePrimes and TestGeneratePrime and run the tests.
public TestGeneratePrimes(String name)
boolean result = true;
if(value == primes[i]) return true;
Our first activity is to refactor the tests. [We might need some justification정당화 for refactoring the tests first, I was thinking that it should tie동여매다 into writing the tests first] The array method is being removed so all the test cases for this method need to be removed as well. Looking at Listing2. "Class TestsGeneratePrimes," it appears that the only difference in the suite of tests is that one tests a List of Integers and the other tests an array of ints. For example, testListPrime and testPrime test the same thing, the only difference is that testListPrime expects a List of Integer objects and testPrime expects and array of int variables. Therefore, we can remove the tests that use the array method and not worry that they are testing something that is different than the List tests.
- EightQueenProblem/밥벌레 . . . . 11 matches
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
function CountRow(row: Integer): Integer;
if Table[i, row] then
while True do
Table[i, row] := True;
if CountRow(row) > 1 then
if Table[column, i] then
if (x > 7) or (y > 7) or (x < 0) or (y < 0) then
if Table[x, y] then
if (x > 7) or (y > 7) or (x < 0) or (y < 0) then
if Table[x, y] then
if CountRow(i) > 1 then
if CountColumn(i) > 1 then
if CountSlash(i) > 1 then
if CountBackSlash(i) > 1 then
Result := True;
r: TRect;
if Table[i, j] then
Table[0, i0] := True;
- EightQueenProblem2Discussion . . . . 11 matches
처음 문제를 해결할 때, 아무 어려움이나 장애도 없었나요? 지금 뒤돌아볼 때에 자신이 거친 과정 중에 "개선되었으면 하는 부분"이 있나요? 만약 이 문제를 다시 처음부터 새로 풀기 시작한다면 역시 똑같은 방식으로 프로그래밍을 할 것 같습니까(see also EightQueenProblemSecondTry)? 조금 더 깔끔하고 쌈박하게 푸는 방법도 있을까요? 어떻게 처음에 접근했더라면 더 "깨끗한" 코드가 나올 수 있었을까요? 비슷한 문제에 직면했을 때 일반적으로 적용할 수 있는 어떤 "추상적 패러다임" 같은 것을 발견할 수 있을까요? 그 코드를 난생 처음 보는 사람이 있다고 했을 때 몇 분만에 그 코드를 이해시킬 수 있겠습니까? 만약 그 사람 혼자 그 코드를 본다면 쉽게 이해할 수 있을까요? 주석이 없이도요? 혹시 코드 내에 중복되는 정보는 없습니까? 본인의 의도가 모두 분명히 드러나고 있습니까? --김창준
이미 알고리즘 수업 시간을 통해 생각해본 문제이기에 주저없이 백트래킹(BackTracking) 기법을 선택해서 슈도코드를 종이에 작성해보았고 그를 바탕으로 구현에 들어갔습니다.(''그냥 호기심에서 질문 하나. 알고리즘 수업에서 백트래킹을 배웠나요? 최근에는 대부분 AI쪽으로 끄집어 내서 가르치는 것이 추세입니다만... 교재가 무엇이었나요? --김창준 Foundations of Algorithms Using C++ Pseudocode, Second Edition 이었습니다. ISBN:0763706205 --이덕준'') 백트래킹은 BruteForce식 알고리즘으로 확장하기에 용이해서 수정엔 그리 많은 시간이 걸리지 않았습니다. 만일 EightQueenProblem에 대한 사전 지식이 없었다면 두번째 과제에서 무척 당황했을것 같습니다. 이번 기회에 코드의 적응도도 중요함을 새삼 확인했습니다. --이덕준
두번째 문제에 답이 있었군요.. 역시 제답이 틀리군요 실패의 원인은 제대된 알고리즘이 없다는 것이라고 생각합니다 BackTracking 알고리즘을 보고 왔지만 이문제에 대한 설명도 보왔습니다. 하지만 알고리즘에 무지해서 그런지 잘 눈에 들어오지 않습니다. 그래도 밤새 풀면서(엉뚱한 답이다도) 오래만에 재밌었습니다. ^^-최광식
''기본적으로 이 문제는 알고리즘을 스스로 고안(invent)해 내는 경험이 중요합니다. BackTracking 알고리즘을 전혀 모르는 사람도 이 문제를 풀 수 있습니다. 아니, 어떻게 접근을 해야 BackTracking을 전혀 모르는 사람도 이 문제를 쉽게 풀 수 있을까 우리는 생각해 보아야 합니다.''
BackTracking 이야기가 나오는데, 대강 수업시간에 들은것이 있었지만 그냥 연습장에 판을 그리고 직접 궁리했고요. 결국은 전체 방법에 대한 비교방법이 되어서 (8단계에 대한 Tree) 최종 구현부분은 BackTracking의 방법이 되어버리긴 했네요. (사전지식에 대해 영향받음은 어쩔수 없겠죠. 아에 접해보지 않은이상은. --;) --석천
하..하하.. BackTracking이.. 뭐죠? 거꾸로.. 추적한다는 이야기같은데.. ㅡㅡa --선호[[BR]][[BR]]
저는 일단 10*10배열을 만들었습니다.(경계선 생각하면 귀찮아지므로..) 그다음에 1~8까지 랜덤한 수를 두번 찾아서 보드의 아무 위치에다 Queen상수를 찍어줍니다. 그리고 그 주변의 8방향을 또 다른 상수 Other로 설정해줍니다. 이제 루프 돌면서 겹치지 않게 골라주면서 Queen으로 설정해주다가 8개가 되면 종료하게.. --인수
학교에서 알고리즘 시간에 너무 많이 놀았기 때문인지.. -_-;; 우리 학교에서는 BackTracking이 AI시간에 배우는 부분이라서 그런지..
BackTracking에 대해 찾아보니 결국 제가 한 방법이 그 방법이군요. 알고리즘자체는 좀 틀리지만 (전 리커시브를 이용...)
- Gof/FactoryMethod . . . . 11 matches
Virtual Constructor ( ["MoreEffectiveC++"] Item 25 참고 )
== Structure ==
A potential disadvantage of factory methods is that clients might have to subclass the Creator class just to create a particular ConcreteProduct object. Subclassing is fine when the client has to subclass the Creator class anyway, but otherwise the client now must deal with another point of evolution.
Here are two additional consequences of the Factory Method pattern:
예를 들어서 sub클래스 MyCreator는 MyProduct와 YouProduct를 바꾸고, 새로운 TheirProduct Sub클래스를 지원할수 있다.
if (id == THEIRS) return new TheirProduct; // 새로운 product 추가
DeleteMe 모호)마지막 부분에서 부모 클래스의 인자를 수행하는 것을 주목해라. MyCreator::Create는 오직 YOURS, MINE, THEIRS를 잡을수 있고, 부모클래스는 잡지 못한다. 다른 클래스는 이를 수행하지 못한다. 그러므로, MyCreator는 생성된 product의 한 종류를 확장하고, 그것은 생성에 대한 책임을 연기한다. 하지만, product가 그것의 부모인것은 적다.
MyCreator::Create handles only YOURS, MINE, and THEIRS differently than the parent class. It isn't interested in other classes. Hence MyCreator extends the kinds of products created, and it defers responsibility for creating all but a few products to its parent.
You can avoid this by being careful to access products solely through accessor operations that create the product on demand. Instead of creating the concrete product in the constructor, the constructor merely initializes it to 0. The accessor returns the product. But first it checks to make sure the product exists, and if it doesn't, the accessor creates it. This technique is sometimes called lazy initialization. The following code shows a typical implementation:
4. Using templates to avoid subclassing. As we've mentioned, another potential problem with factory methods is that they might force you to subclass just to create the appropriate Product objects. Another way to get around this in C++ is to provide a template subclass of Creator that's parameterized by the Product
return new TheProduct;
With this template, the client supplies just the product class?no subclassing of Creator is required.
5. Naming conventions. It's good practice to use naming conventions that make it clear you're using factory methods. For example, the MacApp Macintosh application framework [App89] always declares the abstract operation that defines the factory method as Class* DoMakeClass(), where Class is the Product class.
The function CreateMaze (page 84) builds and returns a maze. One problem with this function is that it hard-codes the classes of maze, rooms, doors, and walls. We'll introduce factory methods to let subclasses choose these components.
First we'll define factory methods in MazeGame for creating the maze, room, wall, and door objects:
Each factory method returns a maze component of a given type. MazeGame provides default implementations that return the simplest kinds of maze, rooms, walls, and doors.
Now we can rewrite CreateMaze to use these factory methods:
Door* theDoor = MakeDoor(r1, r2);
r1->SetSide(East, theDoor);
r2->SetSide(West, theDoor);
- LearningToDrive . . . . 11 matches
I can remeber clearly the day I first began learning to drive. My mother and I were driving up Interstate 5 near Chico, California, a horizon. My mom had me reach over from the passenger seat and hold the steering wheel. She let me get the feel of how motion of the wheel affected the dirction of the car. Then she told me, "Here's how you drive. Line the car up in the middle of the lane, straight toward the horizon."
I very carefully squinted straight down the road. I got the car smack dab in the middle of the lane, pointed right down the middle of the road. I was doing great. My mind wandered a little...
I jerked back to attention as the car hit the gravel. My mom (her courage now amazes me) gently got the car back straight on the road. The she actually taught me about driving. "Driving is not about getting the car goint in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way."
This is the paradigm for XP. There is no such thing as straight and level. Even if things seem to be going perfectly, you don't take your eyes off the road. Change is the only constant. Always be prepared to move a little this way, a little that way. Sometimes maybe you have to move in a completely different direction. That's life as a programmer.
Everythings in software changes. The requirements change. The design changes. The business changes. The technology changes. The team changes. The team members change. The problem isn't change, per se, because change is going to happen; the problem, rather, is the inability to cope with change when it comes.
The driver of a software project is the customer. If the software doesn't do what they want it to do, you have failed. Of course, they don't know exactly what the software should do. That's why software development is like steering, not like getting the car pointed straight down the road. Out job as programmers is to give the customer a steering wheel and give them feedback about exactly where we are on the road.
소프트웨어 개발을 운전을 배우는 것에 비유한 설명이 재미있네요. software project 의 Driver 는 customer 라는 말과.. Programmer 는 customer 에게 운전대를 주고, 그들에게 우리가 정확히 제대로 된 길에 있는지에 대해 feedback 을 주는 직업이라는 말이 인상적이여서. 그리고 customer 와 programmer 와의 의견이 수렴되어가는 과정이 머릿속으로 그려지는 것이 나름대로 인상적인중. 그리고 'Change is the only constant. Always be prepared to move a little this way, a little that way. Sometimes maybe you have to move in a completely different direction. That's life as a programmer.' 부분도.. 아.. 부지런해야 할 프로그래머. --;
["ExtremeProgramming"]
- ReadySet 번역처음화면 . . . . 11 matches
Software development projects require a lot of "paperwork" in the form of requirements documents, design documents, test plans, schedules, checklists, release notes, etc. It seems that everyone creates the documents from a blank page, from the documents used on their last project, or from one of a handful of high-priced proprietary software engineering template libraries. For those of us who start from a blank page, it can be a lot of work and it is easy to forget important parts. That is not a very reliable basis for professional engineering projects.
'''* What is the goal of this project?'''
ReadySET is an open source project to produce and maintain a library of reusable software engineering document templates. These templates provide a ready starting point for the documents used in software development projects. Using good templates can help developers work more quickly, but they also help to prompt discussion and avoid oversights.
'''* What are some key features that define the product?'''
'''*What makes this product different from others?'''
This is an open source project that you are welcome to use for free and help make better. Existing packages of software engineering templates are highly costly and biased by the authorship of only a few people, by vendor-client relationships, or by the set of tools offered by a particular vendor.
These templates are in pure XHTML with CSS, not a proprietary file format. That makes them easier to edit and to track changes using freely available tools and version control systems. The templates are designed to always be used on the web; they use hyperlinks to avoid duplicating information.
The templates are not burdened with information about individual authorship or document change history. It is assumed that professional software developers will keep all project documents in version control systems that provide those capabilities.
These templates are not one-size-fits-all and they do not attempt to provide prescriptive guidance on the overall development process. We are developing a broad library of template modules for many purposes and processes. The templates may be filled out in a suggested sequence or in any sequence that fits your existing process. They may be easily customized with any text or HTML editor.
'''*What is the scope of this project?'''
'''*What are the high-level assumptions or ground rules for the project?'''
I assume that the user takes ultimate responsibility for the content of all their actual project documents. The templates are merely starting points and low-level guidance.
This project does not attempt to provide powerful tools for reorganizing the templates, mapping them to a given software development process, or generating templates from a underlying process model. This project does not include any application code for any tools, users simply use text editors to fill in or customize the templates.
Yes. It is part of the Tigris.org mission of promoting open source software engineering. It is also the first product in a product line that will provide even better support to professional software developers. For more information, see [http://www.readysetpro.com ReadySET Pro] .
'''*What is the status of this project?'''
These templates are based on templates originally used to teach software engineering in a university project course. They are now being enhanced, expanded, and used more widely by professionals in industry.
The template set is fairly complete and ready for use in real projects. You can [http://readyset.tigris.org/servlets/ProjectDocumentList download] recent releases. We welcome your feedback.
For the latest news, see the [http://readyset.tigris.org/servlets/ProjectNewsList Project Announcements].
ReadySET is aimed at software engineers who wish that their projects could go more smoothly and professionally. ReadySET can be used by anyone who is able to use an HTML editor or edit HTML in a text editor.
*2. [http://readyset.tigris.org/servlets/ProjectDocumentList Download] the templates and unarchive
- [Lovely]boy^_^/Diary/2-2-9 . . . . 11 matches
* 신촌 7시 민토신관 컴퓨터고전스터디 The Mythical Man Month Chapter 3&4
* Extreme Bear 스타트!
* ["TheWarOfGenesis2R"] 시작
* TheMythicalManMonth 5,6장 읽었다. 5장은 대충 감은 오는데.. 정확히는 무슨 내용인지 알수가 없다.--; 클났군.. 6장은 피곤해서 조금 읽다 말았다. 낼 일찍 일어나서 읽어야겠다.
* The computer classic study - The Mythical Man Month Chapter 3&4 - meeting is on today P.M. 7 O'clock, at SinChon Min.To.
* I borrow the SmallTalk by Example.
* Extreme Bear Start!
* I borrow the UML for beginner. Translator is Kwak Yong Jae.(His translation is very good)
* I'll never advance arcanoid.--; It's bored. I'll end the refactoring instantly, and do documentaion.
* My arcanoid running is not same any computer. Some computers are running this game very well, others are blinking screen, anothers are not able to move the bar.
* ["TheWarOfGenesis2R"] Start
* If my page is helpful to some person, It's very delightful. I feel that feeling these days.
* I'll delight The AcceleratedC++, that I summary on wiki pages is helpful for beginner of C++.
* I read the TheMythicalManMonth Chapter5,6. I feel chapter5's contents a bit.. I can't know precision contents.--; It's shit.. I read a chapter6 not much, because I'm so tired. I'll get up early tomorrow, and read chapter6.
* The computer classic study - The Mythical Man Month Chapter 5&6 - meeting is on today P.M. 5 O'clock, at SinChon Min.To.
- 몸짱프로젝트/CrossReference . . . . 11 matches
import string
## return True
## elif string.lower(aRoot.getWord()) > aWord and aRoot.left != None:
## elif string.lower(aRoot.getWord()) < aWord and aRoot.right != None:
elif string.lower(aRoot.getWord()) > aWord:
elif string.lower(aRoot.getWord()) < aWord:
'''Twas brilling and the slithy toves did gtre and gimble in the wabe'''
def setRightChild(self, aWord):
print self.getWord() + '\t\t' + str(self.count) + '\t\t' + self.lines
## t.setRightChild('wabe')
## self.assertEqual(c.find(t, 'Twas'), True)
## self.assertEqual(c.find(t, 'brilling'), True)
## self.assertEqual(c.find(t, 'wabe'), True)
## self.assertEqual(c.find(t, 'and'), True)
t.setRightChild('wabe')
* 배열 변수 제거. string과 동적 할당 이용.
#include <fstream>
#include <iostream>
#include <string>
struct Line
- Gof/Facade . . . . 10 matches
예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
* 서브시스템에 계층을 두고 싶을 때. 각 서브시스템 레벨의 entry point를 정의하기 위해 facade를 사용하라. 만일 각 서브시스템들이 서로 의존적이라면 서브시스템들간의 대화를 각 시스템간의 facade로 단일화 시킴으로서 그 의존성을 단순화시킬 수 있다.
서브시스템 클래스를 private 로 만드는 것은 유용하지만, 일부의 OOP Language가 지원한다. C++과 Smalltalk 는 전통적으로 class에 대한 namespace를 global하게 가진다. 하지만 최근에 C++ 표준회의에서 namespace가 추가됨으로서 [Str94], public 서브시스템 클래스를 노출시킬 수 있게 되었다.[Str94] (충돌의 여지를 줄였다는 편이 맞을듯..)
Compiler 서브시스템은 BytecodeStream 클래스를 정의한다. 이 클래스는 Bytecode 객체의 스트림부를 구현한다. Bytecode 객체는 머신코드를 구체화하는 bytecode를 캡슐화한다. 서브시스템은 또한 Token 클래스를 정의하는데, Token 객체는 프로그램 언어내의 token들을 캡슐화한다.
Scanner (istream&);
istream& _inputStream;
Parser 클래스는 Scanner의 token로 parse tree를 구축하기 위해 ProgramNodeBuilder 를 사용한다.
Parser는 점진적으로 parse tree를 만들기 위해 ProgramNodeBuilder 를 호출한다. 이 클래스들은 Builder pattern에 따라 상호작용한다.
virtual ProgramNode* NewRetrunStatement (
ProgramNode* truePart, ProgramNode* falsePart
ProgramNode* GetRootNode ();
parser tree는 StatementNode, ExpressionNode와 같은 ProgramNode의 subclass들의 인스턴스들로 이루어진다. ProgramNode 계층 구조는 Composite Pattern의 예이다. ProgramNode는 program node 와 program node의 children을 조작하기 위한 인터페이스를 정의한다.
virtual void Traverse (CodeGenerator&);
Traverse operaton은 CodeGenerator 객체를 인자로 취한다. ProgramNode subclass들은 BytecodeStream에 있는 Bytecode객체들을 machine code로 변환하기 위해 CodeGenerator 객체를 사용한다. CodeGenerator 클래는 visitor이다. (VisitorPattern을 참조하라)
CodeGenerator (BytecodeStream&);
BytecodeStream& _output;
ProgramNode의 각 subclass들은 ProgramNode의 child인 ProgramNode 객체를 호출하기 위해 Traverse operation을 구현한다. 매번 각 child는 children에게 같은 일을 재귀적으로 수행한다. 예를 들어, ExpressionNode는 Traverse를 다음과 같이 정의한다.
void ExpressionNode::Traverse (CodeGenerator& cg) {
i.CurrentItem ()->Traverse (cg);
virtual void Compile (istream&, BytecodeStream&);
- TheJavaMan . . . . 10 matches
[TheJavaMan/스네이크바이트] - 민수
[TheJavaMan/테트리스] - 수민
[TheJavaMan/지뢰찾기] - 세환
[TheJavaMan/숫자야구] - 휘동, 원명 - 종료
[TheJavaMan/달력] - 세환 - 종료
[TheJavaMan/로보코드] - 참여를 바랍니다.ㅜㅜ
[TheJavaMan/비행기게임] - 휘동, 민수, 원명, 수민, 세환
* [http://java.sun.com/docs/books/tutorial/java/index.html The Java Tutorial]
* [TheJavaMan/설치] - 자바설치랑 Hello출력
- [TheJavaMan/로보코드]로 하면 되지 않을까?ㅋㅋ 로보코드 폐인을 위해 -[Leonardong]
- [Lovely]boy^_^/EnglishGrammer/PresentAndPast . . . . 10 matches
This means) She is driving now, at the time of speaking. The action is not finished.
B. I am doing something = I'm in the middle of doing something; I've started doing it and I haven't finished yet.
Often the action is happening at the time of speaking.
But the action is not necessarily happening at the time of speaking.
ex) I'm reading an interesting book at the moment. I'll lend it to you when I've finished it.
This means) Tom is not reading the book at the time of speaking.
He means that he has started it but has not finished it yet. He is in the middle of reading it.
C. We use the present continuous when we talk about things happening in a period around now. (today / this week / tonight, etc..)
We use the present contunuous when we talk about changes happening now or around now.
ex) The population of the world is rising very fast.
B. We use the simple present to talk about things in general. We use it to say that something happens all the time
or repeateldy or that something is true in general. It is not important whether the action is happening at the time of speaking
In the following examples do is also the main verb( do가 메인 동사로 쓰일때도 있다. )
D. We use the simple present when we say how often we do things ( 빈도를 나타내는 문장을 만들때는 단순 현재를 쓴다. )
ex) In the summer Hohn usually plays tennis once or twice a week.
Note the position of always/never/usually, etc... (before the main verb, after be verb) ( 위치 주의 )
We use the present continuous for something that is happening at or around the time of speaking.
The action is not finished. sometimes, Use the Present continuous for temporary situations.
We use the simple present for things in general or things that happen repeatedly.
Sometimes, Use the simple present for permanent situations.
- DataStructure/Tree . . . . 9 matches
= Tree 기본 개념들 =
= Binary Tree =
= Binray Tree 의 표현 =
= Binary Tree Traversal =
= Binary Search Trees (우리말로 이진 탐색 트리) =
* Binray Search Tree 니까 당연히 Binary Tree 여야 한다.
* Keys in Left Subtree < Keys of Node
* Keys in Right Subtree > Keys of Node(고로 순서대로 정렬되어 있어야 한단 말입니다.)
* if x = Root's Key then 찾았으니까 알고리즘 끝
* else if x > Root's Key Root를 Right Subtree의 Root로 셋팅. 거기서부터 검색 다시 시작
* else if x < Root's Key Root를 Left Subtree의 Root로 셋팅. 거기서부터 검색 다시 시작
* x의 Child가 2개 있을 경우 - 그 노드의 Left Subtree에서 가장 큰 값을 찾는다. 이값을 y라고 하면 y는 오른쪽 Child가 없다. y를 x자리에 갖다 놓고 여기서 다시
= Tree에 관련된 연산 몇가지(Cross Reference 할때 했던거 약간 변형시켰음. C++식으로는 나중에-.-) =
(*node)->Data = new char[strlen(ch) + 1]; // 문자열 길이만큼 할당
strcpy((*node)->Data,ch); // 노드에 문자열 복사
else if(strcmp((*root)->Data,ch)>0) // 부모가 자식보다 크면 왼쪽에 추가
else if(strcmp((*root)->Data,ch)<0) // 부모가 자식보다 작으면 오른쪽에 추가
else if(strcmp((*root)->Data,ch)==0) // 같으면 카운터 증가
["DataStructure"]
- Garbage collector for C and C++ . . . . 9 matches
# This causes the collector to assume that all inaccessible
# Finalization and the test program are not usable in this mode.
# (Clients should also define GC_SOLARIS_THREADS and then include
# Must also define -D_REENTRANT.
# Also requires -D_REENTRANT or -D_POSIX_C_SOURCE=199506L. See README.hp.
# see README.linux. -D_REENTRANT may also be required.
# -DGC_OSF1_THREADS enables support for Tru64 pthreads. Untested.
# -DALL_INTERIOR_POINTERS allows all pointers to the interior
# -DSMALL_CONFIG tries to tune the collector for small heap sizes,
# -DLARGE_CONFIG tunes the collector for unusually large heaps.
# causes all objects to be padded so that pointers just past the end of
# an object can be recognized. This can be expensive. (The padding
# is normally more than one byte due to alignment constraints.)
# -DDONT_ADD_BYTE_AT_END disables the padding.
# the GC process. This is no less correct than many malloc
# -DNO_EXECUTE_PERMISSION may cause some or all of the heap to not
# code from the heap. Currently this only affects the incremental
# -DGC_NO_OPERATOR_NEW_ARRAY declares that the C++ compiler does not support
# the new syntax "operator new[]" for allocating and deleting arrays.
# See gc_cpp.h for details. No effect on the C part of the collector.
- JollyJumpers/황재선 . . . . 9 matches
import java.io.InputStreamReader;
* TODO To change the template for this generated file go to
String message = processKeyInput();
String [] ch = splitMessage(message);
private String[] splitMessage(String message) {
private int[] toInt(String [] ch) {
private String processKeyInput() {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String message = "";
try {
e.printStackTrace();
return true;
private void printResult(Vector v) {
static public void main(String [] args) {
while(true) {
j.printResult(v);
import java.io.InputStreamReader;
import java.util.TreeSet;
* TODO To change the template for this generated file go to
public String inputNum() {
- OurMajorLangIsCAndCPlusPlus/XML/조현태 . . . . 9 matches
#include <string.h>
#define TRUE 1
typedef struct StructReadBlock
struct StructReadBlock** nextBlocks;
const char DEBUG_TEXT[] = "<zeropage>\n <studies>\n <cpp>\n <instructor>이상규</instructor>\n <participants>\n <name>김상섭</name>\n <name>김민경</name>\n <name>송수생</name>\n <name>조현태</name>\n </participants>\n </cpp>\n <java>\n <instructor>이선호</instructor>\n <participants>\n <name>김민경</name>\n <name>송수생</name>\n <name>조현태</name>\n </participants>\n </java>\n <mfc>\n <participants/>\n </mfc>\n </studies>\n</zeropage>\n";
newBlock->name = (char*)malloc(sizeof(char) * (strlen(name) + 1));
strcpy(newBlock->name, name);
newBlock->contents = (char*)malloc(sizeof(char) * (strlen(contents) + 1));
strcpy(newBlock->contents, contents);
const char* CreateTree(SReadBlock* headBlock, const char* readData)
readData = strchr(readData, '>');
const char* nameEndPoint = strchr(readData, '>');
strncpy(textBuffur, readData, nameEndPoint - readData);
if ('/' == myPoint->name[strlen(myPoint->name) - 1])
myPoint->name[strlen(myPoint->name) - 1] = 0;
myPoint->isOneTable = TRUE;
readData = CreateTree(myPoint, nameEndPoint + 1);
readData = CreateTree(myPoint, --readData);
const char* contentsEndPoint = strchr(readData, '<');
strncpy(textBuffur, readData, contentsEndPoint - readData);
- ScheduledWalk/창섭&상규 . . . . 9 matches
* 자취를 남길 수 있다.(BoardArray, TraceCount, LeaveTrace)
* 바퀴벌레의 시작위치를 말해줄 수 있다.(GetRoachStartLocation)
#include <iostream>
#include <cstring>
struct Size
struct Location
Journey(char *str)
Length=strlen(str);
JourneyArray[i]=str[i]-'0';
int TraceCount;
TraceCount = 0;
void LeaveTrace(Location location)
TraceCount++;
return true;
MyBoard->LeaveTrace(startlocation);
MyBoard->LeaveTrace(CurrentLocation);
Location GetRoachStartLocation()
char str[1024];
cin >> str;
return new Journey(str);
- UglyNumbers/남훈 . . . . 9 matches
while True:
return True
while True:
print "The " + `goal` + "(st/nd/th) ugly number is " + `ugly2(goal)`
while True:
return True
while True:
while True:
print "The " + `goal` + "(st/nd/th) ugly number is " + `ugly3(goal)`
- 경시대회준비반 . . . . 9 matches
|| [StringCompression] ||
|| [CompleteTreeLabeling] ||
|| [ThePriestMathematician] ||
|| [HanoiTowerTroublesAgain!] ||
|| [TheGrandDinner] ||
|| [DermubaTriangle] ||
|| [TheKnightsOfTheRoundTable] ||
|| [TheLargestSmallestBox] ||
|| [TreesOnMyIsland] ||
- Gof/Adapter . . . . 8 matches
== Structure ==
(TreeDisplay on: treeRoot)
We'll give a brief sketch of the implementation of class and object adapters for the Motivation example beginning with the classes Shape and TextView.
Shape assumes a bounding box defined by its opposing corners. In contrast, TextView is defined by an origin, height, and width. Shape also defines a CreateManipulator operation for creating a Manipulator object, which knowns how to animate a shape when the user manipulates it. TextView has no equivalent operation. The class TextShape is an adapter between these different interfaces.
A class adapter uses multiple inheritance to adapt interfaces. The key to class dapters is to use one inheritance branch to inherit the interface and another branch to inherit the implementation. The usual way to make this distinction in C++ is to inherit the interface publicly and inherit the implementation privately. We'll use this convention to define the TextShape adapter.
The BoundingBox operation converts TextView's interface to conform to Shape's.
The IsEmpty operations demonstrates the direct forwarding of requests common in adapter implementations:
The object adapter uses object composition to combine classes with different interfaces. In this approach, the adapter TextShape maintains a pointer to TextView.
TextShape must initialize the pointer to the TextView instance, and it does so in the constructor. It must also call operations on its TextView object whenever its own operations are called. In this example, assume that the client creates the TextView object and passes it to the TextShape constructor.
CreateManipulator's implementation doesn't change from the class adapter version, since it's implemented from scratch and doesn't reuse any existing TextView functionality.
Compare this code the class adapter case. The object adapter requires a little more effort to write, but it's more flexible. For example, the object adapter version of TextShape will work equally well with subclasses of TextView -- the client simply passes an instance of a TextView subclass to the TextShape constructor.
- NamedPipe . . . . 8 matches
A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a
named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network.
Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe.
#include <string.h>
VOID GetAnswerToRequest(LPTSTR, LPTSTR, LPDWORD); // 스레드
LPTSTR lpszPipename = "\\.\pipe\mynamedpipe"; // 파이프 이름
// The main loop creates an instance of the named pipe and
// then waits for a client to connect to it. When the client
// with that client, and the loop is repeated.
NULL); // no security attribute
// Wait for the client to connect; if it succeeds, // 클라이언트를 연결을 기다린다.
// the function returns a nonzero value. If the function returns // 접속이 될 경우 0 아닌 값이 리턴 되며
TRUE : (GetLastError() == ERROR_PIPE_CONNECTED);
// 연결이 되서 fConnected값이 TRUE가 되었으므로
NULL, // no security attribute
// The client could not connect, so close the pipe.
// The thread's parameter is a handle to a pipe instance.
// Read client requests from the pipe.
// Write the reply to the pipe.
- OperatingSystemClass/Exam2002_2 . . . . 8 matches
try {
try {
public static void main (String[] args) {
4. Consider a paging system with the page table stored in memory.
* If we add associative registers and 75 percent of all page-table references are found in the associative regsters, what is the effective memory time? (Assume that finding a page-table entry in the associative registers takes zero time, if the entry is there)
5. Consider the following page reference string:
How many page faults would occur for the following replacement algorithm, assuming one, three, five, seven frames? Remember all frames are initially empty, so your first unique pages will all cost one fault each.
6. Consider a file currently consisting of 100 blocks. Assume that the file control block(and the index block, in the case of indexed allocation) is already in memory, Calculate how many disk I/O operations are required for contiguous, linked and indexed (single-level) allocation strategies, if for one block, the following conditions hold. In the contiguous allocation case, assume that there is no room to grow in the beginning, but there is room to grow in the end. Assume that the block information to be added in stored in memory.
* The block is added at the beginning.
* The block is added in the middle.
* The block is added at the end.
* The block is removed from the beginning.
* The block is removed from the middle.
* The block is removed from the end.
7. Suppose that a disk drive has 5000 cylinders, numbered 0 to 4999. The drive is currently serving a request at cylinder 143, and the previous requrest was at cylinder 125. The queue of pending requests, in FIFO order, is
Starting from the current head position, what is the total distance (in cylinders) that the disk arm moves to satisfy all the pending requrests, for each of the following disk scheduling algorithms?
- ReleasePlanning . . . . 8 matches
A release planning meeting is used to create a release plan, which lays out the overall project. The release plan is then used to create iteration plans for each individual iteration.
It is important for technical people to make the technical decisions and business people to make the business decisions. Release planning has a set of rules that allows everyone involved with the project to make their own decisions. The rules define a method to negotiate a schedule everyone can commit to.
The essence of the release planning meeting is for the development team to estimate each user story in terms of ideal programming weeks. An ideal week is how long you imagine it would take to implement that story if you had absolutely nothing else to do.
No dependencies, no extra work, but do include tests. The customer then decides what story is the most important or has the highest priority to be completed.
User stories are printed or written on cards. Together developers and customers move the cards around on a large table to create a set
of stories to be implemented as the first (or next) release. A useable, testable system that makes good business sense delivered early is desired.You may plan by time or by scope. The project velocity is used to determine either how many stories can be implemented before a given date (time) or how long a set of stories will take to finish (scope). When planning by time multiply the number of iterations by the project velocity to determine how many user stories can be completed. When planning by scope divide the total weeks of estimated user stories by the project velocity to determine how many iterations till the release is ready.
Individual iterations are planned in detail just before each iteration begins and not in advance. The release planning meeting was called the planning game and the rules can be found at the Portland Pattern Repository.
When the final release plan is created and is displeasing to management it is tempting to just change the estimates for the user stories. You must not do this. The estimates are valid and will be required as-is during the iteration planning meetings. Underestimating now will cause problems later. Instead negotiate an acceptable release plan. Negotiate until the developers, customers, and managers can all agree to the release plan.
The base philosophy of release planning is that a project may be quantified by four variables; scope, resources, time, and quality. Scope is how much is to be done. Resources are
how many people are available. Time is when the project or release will be done. And quality is how good the software will be and how well tested it will be.
Management can only choose 3 of the 4 project variables to dictate, development always gets the remaining variable. Note that lowering quality less than excellent has unforeseen impact on the other 3. In essence there are only 3 variables that you actually want to change. Also let the developers moderate the customers desire to have the project done immediately by hiring too many people at one time.
- 데블스캠프2005/월요일/BlueDragon . . . . 8 matches
self.aTrasure = Trasure()
if not self.aTrasure.open:
self.aTrasure.open = True
self.aDragon.die = True
self.hasKey = True
class Trasure:
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/변형진 . . . . 8 matches
public static void main(String[] args) throws IOException {
Tester tester = new Tester(new Trainer[] {
new Trainer("package/train/economy/index.economy.db").load(),
new Trainer("package/train/politics/index.politics.db").load() });
try {
for (String line; (line = reader.readLine()) != null;) {
public class Trainer {
private String fileName;
private Map<String, Integer> wordCount = new HashMap<String, Integer>();
public Trainer(String fileName) {
public Trainer load() throws IOException {
try {
for (String line; (line = reader.readLine()) != null;) {
for (String word : line.split("\\s+")) {
public int getWordCount(String word) {
private Trainer[] trainers;
public Tester(Trainer[] trainers) {
this.trainers = trainers;
public double getWeight(int index, String doc) {
for (String word : doc.split("\\s+")) {
- 인수/Smalltalk . . . . 8 matches
[a <= aTo] whileTrue: [
[b <= 9] whileTrue:[
Transcript cr; show: a; show: ' * '; show: b; show: ' = '; show: a*b; printString.
Transcript cr.
numsOfWalked do: [ :val | val = 0 ifTrue: [^false] ].
^true.
newValue := num + 3 atRandom - 2.
newValue = 0 ifTrue: [newValue := 1].
newValue = (1 + size) ifTrue: [newValue := size].
RWRoach>>traverse: aBoard
[ aBoard isAllPut = false. ] whileTrue: [ self moveOne:aBoard. ].}}}
r traverse:b.
- 3N+1Problem/강희경 . . . . 7 matches
def TreeNPlusOne(aNumber):
TreeNPlusOne(aNumber)
def TreeNPlusOne(aNumber, aMin, aMax, aBinaryMap):
def InputRange():
binaryMap[i] = True
cycleLength = TreeNPlusOne(i, aMin, aMax, aBinaryMap)
def OutputResult(aMin, aMax, aMaxCycleLength):
return True
return True
min, max = InputRange()
OutputResult(min, max, FindMaxCycleLength(min, max, binaryMap))
- DesignPatternsAsAPathToConceptualIntegrity . . . . 7 matches
During our discussions about the organization of design patterns there was a comment about the difficulty of identifying the “generative nature” of design patterns. This may be a good property to identify, for if we understood how design patterns are used in the design process, then their organization may not be far behind. Alexander makes a point that the generative nature of design patterns is one of the key benefits. In practice, on the software side, the generative nature seems to have fallen away and the more common approach for using design patterns is characterized as “when faced with problem xyz…the solution is…” One might say in software a more opportunistic application of design patterns is prevalent over a generative use of design patterns.
The source of this difference may be the lack of focus on design patterns in the design process. In fact, we seldom see discussions of the design process associated with design patterns. It is as though design patterns are a tool that is used independent of the process. Let’s investigate this further:
· The existence of an architecture, on top of any object/class design
· The internal regularity (….or conceptual integrity) of the architectural design
This is what Brooks wrote 25 years ago. "… Conceptual integrity is the most important consideration in system design."[Brooks 86] He continues: “The dilemma is a cruel one. For efficiency and conceptual integrity, one prefers a few good minds doing design and construction. Yet for large systems one wants a way to bring considerable manpower to bear, so that the product can make a timely appearance. How can these two needs be reconciled?”
One approach would be to identify and elevate a single overriding quality (such as adaptability or isolation of change) and use that quality as a foundation for the design process. If this overriding quality were one of the goals or even a specific design criteria of the process then perhaps the “many” could produce a timely product with the same conceptual integrity as “a few good minds.” How can this be accomplished and the and at least parts of the “cruel dilemma” resolved?
The following summary is from “Design Patterns as a Litmus Paper to Test the Strength of Object-Oriented Methods” and may provide some insight:
1. Some O-O design methodologies provide a systematic process in the form of axiomatic steps for developing architectures or micro-architectures that are optimality partitioned (modularized) according to a specific design criteria.
2. The following methodologies are listed according to their key design criteria for modularization:
a. Booch in OOSE relies heavily on expert designers and experience to provide the system modularization principle.
b. OMT, Coad-Yourdon, Shaer-Mellor are data driven and as such raise data dependency as the system modularization principle.
c. Wirfs-Brock with Responsibility Driven Design (RDD) raises contract minimization as the system modularization principle.
d. Snoeck with Event Driven Design (EDD) raises existence dependency as the system modularization principle.
3. According to the authors only RDD and EDD have axiomatic rules for OO design and therefore are strong OO design methods.
4. Design patterns provide guidance in designing micro-architectures according to a primary modularization principle: “encapsulate the part that changes.”
5. EDD and RDD will generate different design patterns that meet the primary modularization principle “encapsulate the part that changes.” in different ways when applied according to their axiomatic rules. For example RDD generates Mediator, Command, Template Method and Chain of responsibility (mostly behavior) where as EDD generates Observer, Composite, and Chain of responsibility (mostly structure).
EDO 와 RDD 는 이 1차 원리인 "변화하는 부분에 대해 캡슐화하라"와 그들의 명확한 룰들에 따라 적용될때 다른 방법들로 만나서, 다른 디자인 패턴들을 생성해 낼 것이다. 예를 들면, RDD는 Mediator, Command, TemplateMethod, ChainOfResponsibility (주로 behavior), EDD 는 Observer, Composite, ChainOfResposibility(주로 structure) 를 생성해낼것이다.
Now putting this together with the earlier discussion about conceptual integrity we can propose some questions for discussion:
· Will strong O-O design methods produce results for the “many” with the same conceptual integrity as “a few good minds.”
· Does the product have conceptual integrity?
- ErdosNumbers/임인택 . . . . 7 matches
def extractInfo(lines):
def stripWhiteSpaces(str):
return str.lstrip().rstrip()
def extractNames(str):
parts = str.split(':')
names[i] = stripWhiteSpaces(names[i]+dot)
sNum, nPaper, nPerson = extractInfo(lines)
names = extractNames(lines[i])
erdosNotRelated(allNames, names)
printResults(lines[2+nPaper:], allNames)
def printResults(names, allNames):
name = stripWhiteSpaces(name)
def erdosNotRelated(allNames, names):
def testStripstring(self):
self.assertEqual('aaa', stripWhiteSpaces(' aaa '))
self.assertEqual('bbb', stripWhiteSpaces(' bbb'))
self.assertEqual('ccc', stripWhiteSpaces('ccc '))
sNum, nPaper, nPerson = extractInfo(self.lines)
sNum, nPaper, nPerson = extractInfo(self.lines)
names = extractNames(self.lines[i])
- HowToStudyDesignPatterns . . . . 7 matches
내가 여러분에게 "주석문을 가능하면 쓰지 않는 것이 더 좋다"라는 이야기를 했을 때 이 문장을 하나의 사실로 받아들이고 기억하면 그 시점 당장에는 학습이 일어나지 않는다고 봅니다. 대신 여러분이 차후에 여러가지 경험을 하면서도 이 화두를 놓치지 않고 있다가 어느 순간엔가, "아!!! 그래 주석문을 쓰지 않는게 좋겠구나!!"하고 자각하는 순간, 바로 그 시점에 학습이, 교육이 이뤄지는 것입니다. 이는 기본적으로 컨스트럭티비즘이라고 하는 삐아제와 비곳스키의 철학을 따르는 것이죠. 지식이란 외부에서 입력받는 것이 아니고, 그것에 대한 모델을 학습자 스스로가 내부에서 축조(construct)할 때 획득할 수 있는 것이라는 철학이죠.
''We were not bold enough to say in print that you should avoid putting in patterns until you had enough experience to know you needed them, but we all believed that. I have always thought that patterns should appear later in the life of a program, not in your early versions.''
''The other thing I want to underscore here is how to go about reading Design Patterns, a.k.a. the "GoF" book. Many people feel that to fully grasp its content, they need to read it sequentially. But GoF is really a reference book, not a novel. Imagine trying to learn German by reading a Deutsch-English dictionary cover-to-cover;it just won't work! If you want to master German, you have to immerse yourself in German culture. You have to live German. The same is true of design patterns: you must immerse yourself in software development before you can master them. You have to live the patterns.
Read Design Patterns like a novel if you must, but few people will become fluent that way. Put the patterns to work in the heat of a software development project. Draw on their insights as you encounter real design problems. That’s the most efficient way to make the GoF patterns your own.''
어떤 특정 문장 구조(as much as ...나, no more than ... 같은)를 학습하는데 최선은 그 문장 구조를 이용한 실제 문장을 나에게 의미있는 실 컨텍스트 속에서 많이 접하고 스스로 나름의 모델을 구축(constructivism)하여 교과서의 법칙에 "기쁨에 찬 동의"를 하는 것입니다.
이런 식의 "사례 중심"의 공부를 위해서는 스터디 그룹을 조직하는 것이 좋습니다. 혼자 공부를 하건, 그룹으로 하건 조슈아 커리프스키의 유명한 A Learning Guide To Design Patterns (http://www.industriallogic.com/papers/learning.html'''''')을 꼭 참고하세요. 그리고 스터디 그룹을 효과적으로 꾸려 나가는 데에는 스터디 그룹의 패턴 언어를 서술한 Knowledge Hydrant (http://www.industriallogic.com/papers/khdraft.pdf'''''') 를 참고하면 많은 도움이 될 겁니다 -- 이 문서는 뭐든지 간에 그룹 스터디를 한다면 적용할 수 있습니다.
''...but I always teach Composite Pattern, Strategy Pattern, Template Method Pattern, and Factory Method Pattern before I teach Singleton Pattern. They are much more common, and most people are probably already using the last two. ... ''
1. Design Patterns Explained by Shalloway, and Trott : 최근 DP 개론서로 급부상하고 있는 명저
* GofStructureDiagramConsideredHarmful - 관련 Article.
* 패턴이 어떻게 생성되었는지 그 과정을 보여주지 못한다. 즉, 스스로 패턴을 만들어내는 데에 전혀 도움이 안된다. (NoSmok:LearnHowTheyBecameMasters)
알렉산더가 The Timeless Way of Building의 마지막에서 무슨 말을 하는가요?
||''At this final stage, the patterns are no longer important ... [[BR]][[BR]]The patterns have taught you to be receptive to what is real.''||
- RandomWalk/임인택 . . . . 7 matches
#include <iostream>
int board[40][20]; // maximum size of the board is : 40x20
// prevent the roach moves outside of the board
cout << "input size of the board" << endl;
cout << "size is out of range.\ntry again.";
cout << "point is out of range.\ntry again.";
#include <iostream>
void printOutResult();
cout << "Size of the board : ";
// initizlize the vector
printOutResult();
// prevent the roach moves outside of the board
void printOutResult()
#include <iostream>
void printOutResult();
cout << "Size of the board : ";
printOutResult();
// if the roach moved outside of the board ignore that case.
void printOutResult()
boolean bOnTrip;
- STLErrorDecryptor . . . . 7 matches
Upload:STLTaskFirstRun.gif
#include<string>
string s(10); // 컴파일 에러를 일으키는 문장, 하나의 매개 변수를 받는 string 생성자는 할당자만을 받습니다.
error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &) with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]' : 매개 변수 1을(를) 'int'에서 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc & with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]'(으)로 변환할 수 없습니다.; 원인: 'int'에서 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]'(으)로 변환할 수 없습니다.; 소스 형식을 가져올 수 있는 생성자가 없거나 생성자 오버로드 확인이 모호합니다.
error C2664: 'string::basic_string(alloc &)': 매개 변수 1을(를) 'int'에서 'alloc &'(으)로 변환할 수 없습니다.;원인: 'int'에서 'alloc'(으)로 변환할 수 없습니다.; 소스 형식을 가져올 수 있는 생성자가 없거나 생성자 오버로드 확인이 모호합니다.
- TheJavaMan/스네이크바이트 . . . . 7 matches
public void Trace()
return true;
public static void main(String[] args) throws IOException{
while(true)
tSnake[0].Trace();
tSnake[j].Trace();
String direction= "";
Board(String title){
snake=getToolkit().getImage(getClass().getResource("/images/Snake1.gif"));
apple=getToolkit().getImage(getClass().getResource("/images/apple.gif"));
setVisible(true);
buff=createImage(getWidth(), getHeight());
gb.clearRect(0,0, getWidth(), getHeight());
return true;
public void Move(String direction){
public void Trace()
public static void main(String[] args) throws InterruptedException{
tSnake[0].Trace();
tSnake[j].Trace();
// bo.l1.setText("점수 : " + String.valueOf(v.size()));
- UML/CaseTool . . . . 7 matches
UML Case 툴의 기능은 크게 다음의 3가지로 구분할 수 있다. round-trip 기능은 최근의 case tools의 발전중에 나오는 기능임. 필수적인 기능으로 보이지는 않음.
''Diagramming'' in this context means ''creating'' and ''editing'' UML [[diagram]]s; that is diagrams that follow the graphical notation of the Unified Modeling Language.
The diagramming part of the Unified Modeling Language seems to be a lesser debated part of the UML, compared to code generation.
The UML diagram notation evolved from elderly, previously competing notations. UML diagrams as a means to draw diagrams of - mostly - [[Object-oriented programming|object oriented]] software is less debated among software developers. If developers draw diagrams of object oriented software, there is widespread consensus ''to use the UML notation'' for that task. On the other hand, it is debated, whether those diagrams are needed at all, on what stage(s) of the software development process they should be used and whether and how (if at all) they should be kept up-to date, facing continuously evolving program code.
''[[Code generation]]'' in this context means, that the user creates UML diagrams, which have some connoted model data, from which the UML tool derives (through a conversion process) parts or all of the [[source code]] for the software system that is to be developed. Often, the user can provide some skeleton of the program source code, in the form of a source code [[template]] where predefined tokens are then replaced with program source code parts, emitted by the UML tool during the code generation process.
There is some debate among software developers about how useful code generation as such is. It certainly depends on the specific problem domain and how far code generation should be applied. There are well known areas where code generation is an established practice, not limited to the field of UML. On the other hand, the idea of completely leaving the "code level" and start "programming" on the UML diagram level is quite debated among developers, and at least, not in such widespread use compared to other [[software development]] tools like [[compiler]]s or [[Configuration management|software configuration management systems]]. An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. There are developers that even state that "the Code ''is'' the design" (articles [http://www.developerdotstar.com/mag/articles/reeves_design_main.html] by Jack W. Reeves [http://www.bleading-edge.com/]).
''Reverse engineering'' in this context means, that the UML tool reads program source code as input and ''derives'' model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article "[[Reverse engineering]]").
Reverse engineering encloses the problematic, that diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create some ''random layout'' of the graphical symbols of the UML notation or use some automatic ''layout algorithm'' to place the symbols in a way that the user can understand the diagram. For example, the symbols should be placed at such locations on the drawing pane that they don't overlap. Usually, the user of such a functionality of an UML tool has to manually edit those automatically generated diagrams to attain some meaningfulness. It also often doesn't make sense to draw diagrams of the whole program source, as that represents just too much detail to be of interest at the level of the UML diagrams. There are also language features of some [[programming language]]s, like ''class-'' or ''function templates'' of the programming language [[C plus plus|C++]], which are notoriously hard to convert automatically to UML diagrams in their full complexity.
=== "Round trip" engineering ===
There are UML tools that use the attribute ''round trip'' (sometimes also denoted as ''round trip engineering'') to connote their ability to keep the ''source code'', the ''model data'' and the corresponding ''UML diagrams'' ''in sync''.
This means that the user should be able to change either the ''model data'' (together with the corresponding diagrams) or the ''program source code'' and then the UML tool updates the other part automatically.
Rational Software Architect, Together가 유명하고, 오픈 소스로는 Argo, Violet 이 유명하다.
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원 . . . . 7 matches
* 다른 분들과 달리, 저는 한 글자인 문자와 특수문자를 첫 글자로 포함하는 단어들은 Train Data 및 Test Data 분석에 포함시키지 않았습니다.
=== Train File Analysis ===
import java.util.StringTokenizer;
String filename;
List<String> articles;
public List<String> data;
FileAnalasys(String f){
articles = new ArrayList<String>();
data = new ArrayList<String>();
try{
String line;
String str;
StringTokenizer st = new StringTokenizer(line, " ");
str = st.nextToken();
if(str.length() > 1 && str.charAt(0) != '.' && str.charAt(0) != ','&& str.charAt(0) != '!'&& str.charAt(0) != '"' && str.charAt(0) != ':' && str.charAt(0) != '-' && str.charAt(0) != ';'){
boolean addFlag = true;
if(str.equals(data.get(i))){
data.add(str);
e.printStackTrace();
try {
- 1002/Journal . . . . 6 matches
* 사람수대로 retrofitting 인쇄하기 -> 6부 인쇄하기 - O
* Retrofitting UT 발표준비
~ 11 : 20 retrofitting 인쇄
~ 1 : 06 retrofitting 공부 & 이해
~ 2 : 42 (지하철) retrofitting 읽기 & 이해
읽기 준비 전 Seminar:ThePsychologyOfComputerProgramming 이 어려울 것이라는 생각이 먼저 들어서, 일단 영어에 익숙해져야겠다는 생각이 들어서 Alice in wonderland 의 chapter 3,4 를 들었다. 단어들이 하나하나 들리는 정도. 아직 전체의 문장이 머릿속으로 만들어지진 않는 것 같다. 단어 단위 받아쓰기는 가능하지만, 문장단위 받아쓰기는 힘든중.
* Seminar:ReadershipTraining
* Seminar:ReadershipTraining Afterwords
10 (화): Prometheus 리팩토링 (계속진행중. 일주일째 진행중이던가. -_-a)
http://zeropage.org/~reset/zb/data/prometheus_struct0.jpg
구조를 살피면서 리팩토링, KeywordGenerator 클래스와 HttpSpider 등의 클래스들을 삭제했다. 테스트 96개는 아직 잘 돌아가는중. 리팩토링중 inline class 나 inline method , extract method 나 extract class 를 할때, 일단 해당 소스를 복사해서 새 클래스를 만들거나 메소드를 만들고, 이를 이용한뒤, 기존의 메소드들은 Find Usage 기능을 이용하면서 이용하는 부분이 없을때까지 replace 하는 식으로 했는데, 테스트 코드도 계속 녹색바를 유지하면서, 작은 리듬을 유지할 수 있어서 기분이 좋았다.
http://zeropage.org/~reset/zb/data/promethues_struct.gif
7 (토): Prometheus Test Code 추가 대장정
Prometheus 리팩토링중. 기간을 잡지 않고 하니 엄청나게 늘어지는 것 같다. 다시 할일 목록을 구체적으로 잡고 해야겠다.
기존의 AcceptanceTest 들이 작동을 못한다. (Python 에서 정규표현식 이용. 데이터 파싱 & 추출. Prometheus UI 가 바뀌면 다시 바뀜) 전에 구경한 것처럼 XPath 를 이용하는 방법을 궁리해보거나, Prometheus 쪽에서 XML + XSLT 를 이용하는 방법을 궁리했다. 하지만, 그러기엔 현재 Prometheus 의 JSP 부분을 전부 바꾸는데 부담이 크리라 판단, Servlet Controller 중 Service 클래스 부분에 대해 테스트 코드를 붙이는 방법을 생각해 냈다. 하지만, 막상 작성해보고 나니 그 또한 테스트 코드의 크기가 크긴 하다.
Service 와 Controller 가 거의 Composition 이고, 그로 인해 Controller 는 Mapper, Recommender 들이 줄줄히 의존성을 가졌다. 각각의 Mapper, Recommender 들이 DB 를 쓰므로 이를 Mock Object 를 쓸까 하다가, 어차피 현재 작성하는 부분이 AcceptanceTest 의 일부이므로 실제 객체를 그냥 이용해도 좋겠다고 판단, 그대로 이용하고 작성.
Refactoring Catalog 정독. 왜 리팩토링 책의 절반이 리팩토링의 절차인지에 대해 혼자서 감동중.; 왜 Extract Method 를 할때 '메소드를 새로 만든다' 가 먼저인지. Extract Class 를 할때 '새 클래스를 정의한다'가 먼저인지. (절대로 '소스 일부를 잘라낸다'나 '소스 일부를 comment out 한다' 가 먼저가 아니라는 것.)
ProjectPrometheus Refactoring 궁리하기
그리고, 이전에 ProjectPrometheus 작업할때엔 서블릿 테스팅 방법을 몰랐다. 그래서 지금 ProjectPrometheus 코드를 보면 서블릿 부분에 대해 테스트가 없다. WEB Tier 에 대한 테스팅을 전적으로 AT 에 의존한다. 이번에 기사를 쓸때 마틴 파울러의 글을 인용, "WIMP Application 에 대해서 WIMP 코드를 한줄도 복사하지 않고 Console Application 을 만들수 있어야 한다" 라고 이야기했지만, 이는 WEB 에서도 다를 바가 없다고 생각한다.
2 (월): ProjectPrometheus 소스 리뷰 & 리팩토링. audio book MP3 뜨기
- 5인용C++스터디/키보드및마우스의입출력 . . . . 6 matches
LPSTR lpszClass="Key";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
TranslateMessage(&Message);
PAINTSTRUCT ps;
static char str[256];
len = strlen(str);
str[len]=(TCHAR)wParam;
str[len+1]=0;
TextOut(hdc,100,100,str,strlen(str));
case WM_DESTROY:
소스를 입력한 후 실행해 보자. 키보드에서 키를 누르면 입력한 문자들이 화면 상단에 출력될 것이다.WndProc을 보면 우선 문자열 str이 선언되어 있으며 이 문자열 변수에 사용자가 입력한 문자들을 모은다. 단 이 변수는 WndProc에 선언되어 있는 지역변수이므로 그냥 선언하면 메시지가 발생할 때마다 초기화되기 때문에 static을 붙여 정적변수로 만들어 두어야 한다. 아니면 아예 WinMain 함수 이전에 선언하여 전역 변수로 만들어 두어도 된다.
다음 코드는 wParam으로 전달된 키 코드를 str 문자배열에 저장한다.
len = strlen(str);
str[len]=(TCHAR)wParam;
str[len+1]=0;
문자열의 제일 끝 부분에 wParam값을 써 넣고 바로 뒤쪽의 0을 써 넣어 문자열 끝을 표시한다. 키 입력이 있을 때마다 이 동작을 반복함으로써 str 문자 배열에는 입력된 키 값이 차곡 차곡 쌓여갈 것이다.
키보드 메시지에서는 str배열에 문자열을 집어 넣기만 하며 문자열을 화면으로 출력하는 일은 WM_PAINT에서 맡는다. 단 키보드 메시지에 의해 문자열이 다시 입력되더라도 화면상의 변화는 없으므로 WM_PAINT메시지가 발생하지 않는다. 그래서 강제로 WM_PAINT 메시지를 발생시켜 주어야 하는데 이 때는 InvalidateRect 함수를 호출해 주면 된다. WM_CHAR에서 문자열을 조립한 후 InvalidateRect 함수를 호출해 주어 키보드가 입력될 때마다 화면을 다시 그리도록 하였다.
- ACM_ICPC/2011년스터디 . . . . 6 matches
|| [권순의] || 1298 || The Hardest Problem Ever ||The Easiest Problem Ever -ㅅ- ||
|| [정의정] || 2970 || The lazy programmer ||물론 제가 게으르다는 말은 아닙니다. ||
* [TheHardestProblemEver/권순의]
* PIGS(1149)와 The lazy programmer(2970) 중에서 하나 풀어오기
* 그래서 [정진경]군이 157번[http://koistudy.net/?mid=prob_page&NO=157 The tower of Hanoi]문제를 풀고, 설명한 후 [Mario]문제(선형적인 문제)를 풀게하여 연습을 한 후 다시 파닭문제에 도전하게 되었습니다.
- DebuggingSeminar_2005/AutoExp.dat . . . . 6 matches
; While debugging, Data Tips and items in the Watch and Variable
; windows are automatically expanded to show their most important
; elements. The expansion follows the format given by the rules
; in this file. You can add rules for your types or change the
; For good examples, read the rules in this file.
; To find what the debugger considers the type of a variable to
; be, add it to the Watch window and look at the Type column.
; An AutoExpand rule is a line with the name of a type, an equals
; sign, and text with replaceable parts in angle brackets. The
; part in angle brackets names a member of the type and an
; AutoExpand rules use the following syntax. The equals sign (=),
; type Name of the type (may be followed by <*> for template
; types such as the ATL types listed below).
; text Any text.Usually the name of the member to display,
; or a shorthand name for the member.
; format Watch format specifier. One of the following:
; s Zero-terminated string pVar,s "Hello world"
; su Unicode string pVar,su "Hello world"
; For details of other format specifiers see Help under:
; The special format <,t> specifies the name of the most-derived
- DermubaTriangle . . . . 6 matches
=== About [DermubaTriangle] ===
|| 김상섭 || C++ || 아직 안됨 || [DermubaTriangle/김상섭] ||
|| 허준수 || C++ || ? || [DermubaTriangle/허준수] ||
|| 조현태 || C++ || ? || [DermubaTriangle/조현태] ||
|| 문보창 || C++ || 2시간 || [DermubaTriangle/문보창] ||
|| 하기웅 || C++ || 3시간 || [DermubaTriangle/하기웅] ||
- EffectiveC++ . . . . 6 matches
=== Item 2: Prefer iostream to stdio.h ===
* ''생성자(constructor)와 소멸자(destructor)의 존재를 모른다.''
* ''생성자 및 소멸자와 적절히 상호동작하기 때문에. they are clearly the superior choice.''
=== Item 5: Use the same form in corresponding uses of new and delete ===
string *stringArray = new string[100];
delete stringArray; // delete를 잘못 써주었습니다.
// stringArray에 의해 가르켜진 100개의 string object들중에 99개는 제대로 제거가 안됨.
typedef string AddressLines[4]; // 개인 주소는 4개의 줄을 차지하고
string *pal = new AddressLines; // "new AddressLines" returns a string *, just "new string[4]"..
=== Item 6: Use delete on pointer members in destructors ===
동적 메모리 할당을 행하는 클래스들은 메모리를 할당하기 위해서 생성자에 new를 쓴다. (CString class같은것들?)[[BR]]
* ''Initialization of the pointer in each of the constructors. If no memory is to be allocated to the pointer in a particular constructor, the pointer should be initialized to 0 (i.e., the null pointer). - 생성자 각각에서 포인터 초기화''
* ''Deletion of the existing memory and assignment of new memory in the assignment operator. - 포인터 멤버에 다시 메모리를 할당할 경우 기존의 메모리 해제와 새로운 메모리의 할당''
* ''Deletion of the pointer in the destructor. - 소멸자에서 포인터 삭제''
try { // attempt
string *ps = new string; // if memory allocation
// fails, call the global
// (if there is one)
X::set_new_handler(0); // set the X-specific
// immediately. (There is
- ErdosNumbers/황재선 . . . . 6 matches
import java.util.TreeMap;
private TreeMap<String, String> tm;
private ArrayList<String> nameList;
tm = new TreeMap<String, String>();
public String readLine() {
return sc.next().trim();
private String[] extractNames(String line) {
String[] divide = line.split(":");
String[] peopleName = divide[0].split(",");
peopleName[i] = peopleName[i].trim();
String[] people = new String[peopleName.length/2];
private void setErdosNumber(String[] people) {
for(String name : people) {
withErdos(people);
nameList = new ArrayList<String>();
for(String name : people) {
joint = true;
private void withErdos(String[] people) {
for(String name : people) {
private void withCoWorker(String[] people) {
- Gof/Composite . . . . 6 matches
CompositePattern의 핵심은 기본요소들과 기본요소들의 컨테이너를 둘 다 표현하는 추상 클래스에 있다. 그래픽 시스템에서 여기 Graphic class를 예로 들 수 있겠다. Graphic 은 Draw 와 같은 그래픽 객체들을 구체화하는 명령들을 선언한다. 또한 Graphic 은 Graphic 의 자식클래스들 (tree 구조에서의 parent-child 관계)에 대해 접근하고 관리하는 명령들과 같은 모든 composite 객체들이 공유하는 명령어들을 선언한다.
== Structure ==
A typical Composite object structure might look like this:
* 기본 객체들과 복합 객체들로 구성된 클래스 계층 구조를 정의한다. (상속관계가 아님. 여기서는 일종의 data-structure의 관점) 기본 객체들은 더 복잡한 객체들을 구성할 수 있고, 계속적이고 재귀적으로 조합될 수 있다. 클라이언트 코드가 기본 객체를 원할때 어디서든지 복합 객체를 취할 수 있다.
cout << "The net price is " << chassis->NetPrice () << endl;
CompositePattern의 예는 거의 모든 객체지향 시스템에서 찾을 수 있다. Smalltalk 의 Model/View/Container [KP88] 의 original View 클래스는 Composite이며, ET++ (VObjects [WGM88]) 이나 InterViews (Styles [LCI+92], Graphics [VL88], Glyphs [CL90])등 거의 대부분의 유저 인터페이스 툴킷과 프레임워크가 해당 과정을 따른다. Model/View/Controller 의 original View에서 주목할만한 점은 subview 의 집합을 가진다는 것이다. 다시 말하면, View는 Component class 이자 Composite class 이다. Smalltalk-80 의 Release 4.0 은 View 와 CompositeView 의 서브클래스를 가지는 VisualComponent 클래스로 Model/View/Controller 를 변경했다.
RTL Smalltalk 컴파일러 프레임워크 [JML92] 는 CompositePattern을 널리 사용한다. RTLExpression 은 parse tree를 위한 Component 클래스이다. RTLExpression 은 BinaryExpression 과 같은 서브클래스를 가지는데, 이는 RTLExpression 객체들을 자식으로 포함한다. 이 클래스들은 parse tree를 위해 composite 구조를 정의한다. RegisterTransfer 는 프로그램의 Single Static Assignment(SSA) 형태의 중간물을 위한 Component 클래스이다. RegisterTransfer 의 Leaf 서브클래스들은 다음과 같은 다른 형태의 static assignment 를 정의한다.
Another subclass, RegisterTransferSet, is a Composite class for representing assignments that change several registers at once.
또 다른 서브클래스로서 RegisterTransferSet이 있다. RegisterTransferSet 는 한번에 여러 register를 변경하는 assignment를 표현하기 위한 Composite 클래스이다.
Another example of this pattern occurs in the financial domain, where a portfolio aggregates individual assets. You can support complex aggregations of assets by implementing a portfolio as a Composite that conforms to the interface of an individual asset [BE93].
* FlyweightPattern lets you share components, but they can no longer refer to their parents.
- HanoiTowerTroublesAgain! . . . . 6 matches
=== About [HanoiTowerTroublesAgain!] ===
|| 문보창 || C++ || 10분 || [HanoiTowerTroublesAgain!/문보창] ||
|| 황재선 || Java || 50분 || [HanoiTowerTroublesAgain!/황재선] ||
|| 하기웅 || C++ || 원랜 1시간, 문보창 XXX 때문에 말렸음ㅡㅡ; || [HanoiTowerTroublesAgain!/하기웅] ||
|| 이도현 || C++ || Closed Form 구하는 데(1시간 30분), 코딩 5분 || [HanoiTowerTroublesAgain!/이도현] ||
|| [조현태] || C++ || ? || [HanoiTowerTroublesAgain!/조현태] ||
- LawOfDemeter . . . . 6 matches
within our class can we just starting sending commands and queries to any other object in the system will-
nilly? Well, you could, but that would be a bad idea, according to the Law of Demeter. The Law of Demeter
tries to restrict class interaction in order to minimize coupling among classes. (For a good discussion on
What that means is that the more objects you talk to, the more you run the risk of getting broken when one
of them changes. So not only do you want to say as little as possible, you don't want to talk to more
objects than you need to either. In fact, according to the Law of Demeter for Methods, any method of an
any parameters that were passed in to the method.
Specifically missing from this list is methods belonging to objects that were returned from some other
This is what we are trying to prevent. (We also have an example of Asking instead of Telling in foo.getKey
()). Direct access of a child like this extends coupling from the caller farther than it needs to be. The
caller is depending on these facts:
Now the caller is only depending on the fact that it can add a foo to thingy, which sounds high level
The disadvantage, of course, is that you end up writing many small wrapper methods that do very little but
delegate container traversal and such. The cost tradeoff is between that inefficiency and higher class
The higher the degree of coupling between classes, the higher the odds that any change you make will break
Depending on your application, the development and maintenance costs of high class coupling may easily
Now back to to the ask vs. tell thing. To ask is a query, to tell is a command. I subscribe to the notion
of maintaining these as separate methods. Why bother?
It helps to maintain the "Tell, Don't Ask" principle if you think in terms of commands that perform a very
tossing data out, you probably aren't thinking much in the way of invariants).
- PNGFileFormat/FormatUnitTestInPythonLanguage . . . . 6 matches
self.assertEqual(True, bitDepth in [1,2,4,8,16])
self.assertEqual(True, colorType in [0,2,3,4,6])
while True:
def testRGB(self):
self.assertTrue(len(rgbmap)>0)
self.assertTrue(rgbmap[j][i].compare(im.getpixel((i,j)) ) )
while True:
def makeScanline(self, basepixel, ypos, stream, rgbmap): # method 는 PNG filter type, stream은 zlib 으로 decomposite된 값들
method = ord(stream[idx])
return self.makeScanlineBySub(basepixel, ypos, stream)
return self.makeScanlineByUp(basepixel, ypos, stream, rgbmap)
return self.makeScanlineByAverage(basepixel, ypos, stream, rgbmap)
return self.makeScanlineByPaeth(basepixel, ypos, stream, rgbmap)
def makeScanlineBySub(self, basepixel, ypos, stream):
filteredR = ord(stream[idx])
filteredG = ord(stream[idx+1])
filteredB = ord(stream[idx+2])
def makeScanlineByUp(self, basepixel, ypos, stream, rgbmap):
filteredR = ord(stream[idx])
filteredG = ord(stream[idx+1])
- PyUnit . . . . 6 matches
widget = Widget("The widget")
self.widget = Widget("The widget")
class WidgetResizeTestCase(SimpleWidgetTestCase):
self.widget = Widget ("The widget")
self.widget = Widget ("The widget")
def testResize (self):
인스턴스를 생성할때 우리는 그 테스트 인스턴스가 수행할 테스트 메소드를 구체적으로 명시해주어야 한다. 이 일은 constructor에 메소드 이름을 적어주면 된다.
resizeTestCase = WidgetTestCase ("testResize")
widgetTestSuite.addTest (WidgetTestCase ("testResize"))
suite.addTest (WidgetTestCase ("testResize"))
unittest.TestSuite.__init__(self, map(WdigetTestCase, "testDefaultSize", "testResize")))
suite1 = module1.TheTestSuite ()
suite2 = module2.TheTestSuite ()
PyUnit test framework는 테스트를 수행하기 위해 'TestRunner' 클래스를 사용한다. 가장 일반적인 TestRunner는 TextTestRunner이다.
runner = unittest.TextTestRunner ()
기본적으로 TextTestRunner는 sys.stderr에 출력한다. TextTestrunner 같은 클래스는 Python interpreter session과 상호작용하면서 test들을 실행시켜볼 수 있는 이상적인 방법이다.
if not hasattr(something, "blah"):
try:
["UnitTest"], ["ExtremeProgramming"]
- ZP도서관 . . . . 6 matches
|| Essential System Administration || AEeen Frisch ||O'Reilly || ["혀뉘"], ["ddori"] || 원서 ||
|| Swing || Matthew Robinson, Pavel Vorobiev || Manning || ["혀뉘"] || 원서 ||
|| The C Programming Language 2nd Ed. || Kernighan, Ritchie || Prentice Hall || ["zennith"] || 원서 ||
|| The Standard ANSI C Library || . || . || ["혀뉘"],["nautes"]|| 원서 ||
|| Understanding The Linux || Bovet&Cesati ||.|| ["fnwinter"] || 원서(비쌈)||
|| The Blue Day Book || 브래들리 트레버 그리브 || 물푸 || 교양 ||
|| C언어 프로그래밍(원서명: The C Programming Language) || Brian W.Kernighan, Dennis M.Ritchie || Prentice-Hall || 도서관 소장(대영사 번역판본) || 프로그래밍언어 ||
|| The Art of Assembly 2nd Edition || Randall Hyde || Not printed yet || http://webster.cs.ucr.edu/ || 프로그래밍언어 ||
|| ExtremeProgramming Installed || Ron Jeffries, Ann Anderson, Chet Hendrickson || Addison-Wesley || 도서관 소장 || 개발방법론 ||
- [Lovely]boy^_^/영작교정 . . . . 6 matches
* [[HTML(<STRIKE>)]] He is appointed a most prestigious duty in the University. [[HTML(</STRIKE>)]]
* He was appointed to the most prestigious duty in the University.
* [[HTML(<STRIKE>)]] David revelas his powerful ability of language.[[HTML(</STRIKE>)]]
* [[HTML(<STRIKE>)]] Developing Countrys strive for technical and economical advancement for years. [[HTML(</STRIKE>)]]
* Developing countries have striven for technological and economical advancement for years.
* [[HTML(<STRIKE>)]] Do you foresee that new system has some problems?[[HTML(</STRIKE>)]]
* Do you foresee some problems in the new system?
* The detective uncovered so many new proofs.
* [[HTML(<STRIKE>)]] It is impossible to ascertain that who was here until last.[[HTML(</STRIKE>)]]
* [[HTML(<STRIKE>)]] The train conveied us to arrival point. [[HTML(</STRIKE>)]]
* The train conveyed us to the arrival point.
* [[HTML(<STRIKE>)]] We must curb the far right's effect power.[[HTML(</STRIKE>)]]
* We must curb the far right's power.
* [[HTML(<STRIKE>)]] He will terminate the argument at there.[[HTML(</STRIKE>)]]
* He will terminate the argument there.
* [[HTML(<STRIKE>)]] I was obliged to leave after such a unpleasantly battle.[[HTML(</STRIKE>)]]
* [[HTML(<STRIKE>)]] It is refreshing that meet with man has same thinking.[[HTML(</STRIKE>)]]
* It is refreshing to meet with a man who has the same thingking.
* [[HTML(<STRIKE>)]] I am reluctant that involved a happening.[[HTML(</STRIKE>)]]
* I am reluctant in getting involved in the event.
- eXtensibleStylesheetLanguageTransformations . . . . 6 matches
= eXtensible Stylesheet Language Transformations =
Extensible Stylesheet Language Transformations, or XSLT, is an XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized (output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into web pages or PDF documents.
XSLT was produced as a result of the Extensible Stylesheet Language (XSL) development effort within W3C during 1998–1999, which also produced XSL Formatting Objects (XSL-FO) and the XML Path Language, XPath. The editor of the first version (and in effect the chief designer of the language) was James Clark. The version most widely used today is XSLT 1.0, which was published as a Recommendation by the W3C on 16 November 1999. A greatly expanded version 2.0, under the editorship of Michael Kay, reached the status of a Candidate Recommendation from W3C on 3 November 2005.
- 데블스캠프2006/목요일/winapi . . . . 6 matches
PSTR szCmdLine, int iCmdShow)
PSTR szCmdLine, int iCmdShow)
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
"The Hello Program", // window caption
TranslateMessage (&msg) ;
PAINTSTRUCT ps ;
GetClientRect (hwnd, &rect) ;
case WM_DESTROY:
PSTR szCmdLine, int iCmdShow)
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
"The Hello Program", // window caption
TranslateMessage (&msg) ;
PAINTSTRUCT ps ;
GetClientRect (hwnd, &rect) ;
case WM_DESTROY:
PSTR szCmdLine, int iCmdShow)
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현 . . . . 6 matches
* train 데이터를 읽어들여서 일단 문자열과 빈도수를 csv 파일로 저장. 이를 Analyze 클래스에서 csv 파일을 읽어들여 test 데이터를 판별.
import java.io.FileInputStream;
import java.io.InputStreamReader;
public FileData(String filename) throws FileNotFoundException, UnsupportedEncodingException {
scan = new Scanner(new InputStreamReader(new FileInputStream(filename),"UTF-8"));
public String next() { return scan.next(); }
public String nextLine() { return scan.nextLine(); }
=== Train File Analysis ===
import java.io.FileOutputStream;
import java.util.StringTokenizer;
public static HashMap<String, Int2> words = new HashMap<String, Int2>();
public static void main(String[] args) {
try {
FileData politics = new FileData("train/politics/index.politics.db");
FileData economy = new FileData("train/economy/index.economy.db");
String article = politics.nextLine();
StringTokenizer st = new StringTokenizer(article, " \t\n\r\f\'\"");
String word = st.nextToken();
ArrayList<String> wordsInArticle = new ArrayList<String>();
String article = economy.nextLine();
- 신기호/중대생rpg(ver1.0) . . . . 6 matches
#include <string.h>
#define MAX_STRING 100
typedef struct{
char name[MAX_STRING];
typedef struct{
char name[MAX_STRING];
char tooltip[MAX_STRING];
typedef struct{
char name[MAX_STRING];
void travel(town dest,int distance,int townNum);
void setTravelDest();
char buff[MAX_STRING];
while(strcmp(buff,"EOF")!=0){
if(strcmp(buff,"level:")==0)
else if(strcmp(buff,"base_hp:")==0)
else if(strcmp(buff,"hp:")==0)
else if(strcmp(buff,"base_att:")==0)
else if(strcmp(buff,"base_def:")==0)
else if(strcmp(buff,"name:")==0){
char tmpName[MAX_STRING];
- 알고리즘3주숙제 . . . . 6 matches
from [http://www.csc.liv.ac.uk/~ped/teachadmin/algor/d_and_c.html The university of liverpool of Computer Science Department]
Consider the following problem: one has a directory containing a set of names and a telephone number associated with each name.
The directory is sorted by alphabetical order of names. It contains n entries which are stored in 2 arrays:
Given a name and the value n the problem is to find the number associated with the name.
A set of n points in the plane.
The distance between the two points that are closest.
Note: The distance DELTA( i, j ) between p(i) and p(j) is defined by the expression:
The (2n)-digit decimal representation of the product x*y = z
Note: The algorithm below works for any number base, e.g. binary, decimal, hexadecimal, etc. We use decimal simply for convenience.
- 알고리즘8주숙제 . . . . 6 matches
Given the denominations of coins for a newly founded country, the Dairy Republic, and some monetary amount, find the smallest set of coins that sums to that amount. The Dairy Republic is guaranteed to have a 1 cent coin.
Give a greedy method, which is heuristic, to solve the 0/1 knapsack problem and also give an example to show that it does not always yield an optimal solution.
The kanpsack problem is defined as follows:
Give a greedy method to find an optimal solution of the knapsack problem and prove its correctness.
Consider the problem of scheduling n jobs on one machine. Describe an algorithm to find a schedule such that its average completion time is minimum. Prove the correctness of your algorithm.
==== 5. Optimal Binary Tree ====
Optimal Binary Tree는 Dynamic Programming 기법으로 풀리는 유명한 문제입니다. 그누스 형님 방법에 의하면 O(n<sup>2</sup>)으로 풀립니다. 그러나 우리는 이보다 점근적으로 더 빠른 휴리스틱 버전을 작성해야 합니다.
alph 3 beta 7 theta 10 |}}
{{| alph beta theta
|| [Leonardong] || 2h || [http://wiki.zeropage.org/trac/leonardong/browser/AlgorithmTrainning/OptimalBST.py] ||
|| 김상섭 || 엄청 || [AproximateBinaryTree/김상섭] ||
- 지금그때2004 . . . . 6 matches
|| wiki:NowThen2004/패널토의 ||
|| wiki:NowThen2004/OST종합 = wiki:NowThen2004/복수전공 + wiki:NowThen2004/시간관리 + ? ||
wiki:NowThen2004/지금그때2004 에서 활동을 정리하세요.
wiki:NowThen2004/지금그때2004/후기 에서 후기를 기록해 주세요.
Berkeley Visionaries Prognosticate About the Future http://netshow01.eecs.berkeley.edu/CS-day-004/Berkeley_Visionaries.wmv 이걸 보면 대충 감이 올겁니다. 이 동영상의 경우 뛰어난 패널진에 비해 진행자가 그리 좋은 질문을 하지 못해서 아쉽기는 합니다. 좋은 질문을 하려면 서점이나 도서관에서 [질문의 힘]이라는 책을 읽어보세요. 그리고 04학번 눈높이의 질문에 대한 고학번들의 생각을 들어보는 것도 중요하지만 04학번이 전혀 생각 못하는 질문을 대신 물어주는 것도 중요합니다. 고객과 요구사항을 뽑는 것과 비슷할 수 있겠죠. "그들이 원하는 것"은 물론 "그들이 필요로 하는 것"(주로, 나중에 그들이 원할만한 것)을 이야기해야 하니까요 -- 또 종종 그들은 자신이 뭘 원하는지 모르는 경우도 많습니다.
- ASXMetafile . . . . 5 matches
<Entry>
</Entry>
* <Abstract>: Provides a brief description of the media file.
* <Title>: Title of the media file.
* <Author>: The author's name .
* <MoreInfo href = "path of the source" / >: Adds hyperlinks to the Windows Media Player interface in order to provide additional resources on the content.
* <Entry>: Serves a playlist of media by inserting multiple "Entry" elements in succession.
* <Duration value = "00:00:00">: Sets the value attribute for the length of time a streaming media file is to be played.
* <Logo href = "path of the logo source" Style = "a style" / >: Adds custom graphics to the Windows Media player by choosing either a watermark or icon style. The image formats that Windows Media Player supports are GIF, BMP, and JPEG.
o MARK: The logo appears in the lower right corner of the video area while Windows Media Player is connecting to a server and opening a piece of content.
o ICON: The logo appears as an icon on the display panel, next to the title of the show or clip.
* <Banner href = "path of the banner source">: Places a banner (82 pixels × 30 pixels) image at the bottom of the video display area.
* <Ref href = "path of the source" / >: Specifies a URL for a content stream.
* How to define the path of source:
o ASX files, on the other hand, are small text files that can always sit on an HTTP server. When the browser interprets the ASX file, it access the streaming media file that is specified inside the ASX file, from the proper HTTP, mms, or file server.
* ?sami="path of the source": Defines the path of a SAMI caption file within the <ref href> tag for media source.
<Abstract>: This text will show up as a Tooltip and in the Properties dialog box
</Abstract>
<Title> Global title of the show </Title>
<Author> The name of the author </Author>
- BookShelf/Past . . . . 5 matches
1. [http://kldp.org/Translations/html/Ask-KLDP/ 좀더 나은 질문하기 방법] - 20050121
1. ExtremeProgrammingExplained 2e - 20052021
1. ExtremeProgrammingInstalled - 20050508
1. [TheElementsOfProgrammingStyle] - 20051018
1. [TheElementsOfStyle] - 20060304
1. [IntroductionToTheTheoryOfComputation]
- CPPStudy_2005_1/Canvas . . . . 5 matches
==== Triangle ====
* 기본적으로 Triangle, Square 를 가지고 있다.
Triangle aTriangle;
aComposedShape2.Add(&aTriangle);
- DPSCChapter2 . . . . 5 matches
Before launching into our descriptions of specific design patterns, we present a case study of sorts, involving multiple patterns. In the Design Pattern preface, the Gang of Four speak about moving from a "Huh?" to an "Aha!" experience with regard to understanding design patterns. We present here a little drama portraying such a transition. It consists of three vignettes: three days in the life of two Smalltalk programmers who work for MegaCorp Insurance Company. We are listening in on conversations between Don (an object newbie, but an experienced business analyst) and Jane (an object and pattern expert). Don comes to Jane with his design problems, and they solve them together. Although the characters are fictitious, the designs are real and have all been part of actual systems written in Smalltalk. Our goal is to demonstrate how, by careful analysis, design patterns can help derive solutions to real-world problems.
Jane : That's all right. I don't mind at all. What's the problem?
Don : It's this claims-processing workflow system I've been asked to design. I just can't see how the objects will work together. I think I've found the basic objects in the system, but I don't understand how to make sense from their behaviors.
Don : Here, let me show you the section of the requirements document I've got the problem with:
1. Data Entry. This consists of various systems that receive health claims from a variety of different sources. All are logged by assigning a unique identifier. Paper claims and supporting via OCR (optical character recognition) to capture the data associated with each form field.
2. Validation. The scanned and entered forms are validated to ensure that the fields are consistent and completely filled in. Incomplete or improperly filled-in forms are rejected by the system and are sent back to the claimant for resubmittal.
3. Provider/Plan Match. An automated process attempts to mach the plan (the contract unser which the claim is being paid) and the health care provider (e.g., the doctor) identified on the claim with the providers with which the overall claim processing organization has a contract. If there is no exact match, the program identifies the most likely matches based on soundex technology (an algorithm for finding similar-sounding words). The system displays prospective matches to knowledge workers in order of the likeinhood of the match, who then identify the correct provider.
4. Automatic Adjudication. The system determines whether a claim can be paid and how much to pay if and only if there are no inconsistencies between key data items associated with the claim. If there are inconsistencies, the system "pends" the claim for processing by the appropriate claims adjudicator.
5. Adjudication of Pended Claims. The adjudicator can access the system for a claim history or a representation of the original claim. The adjudicator either approves the claim for payment, specifying the proper amount to pay, or generates correspondence denying the claim.
Data Entry. 이것은 다양한 form으로부터 health claims 를 받는 다양한 시스템으로 구성된다. 모두 고유 id 가 할당되어 기록되며, Paper claims OCR (광학문자인식) 로 캡쳐된 데이터는 각 form field 들에 연관되어있다.
- DermubaTriangle/조현태 . . . . 5 matches
== [DermubaTriangle/조현태] ==
#include <iostream>
POINT GetTrianglePoint(int houseNumber)
POINT trianglePoint;
trianglePoint.x = 0; trianglePoint.y = 0;
for (; trianglePoint.y * trianglePoint.y <= houseNumber; ++trianglePoint.y);
--trianglePoint.y;
houseNumber -= trianglePoint.y * trianglePoint.y;
for (trianglePoint.x = trianglePoint.y * (-1); 0 < houseNumber; ++trianglePoint.x)
return trianglePoint;
double GetHousePointX(POINT trianglePoint)
return trianglePoint.x * 0.5;
double GetHousePointY(POINT trianglePoint)
if ((0 == abs(trianglePoint.y) % 2 && 0 == abs(trianglePoint.x) % 2) ||
(1 == abs(trianglePoint.y) % 2 && 1 == abs(trianglePoint.x) % 2))
return trianglePoint.y * (sqrt(3.0) / 2);
return ((trianglePoint.y - 1) * (sqrt(3.0) / 2)) + (sqrt(3.0) / 3);
double GetHouseDistance(POINT trianglePointOne, POINT trianglePointAnother)
return sqrt(pow(GetHousePointX(trianglePointOne) - GetHousePointX(trianglePointAnother), 2) +
pow(GetHousePointY(trianglePointOne) - GetHousePointY(trianglePointAnother), 2));
- DoItAgainToLearn . . . . 5 matches
see also EightQueenProblemSecondTry
제가 개인적으로 존경하는 전산학자 Robert W. Floyd는 1978년도 튜링상 강연 ''[http://portal.acm.org/ft_gateway.cfm?id=359140&type=pdf&coll=GUIDE&dl=GUIDE&CFID=35891778&CFTOKEN=41807314 The Paradigms of Programming]''(일독을 초강력 추천)에서 다음과 같은 말을 합니다. --김창준
Seminar:TheParadigmsOfProgramming DeadLink? - 저는 잘나오는데요. 네임서버 설정이 잘못된건 아니신지.. - [아무개]
In my own experience of designing difficult algorithms, I find a certain technique most helpfult in expanding my own capabilities. After solving a challenging problem, I solve it again from scratch, retracing only the ''insight'' of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that ''would'' have led me to approach the given problem in the most efficient way the first time. Often, such a rule is of permanent value. ...... The rules of Fortran can be learned within a few hours; the associated paradigms take much longer, both to learn and to unlearn. --Robert W. Floyd
Even fairly good students, when they have obtained the solution of the problem and written down neatly the argument, shut their books and look for something else. Doing so, they miss an important and instructive phase of the work. ... A good teacher should understand and impress on his students the view that no problem whatever is completely exhausted. --George Polya
- FeedBack . . . . 5 matches
'''The American Heritage(r) Dictionary of the English Language, Fourth Edition'''[[BR]]
a. The return of a portion of the output of a process or system to the input, especially when used to maintain performance or to control a system or process.
* The portion of the output so returned.
* Sound created when a transducer such as a microphone or electric guitar picks up sound from a speaker connected to an amplifier and regenerates it back through the amplifier.
*. The return of information about the result of a process or activity; an evaluative response: asked the students for feedback on the new curriculum.
*. The process by which a system, often biological or ecological, is modulated, controlled, or changed by the product, output, or response it produces.
- Gnutella-MoreFree . . . . 5 matches
== The Gnutella Protocol Document ==
The Gnutella Protocol Document
{{{~cpp Connection String : GNUTELLA CONNECTION/<version>/nn}}}
확장된 프로토콜 이 필요하게 되었다. 이를 Triler라고 하며 QueryHit 의
- Trailer
2.1 Data Structure
POSITION pos = m_lstResults.GetFirstSelectedItemPosition();
int nItem = m_lstResults.GetNextSelectedItem(pos);
ResultGroup* pGroup = (ResultGroup*) m_lstResults.GetItem(nItem);
와 같이 m_DownloadList에 Download 객체를 삽입하고 CGnuControl에서 제어하게 만든다.
// Add hosts to the download list
CGnuControl에서의 void CGnuControl::ManageDownloads()에 의해 제어된다.
bool destroy = true;
destroy = false;
if(destroy)
pNode->SendPacket(m_Packet, length, PACKET_QUERY, true);
// Extract results from the packet
만약 상대방 서버가 FireWall에 있다면 QueryHit중의 bool Firewall;필드가 True가 되므로 이에 대한 응답으로
- JTDStudy/첫번째과제/상욱 . . . . 5 matches
private String resultNumber;
private String userNumber;
public static void main(String[] args) {
public String inputNumber() {
String fstNum, secNum, trdNum;
trdNum = "" + (Math.random()*10);
}while(fstNum.equals(secNum) || secNum.equals(trdNum) || fstNum.equals(trdNum));
resultNumber = fstNum + secNum + trdNum;
public String checkScore() {
int numOfStrike = 0;
numOfStrike++;
if (numOfStrike == 3)
return "" + numOfStrike + " Strike, " + numOfBall + " Ball";
public void setResultNumber(String resultNumber) {
public String getUserNumber() {
public String getResultNumber() {
String testString = object.inputNumber();
if (testString.charAt(0) == '1' &&
testString.charAt(1) == '2' &&
testString.charAt(2) == '3')
- Kongulo . . . . 5 matches
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- Knows basic and digest HTTP authentication
- When recrawling, uses If-Modified-Since HTTP header to minimize transfers
For usage instructions, run with -h flag.
- MoinMoinNotBugs . . . . 5 matches
The main, rectangular background, control and data area of an application. <p></ul>
A temporary, pop-up window created by the application, where the user can
'''The HTML being produced is invalid:''' ''Error: start tag for "LI" omitted, but its declaration does not permit this.'' That is, UL on its lonesome isn't permitted: it must contain LI elements.
Also worth noting that ''Error: Missing DOCTYPE declaration at start of document'' comes up at the HEAD tag; and ''Error: document type does not allow element "FONT" here'' for a FONT tag that's being used inside a PRE element.
''Indeed the <ul> should be a <dl> or so for pure indents. I'll add HTML conformity checking as a todo.''
Please note also that to be "identical," the second P tag should ''follow'' the /UL, not precede it. The implication as-is is that the P belongs to the UL block, when it doesn't. It may be worth using closing paragraph tags, as an aide to future XHTML compatibility, and to make paragraph enclosures wholly explicit.
This is not an Opera bug. The HTML is invalid. '''The blocks are overlapping, when they are not allowed to:''' P UL P /UL UL P /UL is not a sensible code sequence. (It should be P UL /UL P UL /UL P... giddyupgiddyup?)
I suspect this problem is pervasive, and I also suspect that the solution is almost moot; probably a one-off counting problem, or a mis-ordered "case" sort of sequence. If the /UL closing tag were to precede the P opening tag, all would be well.
Hey! That ToC thing happening at the top of this page is *really* cool!
''This issue will be resolved in the course of XML formatting -- after all, XML is much more strict than any browser.''
- RSS . . . . 5 matches
The technology behind RSS allows you to subscribe to websites that have provided RSS feeds, these are typically sites that change or add content regularly. To use this technology you need to set up some type of aggregation service. Think of this aggregation service as your personal mailbox. You then have to subscribe to the sites that you want to get updates on. Unlike typical subscriptions to pulp-based newspapers and magazines, your RSS subscriptions are free, but they typically only give you a line or two of each article or post along with a link to the full article or post.
The RSS formats provide web content or summaries of web content together with links to the full versions of the content, and other meta-data. This information is delivered as an XML file called RSS feed, webfeed, RSS stream, or RSS channel. In addition to facilitating syndication, RSS allows a website's frequent readers to track updates on the site using a news aggregator.
Before RSS, several similar formats already existed for syndication, but none achieved widespread popularity or are still in common use today, and most were envisioned to work only with a single service. For example, in 1997 Microsoft created Channel Definition Format for the Active Channel feature of Internet Explorer 4.0. Another was created by Dave Winer of UserLand Software. He had designed his own XML syndication format for use on his Scripting News weblog, which was also introduced in 1997 [1].
RDF Site Summary, the first version of RSS, was created by Dan Libby of Netscape in March 1999 for use on the My Netscape portal. This version became known as RSS 0.9. In July 1999 Netscape produced a prototype, tentatively named RSS 0.91, RSS standing for Rich Site Summary, this was a compromise with their customers who argued the complexity introduced (as XML namespaces) was unnecessary. This they considered a interim measure, with Libby suggesting an RSS 1.0-like format through the so-called Futures Document [2].
Soon afterwards, Netscape lost interest in RSS, leaving the format without an owner, just as it was becoming widely used. A working group and mailing list, RSS-DEV, was set up by various users to continue its development. At the same time, Winer posted a modified version of the RSS 0.91 specification - it was already in use in their products. Since neither side had any official claim on the name or the format, arguments raged whenever either side claimed RSS as its own, creating what became known as the RSS fork. [3]
The RSS-DEV group went on to produce RSS 1.0 in December 2000. Like RSS 0.9 (but not 0.91) this was based on the RDF specifications, but was more modular, with many of the terms coming from standard metadata vocabularies such as Dublin Core. Nineteen days later, Winer released RSS 0.92, a minor and (mostly) compatible revision of RSS 0.91. The next two years saw various minor revisions of the Userland branch of RSS, and its adoption by major media organizations, including The New York Times.
Winer published RSS 2.0 in 2002, emphasizing "Really Simple Syndication" as the meaning of the three-letter abbreviation. RSS 2.0 remained largely compatible with RSS 0.92, and added the ability to add extension elements in their own namespaces. In 2003, Winer and Userland Software assigned ownership of the RSS 2.0 specification to his then workplace, Harvard's Berkman Center for the Internet & Society.
- RelationalDatabaseManagementSystem . . . . 5 matches
A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by Edgar F. Codd.
The fundamental assumption of the relational model is that all data are represented as mathematical relations, i.e., a subset of the Cartesian product of n sets. In the mathematical model, reasoning about such data is done in two-valued predicate logic (that is, without NULLs), meaning there are two possible evaluations for each proposition: either true or false. Data are operated upon by means of a relational calculus and algebra.
The relational data model permits the designer to create a consistent logical model of information, to be refined through database normalization. The access plans and other implementation and operation details are handled by the DBMS engine, and should not be reflected in the logical model. This contrasts with common practice for SQL DBMSs in which performance tuning often requires changes to the logical model.
The basic relational building block is the domain, or data type. A tuple is an ordered multiset of attributes, which are ordered pairs of domain and value. A relvar (relation variable) is a set of ordered pairs of domain and name, which serves as the header for a relation. A relation is a set of tuples. Although these relational concepts are mathematically defined, they map loosely to traditional database concepts. A table is an accepted visual representation of a relation; a tuple is similar to the concept of row.
The basic principle of the relational model is the Information Principle: all information is represented by data values in relations. Thus, the relvars are not related to each other at design time: rather, designers use the same domain in several relvars, and if one attribute is dependent on another, this dependency is enforced through referential integrity.
- User Stories . . . . 5 matches
원문 : http://www.extremeprogramming.org/rules/userstories.html
User stories serve the same purpose as use cases but are not the same. They are used to create time estimates for the release planning meeting. They are also used instead of a large requirements document. User Stories are written by the customers as things that the system needs to do for them. They are similar to usage scenarios, except that they are not limited to describing a user interface. They are in the format of about three sentences of text written by the customer in the customers terminology without techno-syntax.
User stories also drive the creation of the acceptance tests. One or more automated acceptance tests must be created to verify the user story has been correctly implemented.
One of the biggest misunderstandings with user stories is how they differ from traditional requirements specifications. The biggest
difference is in the level of detail. User stories should only provide enough detail to make a reasonably low risk estimate of how long the story will take to implement. When the time comes to implement the story developers will go to the customer and receive a detailed description of the requirements face to face.
Developers estimate how long the stories might take to implement. Each story will get a 1, 2 or 3 week estimate in "ideal development time". This ideal development time is how long it would take to implement the story in code if there were no distractions, no other assignments, and you knew exactly what to do. Longer than 3 weeks means you need to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. About 80 user stories plus or minus 20 is a perfect number to create a release plan during release planning.
Another difference between stories and a requirements document is a focus on user needs. You should try to avoid details of specific technology, data base layout, and algorithms. You should try to keep stories focused on user needs and benefits as opposed to specifying GUI layouts.
- WeightsAndMeasures/황재선 . . . . 5 matches
def inputEachData(self, weight, strength):
self.dataList.append([weight, strength, strength-weight])
return True
return True
while True:
self.assertEquals(True, self.wam.canStack())
while True:
weight, strength = map(int, data.split())
wam.inputEachData(weight, strength)
- WikiSlide . . . . 5 matches
* a technology for collaborative creation of internet and intranet pages
* '''Simple''' - ''Content over Form'' (content counts, not the super-pretty appearance)
== The First Steps ==
* Email address for subscribing to page change emails and retrieving a lost login/password
* Structure of pages
* SiteNavigation: A list of the different indices of the Wiki
* FindPage: Searching the Wiki by various methods
* TitleIndex: A list of all pages in the Wiki
* WordIndex: A list of all words in page titles (i.e. a list of keywords/concepts in the Wiki)
== Using the Editor ==
To edit a page, just click on [[Icon(edit)]] or on the link "`EditText`" at the end of the page. A form will appear enabling you to change text and save it again. A backup copy of the previous page's content is made each time.
You can check the appearance of the page without saving it by using the preview function - ''without'' creating an entry on RecentChanges; additionally there will be an intermediate save of the page content, if you have created a homepage ([[Icon(home)]] is visible).
<!> After editing pages, please leave the edit form by "`Save Changes`" since otherwise your edits will be lost!
== Tips on the Editor ==
"`Check spelling`" examines the text for unknown words.
Within the editor, the usual hotkeys work:
||<rowbgcolor="#DEDEDE">'''Undo:''' `CTRL+Z`||'''Redo:''' `CTRL+Y`||
||<rowbgcolor="lightblue">'''Copy:''' `CTRL+C`||'''Paste:''' `CTRL+V`||
||<rowbgcolor="#DEDEDE">'''Home:''' `CTRL+Home`||'''End:''' `CTRL+End`||
(!) If you discover an interesting format somewhere, just use the "raw" icon to find out how it was done.
- [Lovely]boy^_^/EnglishGrammer/PresentPerfectAndPast . . . . 5 matches
The present perfect : have/has + past participle (have/has + 과거분사)
B. When we use the peresent perfect, there is a connection with now. The action in the past has a result now.
We often use the present perfect to give new information or to announce a recent happening.(새로운 정보나, 최근의 사건을 보도할때도 쓰인답니다.)
ex1) The road is closed. There's been an accident.
ex2) (from the news) The police have arrested two men in connection with the robbery.
We also use the simple past some situations.( ... 어쩌라는 거야..ㅠ.ㅠ 쓸거면 확실하게 한군데만 쓰던지..;;)
C. We ofte use the present perfect with just, already, and yet. You can also use the simple past.
Yet = until now. It shows that the speaker is expecting something to happen. Use yet only in questions and negative sentences.
ex2) I wrote the letter, but I haven't mailed it yet. (역시 simple past 가능)
D. Don't use the present perfect when you talk about a finished time.(이미 끝난일 가지고 현재 완료 쓰지말란다. 당연한 얘기)
A. When we talk about a period of time that continues from the past until now, we use the present perfect.(앞에 나온말)
ex) I've never been to China. Have you been there?
Here are more examples of speakers talking about a period that continues until now(recently/ in the last few days/ so far/ since breakfast, etc.)
B. We use the present perfect with today/ this morning/ this evening, etc. when these periods are not finished at the time of speaking.(그렇대요;;)
C. We say, "It's the first time something has happened."(present perfect) (이건 뭐하자는 건지..;;)
ex) Sarah has lost her passport again. It's the second time this has happened.(not happens)
- [Lovely]boy^_^/EnglishGrammer/ReportedSpeech . . . . 5 matches
A. You want to tell somebody else what Tom said. There are two ways of doing this :
B. When we use reported speech, the main verb of the sentence is usually past. The rest of the sentence is usually past, too :
C. The simple past can usually stay the same in reported speech, or you can change it to the past perfect.
A. It is not always necessary yo change the verb when you use reported speech. If you report something and it is still true, you do not need to change the verb.
reported : Tom said that New York is more exciting than London. (New York is stlll more exciting. The situation hasn't changed.)
Is is also correct to change the verb into the past.(--;)
But you must use a past form when there is a difference between what was said and what is really true.(--; 결국은 과거 쓰란 얘기자나)
Otherwise use say ( Say somebody(X) )
We also use the infinitive(to do/ to stay, etc...) in reported speech, especially with tell and ask(for orders and requests)
ex1) direct : "Stay in bed for a few days," the doctor said to me.
reported : The doctor told me to stay in bed for a few days.
- canvas . . . . 5 matches
#include <iostream>
class Triangle : public Shape{
cout << "Triangle" << "\t";
Triangle aTriangle;
aCompositeShape2.Add(&aTriangle);
- 빵페이지/도형그리기 . . . . 5 matches
#include <iostream.h>
#include <iostream.h>
#include<iostream>
#include<iostream>
#include <iostream>
void drawTriangle(int startX, int startY, int size, int deltaX, int deltaY) {
bitmap[startX + j*deltaX][startY + i*deltaY] = true;
drawTriangle(0,0,5, 1, 1);
drawTriangle(5,4,5, 1,-1);
drawTriangle(15,0,5,-1, 1);
drawTriangle(20,4,5,-1,-1);
#include <iostream>
Bjarne Stroustrup ,Alexander Stepanov는 어떻게 작성하길 원할까?
#include <iostream>
#include <string>
inline void print(int& num,string& str){
cout<<str;
string asterisks;
string odd = asterisks.substr(0,i);
string even = asterisks.substr(0,j);
- ACM_ICPC . . . . 4 matches
* [http://icpckorea.org/2019/regional/scoreboard/ 2019년 스탠딩] - TheOathOfThePeachGarden Rank 81(CAU - Rank 52, including Abroad team)
* [http://static.icpckorea.net/2020/scoreboard_terpin/ 2020년 스탠딩] - Decentralization Rank 54(CAU - Rank 35)
|| 프림 Algorithm || . || dijkstra || . ||
* team 'TheOathOfThePeachGarden' 본선 81위(학교 순위 52위) : [한재현], [김영기], [오준석]
* team 'Decentralization' 본선 54위(학교 순위 35위) : [박인서], [한재민], [이호민]
- AOI/2004 . . . . 4 matches
|| [TheTrip] || . || X || O || O || O || O || . || O ||
|| [CheckTheCheck] || . || . || O || . || . || . || . || O ||
|| [AustralianVoting]|| . || . || O || . || . || . || . || O ||
|| [TheArcheologist'sDilemma]|| . || . || X || . || . || . || . || . ||
- CSP . . . . 4 matches
import netstring, socket
each.setDaemon(True)
v=loads(netstring.readns(self.s)) #block
netstring.writens(self.s,"ACK")
netstring.writens(self.s,dumps(v))
ack=netstring.readns(self.s) #block
def __init__(self,addr,outstream):
self.out_=outstream
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
def __init__(self,addr,outstream):
self.out_=outstream
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def __init__(self,outstream):
self.out_=outstream
def __init__(self,instream):
self.in_=instream
def __init__(self,n,instream,outstream):
self.in_=instream
self.out_=outstream
- DPSCChapter3 . . . . 4 matches
= Abstract Factory(31) =
ABSTRACT FACTORY(DP 87)
== Structure ==
패턴은 실제로 아주 간단하다. 문제 상황은 많은 부분들을 포함한다. Abstract Factory 패턴이 적용될 수 있는 예제를 보도록
우리는 Abstract Factory Pattern을 이용해서 두가지 목표를 이룰 수 있다.
(정리 : Abstract Factory Pattern은 Factory Pattern을 추상화시킨 것이다.Factory Pattern의 목적이 Base Class로부터 상속
Abstract Factory Pattern는 여러 개의 Factory중 하나를 선택할 수 있도록 해주는 것을 수행한다. )
Abstract Factory로, 부분들을(part) 결합시키는 것은 팩토리의 클라이언트가 하는 일이다. 팩토리는 부분들의(part) 하나의 집합의 (family)로 부터 나온다는 것을 보장한다. 하지만, 팩토리는 단지 부분을(part) 반환하는 일만 할 뿐이다. 최종 상품은 팩토리가 조립하지 않는다. 그것은 클라이언트의 일이다. (우리는 Abstract Factory와 Builder 패턴 사이의 주요한 차이점을 나중에 볼 것이다.)
"Create the top-level part, the car object which starts out having no subcomponents, and add an engine, body, etc."
다형성의 힘 때문에, 클라이언트는 코드 구현을 한번만 하면된다. ABSTRACT FACTORY PATTERN을 사용하지 않을 경우, 자동차 생성 코드는 다음과 같이 보일 것이다.(아주 비효율적인 코드)
"Without Abstract Factory."
ifTrue: [FordCar new]
ifTrue: [ToyotaCar new]
ifTrue: [PorscheCar new]
ifTrue: [FordEngine new]
따라서, CarAssmebler를 만들기 위한 자동차 종류가 무엇이고 그 하위 부분들이 무엇을 해야하고, 그것의 실제 부분의 인스턴스가 무엇을 수행해야 할지를 결정한다. ABSTRACT FACTORY 해결은 우리가 CarAssembler 객체 밖의 모든 행동들을 추상화시킨다. 그리고 팩토리로 분리한다. 특별한 자동차 팩토리로 CarAssembler 확인을 한 후에, CarAssembler는 간단하게 구체적인 자동차와 하위 부분을 만들기 위한 팩토리를 호출한다.
ABSTRACT FACTORY 접근은 좀더 모듈적이고, 좀더 쉽게 확장 가능한 디자인을 할 수 있다. 시스템에 새로운 타입의 자동차를 추가하기 위해서, 우리는 CarPartFactory의 서브 클래스를
- DirectDraw/Example . . . . 4 matches
// SimpleDX.cpp : Defines the entry point for the application.
#define MAX_LOADSTRING 100
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
int APIENTRY WinMain(HINSTANCE hInstance,
LPSTR lpCmdLine,
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_SIMPLEDX, szWindowClass, MAX_LOADSTRING);
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_SIMPLEDX);
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
TranslateMessage(&msg);
// PURPOSE: Registers the window class.
// to be compatible with Win32 systems prior to the 'RegisterClassEx'
// so that the application will get 'well formed' small icons associated
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_SIMPLEDX);
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
// In this function, we save the instance handle in a global variable and
- Fmt . . . . 4 matches
The unix fmt program reads lines of text, combining
72 characters long as possible. The rules for combining and breaking
1. A new line may be started anywhere there is a space in the input.
If a new line is started, there will be no trailing blanks at the
end of the previous line or at the beginning of the new line.
2. A line break in the input may be eliminated in the output, provided
it is not followed by a space or another line break. If a line
The unix fmt program reads lines of text, combining and breaking lines
72 characters long as possible. The rules for combining and breaking
1. A new line may be started anywhere there is a space in the input.
If a new line is started, there will be no trailing blanks at the end of
the previous line or at the beginning of the new line.
2. A line break in the input may be eliminated in the output,
provided it is not followed by a space or another line break. If a line
- Gof/State . . . . 4 matches
== Structure ==
* It makes state transitions explicit.
1. Who defines the state transitions?
* Creating and destroying State objects.
class TCPOctectStream;
void ProcessOctet (TCPOctetStream* );
virtual void Transmit (TCPConnection* , TCPOctetStream* ):
void TCPState::Transmit (TCPConnection*, TCPOctetStream* ) { }
virtual void Transmit (TCPConnection* , TCPOctetStream* );
void TCPEstablished::Transmit (TCPConnection* t, TCPOctetStream* o) {
이 방법은 HowDraw [Joh92]와 Unidraw [VL90] drawing editor 프레임워크에 이용되었다. 이는 클라이언트로 하여금 새로운 종류의 tool들을 쉽게 정의할 수 있도록 해준다. HowDraw 에서 DrawingController 클래스는 currentTool 객체에게 request를 넘긴다. UniDraw에서는 각각 Viewer 와 Tool 클래스가 이와 같은 관계를 가진다. 다음의 클래스 다이어그램은 Tool 과 DrawingController 인터페이스에 대한 설명이다.
- JMSN . . . . 4 matches
C: SYN TrialID Serial# / S: SYN TrialID Serial#
'''1.6. List Retrieval And Property Management'''
* client가 $1의 retrieval을 요구할 수 있다.
C: List TrialID List / S: List TrialID List Serial# Item# TtlItems UserHandle CustomUserName
- JUnit/Ecliipse . . . . 4 matches
Example 3-1. The Ch03_01.java
return true;
7. assertTrue(a)
assertTrue(testObject.set(2,3));
assertTrue(testObject.set(2,3));
- Java2MicroEdition/MidpHttpConnectionExample . . . . 4 matches
String str = sgh.getContent2();
tb = new TextBox("Example", str, 20, TextField.ANY);
protected void destroyApp(boolean b) {
destroyApp(false);
notifyDestroyed();
import java.io.DataInputStream;
private DataInputStream dis;
public SpikeGetHtml(String url) {
try {
ex.printStackTrace();
private void init(String url) throws IOException {
httpConn.setRequestMethod(HttpConnection.GET);
httpConn.setRequestProperty("User-Agent", "Mozilla/4.0");
dis = httpConn.openDataInputStream();
try {
ex.printStackTrace();
public String getContent() {
String ret = "";
try {
ex.printStackTrace();
- JollyJumpers/Leonardong . . . . 4 matches
return True
while True:
inputString = sys.stdin.readline()
seriesChar = inputString.split()
self.assertEquals(True,
self.assertEquals(True,
self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [5,6,8] )),
str({2:"exist", 1:"exist"}) )
self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [7,6,4] )),
str({2:"exist", 1:"exist"}) )
처음에 리스트에 차를 집어넣은 후 정렬하려 했다가 집합 개념이 떠올라 그 쪽으로 해결했다. statementForSeries메서드 부분에 있던 CheckJolly메서드를 따로 테스트하면서 ExtractMethod를 하게 되었고, 차가 음수인 경우도 테스트를 통해 알게되었다. 보폭이 아직 좁지만 술술 진행한 문제이다.
- LoadBalancingProblem/Leonardong . . . . 4 matches
return True
return True
self.assertEqual( com.isCompelte(), True )
self.assertEqual( com.isThisOverWork(id), True )
def testRun(self):
- ModelViewPresenter . . . . 4 matches
http://www.object-arts.com/EducationCentre/Overviews/ModelViewPresenter.htm
TwistingTheTriad
ConnectingTheDots
Model-View-Presenter or MVP is a next generation programming model for the C++ and Java programming languages. MVP is based on a generalization of the classic MVC programming model of Smalltalk and provides a powerful yet easy to understand design methodology for a broad range of application and component development tasks. The framework-based implementation of these concepts adds great value to developer programs that employ MVP. MVP also is adaptable across multiple client/server and multi-tier application architectures. MVP will enable IBM to deliver a unified conceptual programming model across all its major object-oriented language environments.
- MoinMoinBugs . . . . 4 matches
=== Tables broken by trailing spaces ===
Tables don't work right if there are trailing spaces.
''Yes, by design, just like headings don't accept trailing spaces. In the case of headings, it is important because "= x =" is somewhat ambiguous. For tables, the restriction could be removed, though.''
And as a fun sidenote, the UserPreferences cookie doesn't seem to work. The cookie is in my ~/.netscape/cookies file still. My EfnetCeeWiki and XmlWiki cookies are duplicated!? It is kind of like the bug you found when I, ChristianSunesson, tried this feature with netscape just after you deployed it.
Hehe, and my changes are not logged to the RecentChanges database, I'll hope you find these changes this year. :) BUG BUG BUG!
''Well, Netscape suxx. I send the cookies with the CGI'S path, w/o a hostname, which makes it unique enough. Apparently not for netscape. I'll look into adding the domain, too.''
Hmmm...I use NetScape, MsIe, MoZilla and Galeon. I haven't had a problem but some other's using MoinMoin 0.8 have intermittently lost cookies. Any ideas?
* Solve the problem of the Windows filesystem handling a WikiName case-indifferent (i.e. map all deriatives of an existing page to that page).
* Check whether the passed WikiName is valid when editing pages (so no pages with an invalid WikiName can be created); this could also partly solve the case-insensitive filename problem (do not save pages with a name only differing in case)
* InterWiki links should either display the destination Wiki name or generate the A tag with a TITLE attribute so that (at least in IE) the full destination is displayed by floating the cursor over the link. At the moment, it's too hard to figure out where the link goes. With that many InterWiki destinations recognised, we can't expect everyone to be able to recognise the URL.
* Hover over the interwiki icon and you'll already get a tooltip, I'll look into the title attribute stuff.
* RecentChanges can tell you if something is updated, or offer you a view of the diff, but not both at the same time.
* If you want the ''latest'' diff for an updated page, click on "updated" and then on the diff icon (colored glasses) at the top.
* That's what I'm doing for the time being, but by the same rationale you don't need to offer diffs from RecentChanges at all.
* The intent is to not clutter RecentChanges with functions not normally used. I do not see a reason you want the lastest diff when you have the much better diff to your last visit.
* It'd be really nice if the diff was between now and the most recent version saved before your timestamp (or, failing that, the oldest version available). That way, diff is "show me what happened since I was last here", not just "show me what the last edit was."
* Hmmm, that '''is''' so. :) Take a look at the message at the top of the diff page after clicking on "updated", it'll often show text like "spanning x versions". You need the current CVS version for that, though.
* Oh, okay. Is this MoinMoin CVS enabled? Reason being: I did a few updates of a page, and was only being shown the last one. I'll try that some more and get back to you.
* Not CVS, but versioning all the same. I mean you have to get the most recent code from the SourceForge CVS archive for some features to work, if you test on a ''local'' wiki.
With 0.3, TitleIndex is broken if first letter of Japanese WikiName is multibyte character. This patch works well for me but need to be fixed for other charsets.
- MoniWikiTheme . . . . 4 matches
=== 임의의 Theme 설정 및 지원 ===
http://chemie.skku.ac.kr/wiki/wiki.php/TwinPages?action=theme&theme=kz
http://chemie.skku.ac.kr/wiki/wiki.php/TwinPages?action=theme&theme=blog
http://chemie.skku.ac.kr/wiki/wiki.php/TwinPages?action=theme&theme=samplehome
{{{[[Theme]]}}}매크로를 이용하여 지원 가능한 Theme목록을 볼 수 있다.
[[Theme]]
- MoreEffectiveC++/Miscellany . . . . 4 matches
== Item 32: Program in the Future tense ==
원문:As software developers, we may not know much, but we do know that things will change. We don't necessarily know what will change, how the changes will be brought about, when the changes will occur, or why they will take place, but we do know this: things will change.
좋은 소프트웨어는 변화를 잘 수용한다. 새로운 기능을 수용하고, 새로운 플랫폼에 잘 적용되고, 새로운 요구를 잘 받아 들이며, 새로운 입력을 잘 잡는다. 이런 소프트웨어는 유연하고, 강하고, 신뢰성있고, 돌발 상황(사고)에 의해 죽지 않는다. 이런 소프트웨어는 미래에 필요한 요소를 예상하고, 오늘날 구현시에 포함시키는 프로그래머들에 의해서 디자인된다. 이러한 종류의 소프트웨어는-우아하게 변화하는 소프트웨어- ''program in the future tens''(매래의 프로그램:이하 영문 직접 사용)을 감안하는 사람들이 작성한다.
"변화한다.", 험난한 소프트웨어의 발전에 잘 견디는 클래스를 작성하라. (원문:Given that things will change, writeclasses that can withstand the rough-and-tumble world of software evolution.) "demand-paged"의 가상 함수를 피하라. 다른 이가 만들어 놓지 않으면, 너도 만들 방법이 없는 그런 경우를 피하라.(모호, 원문:Avoid "demand-paged" virtual functions, whereby you make no functions virtual unless somebody comes along and demands that you do it) 대신에 함수의 ''meaning''을 결정하고, 유도된 클래스에서 새롭게 정의할 것인지 판단하라. 그렇게 되면, 가상(virtual)으로 선언해라, 어떤 이라도 재정의 못할지라도 말이다. 그렇지 않다면, 비가상(nonvirtual)으로 선언해라, 그리고 차후에 그것을 바꾸어라 왜냐하면 그것은 다른사람을 편하게 하기 때문이다.;전체 클래스의 목적에서 변화를 유지하는지 확신을 해라.
여기에서 B는 D의 기초 클래스이다. 다른 말로 하자면 이 작성자는 만약 다음과 같은 경우에 B는 가상 파괴자(virtual destroctor)가 필요 없어 보인다.
class String {
~string();
string name;
* 만약 다중 상속 상태에서 어떠한 파괴자가 있다면, 모든 기본 클래스가 아마 가상 파괴자(virtual destructor)가 되어야 할것이다.
상업용 클래스 라이브러리(C++표준 라이브러리 상의 string 스펙의 날짜를 앞당기려는 회사)는 가상 파괴자를 가지고 있지 않은 sting클래스를 포함한다. 그 벤더의 설명은?
* 우리는 가상 파괴자를 만들지 않는다. 왜냐하면, String가 vtbl을 가지기를 원하지 않기 때문이다. 우리는 String*를 가지게할 의도는 없다. 그래서 이는 문제가 되지 않는다. 우리는 이것이 수반하는 어려움에 대하여 생각하지 않는다.
확실히 vtbl 문제는 합법적인 접근이다. (Item 24참고) 대다수 String클래스의 구현에서 오직 하나의 char*를 각각의 String 객체가 가지고 있다. 그래서 각 String객체에 추가되는 vptr도 두배의 양을 차지한다. 허용하지 않으려는 이유는 이해하기 쉽다. String같은 클래스를 무겁게 사용하면 눈에 띠는 성능 저하가 있다. 앞서 언급한 경우 클래스당 성능 저하는 약 20%정도를 가지고 온다. (Item 16참고)
문자열 객체에 대한 메모리의 할당은-문자의 값을 가지고 있기 위해 필요로하는 heap메모리까지 감안해서-일반적으로 char*이 차지하는 양에 비하여 훨씬 크다. 이러한 관점에서, vtpr에 의한 오버헤드(overhead)는 미미하다. 그럼에도 불구하고, 그것은 할만한(합법적인,올바른) 고민이다. (확실히 ISO/ANSI 포준 단체에서는 그러한 관점으로 생각한다. 그래서 표준 strnig 형은 비 가상 파괴자(nonvirtual destructor) 이다.)
어떤 것이 더 많은 문제를 일으키는 것으로, 밴더들의 주목을 받고 있을까? "우리는 String*을 사용하는 목적을 가지지 않는다. 그래서 이는 별 문제가 되지 않는다." 그건 아마 사실일 것이다. 하지만 그들의 String클래스는 수많은 개발자들이 사용가능한 것이다. 수많은 개발자들이 C++의 수준이 제각각이다. 이러한 개발자들이 String상에서의 비가상 파괴자(no virtual destructor)를 이해할까? 그들이 비가상 파괴자를 가진 String때문에 String으로 유도된 새로운 클래스가 모험 비슷한 것을 알고 있을까? 이런 벤더들은 그들의 클라이언트들이 가상 파괴자가 없는 상태에서 String*를 통하여 삭제가 올바르게 작동하지 않고, RTTI와 String에 대한 참조가 아마 부정확한 정보를 반환한다는걸 확신시킬까? 이 클래스가 정확히 쓰기 쉬운 클래스일까? 부정확하게 쓰기 어려운 클래스일까?
이 벤더는 물론 String클래스에 관한 유도해서는 안되도록 디자인 된 문서들을 제공할 것이다. 하지만, 프로그래머들이 문서를 보는 도중에 그 부분을 놓쳤다면 어떻게 하겠는가?
대안으로 C++을 사용할때 유도를 제한해 버리는 것이다. Item 26에서 어떻게 객체를 heap에 만들거고 auto_ptr객체로 heap객체를 조정하는 방법에 관해서 언급하였다. String을 위한 인터페이스 생성은 아마 독특하고 불편한 다음과 같은 문법 을 요구한다.
auto_ptr<String> ps(String::makeString("Future tense C++"));
String s("Future tense C++");
하지만 정확하지 않게 동작하는 유도된 클래스의 사용을 억제하는 것은 문법적으로 상당히 불편함을 낳는다. (String에서 이런 문법적으로 불편한 면이 그리 강조되지 않다. 그렇지만 다른 클래스에서 이러한 문법적인 불편함을 따지는 면이 중요하다.)
* 만약, 당신의 코드를 구현 (generalize:일반화) 하기 위해서 큰 제한사항이 없다면, 구현(generalize:일반화) 해라. 예를들어서, 당신이 tree 검색 알고리즘을 작성하는 중이라면, 사이클이 없는 그레프에 대해 적용 시킬수 있는 일반화에 대한 궁리를 해라.
- MySQL . . . . 4 matches
jdbc:mysql://localhost/database?user=user&password=xxx&useUnicode=true&characterEncoding=KSC5601
| Field | Type | Null | Key | Default | Extra |
=== MySQL & Transaction ===
[http://network.hanbitbook.co.kr/view_news.htm?serial=131 MySQL과 Transaction] 테이블 생성시 InnoDB 나 BSDDB 를 사용하면 Transaction 을 이용할 수 있다. (InnoDB 추천)
위의 PHP 버전은 어떻게 만들었을까? 바로.. MySQL 코드를 보고 만들었다고 한다.- UseTheSourceLuke --[1002]
- NSIS/예제2 . . . . 4 matches
ComponentText "This will install the less simple example2 on your computer. Select which optional things you want installed."
; The text to prompt the user to enter a directory
; Set output path to the installation directory.
WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "DisplayName" "NSIS Example2 (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "UninstallString" '"$INSTDIR\uninstall.exe"'
; The text to prompt the user to enter a directory
WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "DisplayName" "NSIS Example2 (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "UninstallString" '"$INSTDIR\uninstall.exe"'
; It will install notepad.exe into a directory that the user selects,
ComponentText "This will install the less simple example2 on your computer. Select which optional things you want installed."
; The text to prompt the user to enter a directory
; The stuff to install
; Set output path to the installation directory.
WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "DisplayName" "NSIS Example2 (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "UninstallString" '"$INSTDIR\uninstall.exe"'
Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
ComponentText: "This will install the less simple example2 on your computer. Select which optional things you want installed." "" ""
- NeoZeropageWeb . . . . 4 matches
'''GNUBoard (main) + Zerowiki + Trac'''
'''Trackback Center (main) + Tattertools 1.0 + Zerowiki + Trac'''
'''Zerowiki (main) + Trac'''
- PascalTriangle . . . . 4 matches
ulong Pascal_Triangle(int m,int n)
unsigned long PascalTriangle1(int n, int m)
unsigned long PascalTriangle2(int n, int m)
return PascalTriangle2(n,n-m+1);
- PersonalHistory . . . . 4 matches
* [XpWeek] - 2004년 겨울방학 ExtremeProgramming 체험하기
* [TheJavaMan] - 2004년 3월 2일 종료
* [TheJavaMan/비행기게임] - 2004년 3월 2일 종료
* [TheJavaMan/숫자야구] - 2004년 1/26일 종료
== Travel, Journey ==
- ProjectTriunity . . . . 4 matches
=== ProjectTriunity ===
NaverDic:Triunity ? 3인조...
|| Upload:ProjectTriunity.zip || 이상규 || 최종 ||
|| Upload:ProjectTriunity2.zip || 이상규 || 최종 ||
- RandomWalk2/재동 . . . . 4 matches
def testReadTXT(self):
def testRoachPath(self):
TXT = 'case_' + str(i+1) +'.txt'
return True
def testReadTXT(self):
def testRoachPath(self):
return True
def testReadTXT(self):
def testStartPointRow(self):
self.assertEquals([0,3,2,8],self.rdr.getStartPointRow())
def testRoachPath(self):
def testCountRoachNumber(self):
expectRoachNumber = 4
self.assertEquals(expectRoachNumber,self.rdr.getRoachNumber())
self.assertEquals(True,self.moveRoach.isMoveAllCell())
def getStartPointRow(self):
row = [0 for i in range(self.getRoachNumber())]
col = [0 for i in range(self.getRoachNumber())]
path = [[] for i in range(self.getRoachNumber())]
def getRoachNumber(self):
- ReverseAndAdd/신재동 . . . . 4 matches
numberStr = str(number)
reverseStr = ''
for i in range(len(numberStr)):
reverseStr += numberStr[len(numberStr) - i - 1]
return int(reverseStr)
numberStr = str(number)
for i in range(len(numberStr)):
if(numberStr[i] != numberStr[len(numberStr) - i - 1]):
return True
def testReverse(self):
self.assertEquals(True, raa.isPalindrome(12321))
self.assertEquals(True, raa.isPalindrome(1221))
def testReverseAndAdd(self):
print str(result[0]) + ' ' + str(result[1])
>>> int(str(n)[::-1]) #python 2.3이상
>>> int(''.join(reversed(str(d)))) #python 2.4이상
>>> def rev(d): return int(str(d)[::-1])
while True:
- Robbery/조현태 . . . . 4 matches
이전의 경우 도둑이 특정시간에 존재할 수 없는경우 "The robber has escaped." 를 출력했으나, 지금은 모든 시간의 움직임을 고려해서 존재하지 않으면 "The robber has escaped."를 출력하도록 수정하였다. (사실 소스상에선 그다지 바뀐건 없다..^^)
#include <iostream>
bool isSame = TRUE;
isEscaped = TRUE;
cout << "The robber has escaped." << endl;
cout << "Time step " << i + 1 << ": The robber has been at " << g_maxPoints[0][i].x + 1 << "," << g_maxPoints[0][i].y + 1 << "." << endl;
- SeminarHowToProgramIt/Pipe/vendingmachine.py . . . . 4 matches
def testPushButtonTrue(self):
def testRejectLever(self):
def testReset(self):
def testVerifyButtonTrue(self):
def testVerifyCoinTrue(self):
def testVerifyDispenserTrue(self):
- SibichiSeminar/TrustModel . . . . 4 matches
* 연구실에서 Trust Model에 대한 일을 하고있어서.
1. TrustModel에 대한 것과 별개로 프리젠테이션 한 것도 정말 중요한 내용이라 오늘 온 새내기분들이 잘 기억하고 계셨으면 좋겠습니다. 버전 관리의 필요성이나 유용함에 대해서는 직접 느껴봐야 와닿을거예요. ZeroPage에서 느낄 수 있는 기회를 마련하도록 하겠습니다. - [김수경]
* 세미나를 보면서, 와.. 저런걸 여기서(우리 코앞에 있는 연구실)도 구현하는구나.. 라는 생각이 들어서 뭐랄까, 진짜로 뭔가 연구하는데 다가간다는 느낌이 들었네요. TrustModel과 비슷한걸 만들고자 하는 사람들을 아는데, 저런식으로 아예 수치화 시키는게 역시 효율적인가.. 라는 생각도 들었구요, 후에 연구실(다른데인가?)에 들어간다면 저런걸 하는걸 보게/혹은 후에는 직접 하게될 수 있다는 사실에 나름 다시 감탄(?)했어요. ..아, 개발자와 기획자가 상상하는 것에서 상당히 그럴듯하다고 생각했어요.(창설에 이렇게 만들어달라고 하면 상당히 다른 모양이 탄생하곤 했지요) -[김태진]
* 세미나 주제가 참 놀라웠습니다. 페이스북을 이용해 관심사가 같은 사람들을 엮어주는 앱은 이미 나와있지만, 이건 일일히 사용자가 입력을 해야하는데, TrustModel은 프로그램이 알아서 다해주는것 같더군요. 지식이 얇아서 여기까지밖에 이해 못했습니다. 꺼이꺼이. 세미나 막간에 넣은 M-16인용 개발자-기획자-디자이너의... 뭐라고 해야하나요. 암튼 재밌게 잘 봤습니다. 삼위일체가 답이군요. 하하하하.. 정확한 커뮤니케이션은 정말 힘든것 같아요. 새내기 다운 새내기가 없다는 말씀을 자꾸 하셨는데.. 저 새내기 맞아요 ㅜㅠ C언어도 학교 오고나서야 처음으로 알았어요 ㅜㅠ - [고한종]
- Slurpys/강인수 . . . . 4 matches
function HasDorEAtFirst (const S: String): Boolean;
function HasGAtLast (const S: String; APos: Integer): Boolean;
function FindF (const S: String): Integer;
function IsSlump (const S: String): Boolean;
function IsSlimp (const S: String): Boolean;
function IsSlurpy (const S: String): Boolean;
function HasDorEAtFirst (const S: String): Boolean;
function HasGAtLast (const S: String; APos: Integer): Boolean;
function FindF (const S: String): Integer;
if S[2] <> 'F' then
if S[i] = 'F' then
FirstFind := True;
if FirstFind then
function IsSlump (const S: String): Boolean;
try
if Length(S) < 3 then
if HasDorEAtFirst (S) = False then
if FPos = -1 then
if HasGAtLast (S,FPos) then
Result := True;
- TheGrandDinner . . . . 4 matches
=== About [TheGrandDinner] ===
|| [조현태] || C++ || ??? || [TheGrandDinner/조현태] ||
|| [김상섭] || C++ || 많이..ㅡㅜ || [TheGrandDinner/김상섭] ||
|| [하기웅] || C++ || 생각은 많이. 코딩 시작해서는 1시간 || [TheGrandDinner/하기웅] ||
- TheKnightsOfTheRoundTable/문보창 . . . . 4 matches
// 10195 - The Knights of the Round Table
#include <iostream>
printf("The radius of the round table is: %.3f\n", r);
[TheKnightsOfTheRoundTable]
- TheKnightsOfTheRoundTable/허준수 . . . . 4 matches
#include <iostream>
cout << "The radius of the round table is: 0.000" <<endl;
cout << "The radius of the round table is: "
[TheKnightsOfTheRoundTable]
- ThePriestMathematician . . . . 4 matches
=== About [ThePriestMathematician] ===
|| 김상섭 || C++ || . || [ThePriestMathematician/김상섭] ||
|| 문보창 || C++ || 1차(실패), 2차(5시간) || [ThePriestMathematician/문보창] ||
|| 하기웅 || C++ || 2시간 30분 || [ThePriestMathematician/하기웅] ||
- TheTrip/Leonardong . . . . 4 matches
class TheTripTestCase(unittest.TestCase):
[TheTrip], [AOI]
- TheTrip/문보창 . . . . 4 matches
// no10137 - The Trip
#include <iostream>
[TheTrip] [문보창]
- TheTrip/이승한 . . . . 4 matches
= TheTrip/이승한 =
#include <iostream>
int travelN = 0; //여행 수
endSum[travelN] += ( aver - stu[i] ); //평균에서 stu[i]를 빼 결과값에 누적시킨다.
cout<<endSum[travelN]<<endl;
travelN++; // 총 여행 수를 증가시킨다.
for(i=0; i<travelN; i++){
[겨울과프로젝트] [AOI] [TheTrip]
- VMWare/OSImplementationTest . . . . 4 matches
[BITS 16] ; We need 16-bit intructions for Real
[ORG 0x7C00] ; The BIOS loads the boot sector into memory location
jnz reset_drive ; Try again if ah != 0
jnz reset_drive ; Try again if ah != 0
lgdt [gdt_desc] ; Load the GDT descriptor
mov eax, cr0 ; Copy the contents of CR0 into EAX
mov cr0, eax ; Copy the contents of EAX into CR0
[BITS 32] ; We now need 32-bit instructions
mov ds, ax ; Move a valid data segment into the data segment register
mov ss, ax ; Move a valid data segment into the stack segment register
mov esp, 090000h ; Move the stack pointer to 090000h
gdt: ; Address for the GDT
gdt_end: ; Used to calculate the size of the GDT
gdt_desc: ; The GDT descriptor
dd gdt ; Address of the GDT
times 510-($-$$) db 0 ; Fill up the file with zeros
/nologo /base:"0x10000" /entry:"start" /subsystem:console /incremental:no /pdb:"Release/testos.pdb" /map:"Release/testos.map" /machine:I386 /nodefaultlib /out:"testos.bin" /DRIVER /align:512 /FIXED
- VonNeumannAirport/남상협 . . . . 4 matches
def __init__(self,cityNum,trafficList, configureList):
self.trafficList = []
for trafficData in trafficList:
trafficOfCity = []
for traffic in trafficData[:-1]:
trafficOfCity.append(int(traffic))
self.trafficList.append(trafficOfCity)
def calculateTraffic(self):
trafficResult = []
traffic=0
for i in range(2,len(self.trafficList[departureGate-1]),2):
arrivalGate = self.trafficList[departureGate-1][i]
traffic+=(abs(configure[1].index(arrivalGate)-configure[0].index(departureGate))+1)*self.trafficList[departureGate-1][i+1]
trafficResult.append((confNum,traffic))
trafficResult.sort(lambda x,y: cmp(x[1],y[1]))
return trafficResult
trafficList = []
trafficList.append(Data.readline().split(" "))
airport = Airport(cityNum, trafficList, configureList)
def calculateAllTraffic(self):
- ZeroPage_200_OK . . . . 4 matches
* '''XHTML1.0 (Transitional / Strict)''' - http://www.w3.org/TR/2002/REC-xhtml1-20020801/
* HTML4.01 (Transitional / Frameset / Strict) - http://www.w3.org/TR/1999/REC-html401-19991224/
* '''CSS2.1 (with HTML4.01 / XHTML1.0)''' - http://www.w3.org/TR/CSS2/
* http://support.cloud9ide.com/entries/21068062-ide-file-saving-hangs ... 풋!
* HTTP(HyperText Transfer Protocol) 소개
* JSON.stringify() 메소드와 JSON.parse() 메소드를 이용해서 JSON의 Serialization <-> Deserialization이 가능하다.
* Trello 만들기
- radiohead4us/SQLPractice . . . . 4 matches
1. Find the names of all branches in the loan relation. (4.2.1 The select Clause)
2. Find all loan numbers for loans made at the Perryridge branch with loan amounts greater that $1200. (4.2.2 The where Clause)
3. For all customers who have a loan from the bank, find their names, loan numbers and loan amount. (4.2.3 The from Clause)
4. Find the customer names, loan numbers, and loan amounts for all loans at the Perryridge branch. (4.2.3 The from Clause)
5. For all customers who have a loan from the bank, find their names, loan numbers, and loan amount. (4.2.5 Tuple Variables)
6. Find the names of all branches that have assets greater than at least one branch located in Brooklyn. (4.2.5 Tuple Variables)
7. Find the names of all customers whose street address includes the substring 'Main'. (4.2.6 String Operations)
8. Find the average account balance at each branch. (4.4 Aggregate Functions)
9. Find the number of depositors for each branch. (4.4 Aggregate Functions)
10. Find the average balance for all accounts. (4.4 Aggregate Functions)
11. Find the average balance for each customer who lives in Harrison and has at least three accounts. (4.4 Aggregate Functions)
12. Find all customers who have both a loan and an account at the bank. (4.6.1 Set Membership)
13. Find all customers who have both an account and a loan at the Perryridge branch. (4.6.1 Set Membership)
14. Find the names of all branches that have assets greater than those of at least one branch located in Brooklyn. (4.6.2 Set Comparison)
15. Find the branch that has the highest average balance. (4.6.2 Set Comparison)
16. Find all customers who have both an account and a loan at the bank. (4.6.3 Test for Empty Relations)
17. Find all customers who have an account at all the branches located in Brooklyn. (4.6.3 Test for Empty Relations)
18. Find all customers who have at most one account at the Perryridge branch. (4.6.4 Test for the Absence of Duplicate Tuples)
19. Find all customers who have at least two accounts at the Perryridge branch. (4.6.4 Test for the Absence of Duplicate Tuples)
- 기술적인의미에서의ZeroPage . . . . 4 matches
extracted from ZeroPage
The zero page instructions allow for shorter code and excution times by only feching the
second byte of the instruction and assumming a zero high address byte.
Careful use of the zero page can result in significant increase in code efficient.
The zero page is the memory address page at the absolute beginning of a computer's address space (the lowermost page, covered by the memory address range 0 ... page size?1).
In early computers, including the PDP-8, the zero page had a special fast addressing mode, which facilitated its use for temporary storage of data and compensated for the relative shortage of CPU registers. The PDP-8 had only one register, so zero page addressing was essential.
Possibly unimaginable by computer users after the 1980s, the RAM of a computer used to be faster than or as fast as the CPU during the 1970s. Thus it made sense to have few registers and use the main memory as substitutes. Since each memory location within the zero page of a 16-bit address bus computer may be addressed by a single byte, it was faster, in 8-bit data bus machines, to access such a location rather than a non-zero page one.
For example, the MOS Technology 6502 has only six non-general purpose registers. As a result, it used the zero page extensively. Many instructions are coded differently for zero page and non-zero page addresses:
예를 들자면 the MOS Technology 6502 는 오직 6개의 non-general 목적을 가진 레지스터를 가지고 있었다. 결과적으로 이는 것은 제로페이지라는 개념을 폭넓게 사용하였다. 많은 명령어들이 제로페이지와 제로페이지가 아닌 어드레씽을 위해서 다르게 쓰여졌다.
The above two instructions both do the same thing; they load the value of $00 into the A register. However, the first instruction is only two bytes long and also faster than the second instruction. Unlike today's RISC processors, the 6502's instructions can be from one byte to three bytes long.
상기의 2개의 명령어 모두 동일한 일을 한다; 이것들은 A레지스터에 $00라는 값을 로드한다. 하지만 첫번째 명령어는 단지 2바이트길이 이고 두번째 명령어보다 더욱 빠르다. 오늘날의 RISC 프로세서와 다르게 the 6502의 명령어들은 1바이트에서 부터 3바이트의 길이가 되는 것이 가능하다.
Zero page addressing now has mostly historical significance, since the developments in integrated circuit technology have made adding more registers to a CPU less expensive, and have made CPU operations much faster than RAM accesses. Some computer architectures still reserve the beginning of address space for other purposes, though; for instance, the Intel x86 systems reserve the first 512 words of address space for the interrupt table.
- 논문번역/2012년스터디/김태진 . . . . 4 matches
완전한 영어 문장들로 학습/인식을 위한 데이터를 제공했는데, 각각은 Lancaster-Oslo/Bergen corpus에 기초한다. 글쓴이에 상관없는 형태와 마찬가지로 다수의 저자에 의한 실험은 the Institute of Informatics and Applied Mathe- matics (IAM)에서 수집한 손글씨 형태를 사용했다. 전체 데이터는 다양한 텍스트 영역들을 가지고 있고,500명보다 많은 글쓴이들이 쓴 1200개보다 많은 글씨를 가지고 있다. 우리는 250명의 글쓴이가 쓴 글쓴이-독립적인 실험에서 만들어진 카테고리들의 형태를 사용하고, 6명의 글쓴이가 쓴 c03 형태로 여러 글쓴이 모드를 적용해본다.
주어진 손글씨 문서에 대한 이미지에 대해 처음 전체 이미지를 삐뚤게 쓴 것은(?) 글쓰는 것에 대한 지속적인 "drift"(흐름) - 지속적으로 계속되는 것이거나 스캔하는 동안 부정확하게 놓여진 것(가지런하게 두지 않아서..)에 의한 오류들을 수정하기 위해 고쳤다. 그래서, 그 이미지는 2진화된 이미지를 수직 밀집 히스토그램에서 최소한의 엔트로피가 될때까지 반복한다. 이러한 전처리는 IAM 데이터베이스에 대한 공식을 사용하지 않았는데, 글쓴이들이 스캔하는 동한 정확하게 ???????because the writers were asked to use rulers on a second sheet put below the form and the formulars itself are aligned precisely during scanning.
더 많은 문서 작업을 위해, 개인의 손글씨 각 줄들을 추출했다. 이것은 글씨들을 핵심 위치들 사이로 이미지를 쪼개는 것으로 할 수 있었다. 핵심 위치란, 글씨의 아래위 선사이의 영역과 같은 것인데, 핵심 위치에 존재하는 줄에서 필요한 전체 픽셀들의 최소 갯수를 말하는 한계점을 응용하여(?)찾을 수 있다. 이러한 한계점은 2진화된 손글씨 영역에 대한 수직적인 밀집 히스토그램(the horizontal density histogram of the binarized handwriting-area)을 사용한 Otsu method를 사용하여 자동적으로 만들 수 있다. 검은색 픽셀들의 갯수는 수평적 투영 히스토그램에 각각의 줄을 합한 갯수이고, 그 이미지는 이 히스토그램의 최소화를 따라 핵심 위치들 사이로 조각 내었다.
글쓰는 스타일이 때로 한줄 내에서 중요하게(?) 바뀐다는 관측에 고무되어서, 우리는 각 손글씨 줄들을 각각 수직적인 위치, 기울어짐, slant에서 수정했다. 그래서 각각의 줄은 문서의 부분 사이에 공백으로 찾아 쪼개었다. 한계점은 일반화 요소들을 통했을때에 계산하기에 너무 짧은 부분들을 피하기 위해 사용했다. 반면에 수직적인 위치와 기울어진 것은 [15]에서 묘사된 방법과 비슷한 선형적 regresion?을 사용한 기준선 추정 방법으로 고쳤고, slant 각도에 대한 계산은 모서리의 방향에 기초하여 고쳤다. 그렇게 이미지를 이진화했고 수직적인 변화를 추출하여 consid- ering that only vertical strokes are decisive for slant estima- tion. Canny 모서리 감지는 각 히스토그램에서 계산된 모서리 방향 데이터를 얻기위해 사용했다. 그 히스토그램의 의미는 slant 각도를 사용하는 것이다.
Linear Independence of Matrix Columns 행렬 행에 대한 선형 독립성
Theorem 7
== 1.8 Linear Transformations ==
Matrix Transformations 행렬 변환
Linear Transformations 선형 변환
- 데블스캠프2005/금요일/OneCard . . . . 4 matches
def __str__(self):
allCards += str(card) + ', '
while True:
while True:
removed = True
return True
- 데블스캠프2009/목요일/연습문제/MFC/서민관 . . . . 4 matches
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
DDX_Control(pDX, IDC_BUTTON1, m_1);
// IDM_ABOUTBOX must be in the system command range.
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
GetClientRect(&rect);
// Draw the icon
// The system calls this to obtain the cursor to display while the user drags
- 임인택/내손을거친책들 . . . . 4 matches
* Introduction to Functional Programming using Haskell
* The Haskell School of Expression
* An introduction to functional programming through lambda calculus
* TCP/IP Illustrated Vol. 1
* IPv6, The New Internet Protocol
* TheElementsOfStyle + TheElementsOfProgrammingStyle
- 임인택/삽질 . . . . 4 matches
void someFunc(Tree **t1, Tree **t2); // 요런 함수가 있었을 때.
Tree **t1, **t2;
Tree *t1, *t2;
- 정모/2012.8.29 . . . . 4 matches
== Trello ==
* ZP에서 Trello를 사용하고 있습니다. 하단에 아이디를 적어주시면 추가해 드립니다.
* intra.zeropage.org
* Trello for ZeroPage Systems
* 정모에서도 잠깐 이야기한 것처럼 ZeroPage에서 운영하는 서버 및 각종 장치와 도메인 네임, 이에 필요한 설정과 소프트웨어, 그리고 그와 관련한 이슈를 다루는 공간이 Trello에 있는 게 좋을 것 같습니다. 게시판이나 위키에 비해 ZeroPage 웹사이트가 비정상 동작할 때도 사용할 수 있고, 전체 상황이 한 눈에 파악되면서 카드 별로 상태 관리가 간편하며, 모바일(iOS, Android)에서 notification push를 받을 수 있기 때문에 실시간 커뮤니케이션과 이슈 추적 및 관리에 유리합니다.
* 한 가지 방법은 [https://trello.com/board/4f772fd6de39daf31f04799f ZeroPage Board]의 List나 Label로 관리하는 방법이고, 또 한 가지 방법은 [https://trello.com/zeropage ZeroPage Organization]의 Board로 따로 관리하는 방법입니다. 후자를 선택할 경우 ZeroPage Board가 덜 복잡해지는 대신 따로 Member를 추가해야 한다는 단점이 있습니다. 의견주세요. - [변형진]
- 황현/Objective-P . . . . 4 matches
+(int)tellMeTheTruth {
GNAssert()의 경우, 두 번째 인자로 @"문자열"을 받지만, 결과적으로는 컴파일 이후 GNString으로 변해야 한다.
public static function tellMeTheTruth() {
if($_objp_type_check===true) {
GNAssert(false, new GNString('뭔가 이상하지 않아?'));
$myClass->doSomeTaskWithSomething(42, true); // Compiler automatically adds last argument!
- 2학기파이선스터디/클라이언트 . . . . 3 matches
self.show.insert(END, str(i))
self.list.insert(END, str(i))
#for input a string(?)
self.edit = Entry(master)
self.isinEntry = True
## csock = socket(AF_INET, SOCK_STREAM)
ID = login.askstring(title = "Login", prompt="Enter ID", parent = root)
#for input a string
self.edit = Entry(aMaster)
self.show.insert(END, "< " + str(aUser.ID) + " > : " + str(aUser.message))
self.isinEntry = True
csock = socket(AF_INET, SOCK_STREAM)
try:
ID = login.askstring(title = "Login", prompt="Enter ID", parent = root)
while True:
- ACM_ICPC/2013년스터디 . . . . 3 matches
* dynamic programming - [http://211.228.163.31/30stair/eating_together/eating_together.php?pname=eating_together 끼리끼리]
* 퀵 정렬,이진검색,parametric search - [http://211.228.163.31/30stair/guessing_game/guessing_game.php?pname=guessing_game&stair=10 숫자 추측하기], [http://211.228.163.31/30stair/sort/sort.php?pname=sort&stair=10 세 값의 정렬], [http://211.228.163.31/30stair/subsequence/subsequence.php?pname=subsequence&stair=10 부분 구간], [http://211.228.163.31/30stair/drying/drying.php?pname=drying&stair=10 건조], [http://211.228.163.31/30stair/aggressive/aggressive.php?pname=aggressive&stair=10 공격적인 소]
* graph, dfs - [http://211.228.163.31/30stair/danji/danji.php?pname=danji 단지 번호 붙이기], [http://211.228.163.31/30stair/orders/orders.php?pname=orders orders], [http://211.228.163.31/30stair/bugslife/bugslife.php?pname=bugslife 짝 짓기], [http://211.228.163.31/30stair/sprime/sprime.php?pname=sprime 슈퍼 소수], [http://211.228.163.31/30stair/snail_trails/snail_trails.php?pname=snail_trails 달팽이]
* BackTracking문제 1문제
* Binary Indexed Tree
* [http://stackoverflow.com/questions/2631726/how-to-determine-the-longest-increasing-subsequence-using-dynamic-programming Time Complexity O(n log n) 의 Up Sequence]
* [http://211.228.163.31/30stair/bridging/bridging.php?pname=bridging&stair=15 bridging - binary indexed tree를 이용한 Up Sequence 문제]
* Consonants, Pogo, The Great Wall
* Strongly Connected Component(SCC)
* Tarjan's strongly connected components algorithm - [http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm 링크]
* 위상정렬, critical path에 대해 공부 및 코딩 - 코드 및 해설은 Fundamental of DataStructure를 참고하자.
then 겹침
- CCNA/2013스터디 . . . . 3 matches
|| 4계층 || 트랜스포트 계층 (Transport Layer) || 출발지와 목적지간의 연결 수립 ||
* TCP (Transmission Control Protocol)과 UDP (User Datagram Protocol)이 주요 프로토콜
* 전송기(Transmitter)와 수신기(Receiver)를 하나로 합친 장비
* 상위 계층: NCP(Network Control Protocol) 데이터의 인캡슐레이션을 규정
* 하위 계층: LCP(Link Control Protocol) WAN 구간의 데이터 링크 연결과 제어
|| Flag || Address || Control || Protocol || Data || FCS ||
* Control: 프레임 제어
* 링크는 언제나 다운 상태 -> 링크 업 -> Establishing -> LCP 상태 Open -> Authenticating -> 인증 성공 -> 링크 업 (실패하면 다운 -> Terminating -> 재 접속)
|| 7 || Router_Aconfig-if)#ppp authentication chap || 암호화(인증) 기능 ||
* debug PPP authentication: PPP의 인증과 관련된 PAP, CHAP
|| Flag(1) || Address(1) || Control(1) || Data(variable) || FCS(1) || Flag(1) ||
Control =
- NT2 : 필요에 따라서 OSI 3계층까지의 기능을 제공하는 장비. 스위칭과 concentration 등의 일을 수행.
- CheckTheCheck . . . . 3 matches
=== About [CheckTheCheck] ===
|| 문보창 || C++ || . || [CheckTheCheck/문보창] ||
|| 곽세환 || C++ || . || [CheckTheCheck/곽세환] ||
- CivaProject . . . . 3 matches
#include <boost/smart_ptr.hpp>
using boost::shared_ptr;
typedef shared_ptr<Serializable> Serializable_Handle;
using boost::shared_ptr;
//#define Array_Handle(ElementType) boost::shared_ptr< civa::lang::Array<ElementType> >
//template<typename ElementType> typedef shared_ptr< Array<ElementType> > Array_Handle;
typedef shared_ptr< Array<char> > charArray_Handle;
typedef shared_ptr<CharSequence> CharSequence_Handle;
typedef shared_ptr<Comparable> Comparable_Handle;
typedef shared_ptr<Object> Object_Handle;
class String;
typedef shared_ptr<String> String_Handle;
virtual String_Handle toString() = NULL;
virtual String_Handle toString() {
//return getClass().getName() + "@" + Integer.toHexString(hashCode());
== civa.lang.String ==
#ifndef CIVA_LANG_STRING_INCLUDED
#define CIVA_LANG_STRING_INCLUDED
class String
/** The value is used for character storage. */
- ClassifyByAnagram/재동 . . . . 3 matches
self.assertEquals(expect, self.anagram.getSortWordString())
expect1 = True
self.wordString = word
for i in range(len(self.wordString)):
self.wordList.append(self.wordString[i])
if self.anagramList[i][0] == self.getSortWordString():
return True
if self.isWordListInAnagramList() is True:
self.anagramList[self.index].append(self.wordString)
self.anagramList.append([self.getSortWordString()])
self.anagramList[len(self.anagramList)-1].append(self.wordString)
def getSortWordString(self):
tempString = ''
tempString += self.wordList[i]
return tempString
while str:
str = raw_input()
anagram.inputWord(str)
- Code/RPGMaker . . . . 3 matches
Util.LOGD("center: " + plane.getTransformedCenter());
m_cam.lookAt(plane.getTransformedCenter());
SimpleVector curPosition = m_polygon.getTransformedCenter();
m_polygon.translate(toCam);
Util.LOGD("translate to " + toCam);
attr_accessor :xsize
attr_accessor :ysize
attr_accessor :zsize
attr_reader :object
return @object.getRed
- CompleteTreeLabeling . . . . 3 matches
=== About [CompleteTreeLabeling] ===
모든 잎(leaf)의 깊이가 같고 모든 내부 노드의 차수(degree)가 k인(즉 분기계수(branching factor)가 k인) 트리를 k진 완전 트리(complete k-ary tree)라고 한다. 그런 트리에 대해서는 노드의 개수를 쉽게 결정할 수 있다.
|| [조현태] || C || . || [CompleteTreeLabeling/조현태] ||
|| [하기웅] || C++ || 1시간 30분 || [CompleteTreeLabeling/하기웅] ||
- CubicSpline/1002 . . . . 3 matches
* NumericalAnalysisClass 에서의 Tri-Diagonal Matrix Problem 을 LU Decomposition 으로 해결하는 방법.
* ["CubicSpline/1002/GraphPanel.py"] - Graph 그리는 윈도우 부분 Control
* ["CubicSpline/1002/TriDiagonal.py"] - Tri-Diagonal Matrix 풀기 모듈
* ["CubicSpline/1002/test_tridiagonal.py"]
- CubicSpline/1002/NaCurves.py . . . . 3 matches
import TriDiagonal
def __init__(self, aControlPointListX, aPieceSize):
self.piecewiseLagrange = PiecewiseLagrange(aControlPointListX, aPieceSize)
def __init__(self, aControlPointListX):
self.spline = Spline(aControlPointListX)
self.controlPointListX = aListX
self.controlPointListY = self._makeControlPointListY()
def _makeControlPointListY(self):
controlPointListY = []
for x in self.controlPointListX:
controlPointListY.append(givenFunction(x))
return controlPointListY
def getControlPointListX(self):
return self.controlPointListX
def getControlPointListY(self):
return self.controlPointListY
for j in range(0, len(self.controlPointListX)):
for i in range(0, len(self.controlPointListX)):
return self.controlPointListX[i]
return self.controlPointListY[i]
- ErdosNumbers/차영권 . . . . 3 matches
#include <iostream.h>
#include <cstring>
struct Author
bool isThere(Author *p, int n);
if (strcmp(author[i][j].name, "Erdos, P.") == 0)
if (isThere(author[i], saveBound[i]))
if (strcmp(search[k], author[i][j].name) == 0)
if (strcmp(author[i].name, name) == 0)
bool isThere(Author *author, int n)
return true;
- FocusOnFundamentals . . . . 3 matches
When I began my EE education, I was surprised to find that my well-worn copy of the "RCA
Tube Manual" was of no use. None of my lecturers extolled the virtues of a particular tube or type
of tube. When I asked why, I was told that the devices and technologies that were popular then
would be of no interest in a decade. Instead, I learned fundamental physics, mathematics, and a
Clearly, practical experience is essential in every engineering education; it helps the students to
learn how to apply what they have been taught. I did learn a lot about the technology of that day in
laboratory assignments, in my hobby (amateur radio), as well as in summer jobs, but the lectures
Readers familiar with the software field will note that today's "important" topics are not
The many good ideas that underlie these approaches and tools must be taught. Laboratory exercises
and other projects should provide students with the opportunity to use the most popular tools and
to experiment with some new ones. However, we must remember that these topics are today's
replacements for earlier fads and panaceas and will themselves be replaced. It is the responsibility
the fundamentals that will be valid and useful over that period and emphasise those principles in
the lectures. Many programmes lose sight of the fact that learning a particular system or language
--David Parnas from [http://www.cs.utexas.edu/users/almstrum/classes/cs373/fall98/parnas-crl361.pdf Software Engineering Programmes Are Not Computer Science Programmes]
Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them.
학생들은 일반적으로 가장 많이 이용될 것 같은 언어들 (FORTRAN 이나 C)을 가르치기를 요구한다. 이는 잘못이다. 훌륭하게 학습받은 학생들 (즉, 바꿔 말하면, clean language(?)를 가르침받은 학생)은 쉽게 언어를 선택할 수 있고, 더 좋은 위치에 있거나, 그들이 부딪치게 되는 해당 언어들의 잘못된 특징들에 대해 더 잘 인식한다.
A: Most students who are studying computer science really want to study software engineering but they don't have that choice. There are very few programs that are designed as engineering programs but specialize in software.
I would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be out-of-date before they graduate. Fundamental ideas never get out of date. However, what worries me about what I just said is that some people would think of Turing machines and Goedel's theorem as fundamentals. I think those things are fundamental but they are also nearly irrelevant. I think there are fundamental design principles, for example structured programming principles, the good ideas in "Object Oriented" programming, etc.
- Gof/Visitor . . . . 3 matches
object structure 의 element들에 수행될 operation 을 표현한다. [Visitor]는 해당 operation이 수행되는 element의 [class]에 대한 변화 없이 새로운 operation을 정의할 수 있도록 해준다.
[컴파일러]가 abstact syntax tree로 프로그램을 표현한다고 하자. 컴파일러는 모든 변수들이 정의가 되어있는 지를 검사하는 것과 같은 '정적인 의미' 분석을 위해 abstract syntax tree에 대해 operation을 수행할 필요가 있을 것이다. 컴파일러는 또한 code 변환을 할 필요가 있다. 또한 컴파일러는 type-checking, code optimization, flow analysis 와 해당 변수가 이용되기 전 선언되었는지 등의 여부를 검사하기 위해서 해당 operations들을 수행할 필요가 있다. 더 나아가 우리는 pretty-printing, program restructuring, code instrumentation, 그리고 프로그램의 다양한 기준들에 대한 계산을 하기 위해 abstract syntax tree를 이용할 것이다.
우리는 각각의 클래스들로부터 관련된 operation들을 패키징화 하고, traverse 될 (tree 의 각 node들을 이동) abstract syntax tree의 element들에게 인자로 넘겨줄 수 있다. 이를 visitor라고 한다. element가 visitor를 'accepts' 할때 element는 element의 클래스를 인코딩할 visitor에게 request를 보낸다. 이 request 또한 해당 element를 인자로 포함하고 있다. 그러면 visitor는 해당 element에 대한 operation을 수행할 것이다.
예를든다면, visitor를 이용하지 않는 컴파일러는 컴파일러의 abstact syntax tree의 TypeCheck operation을 호출함으로서 type-check 을 수행할 것이다. 각각의 node들은 node들이 가지고 있는 TypeCheck를 호출함으로써 TypeCheck를 구현할 것이다. (앞의 class diagram 참조). 만일 visitor를 이용한다면, TypeCheckingVisior 객체를 만든 뒤, TypeCheckingVisitor 객체를 인자로 넘겨주면서 abstract syntax tree의 Accept operation을 호출할 것이다. 각각의 node들은 visitor를 도로 호출함으로써 Accept를 구현할 것이다 (예를 들어, assignment node의 경우 visitor의 VisitAssignment operation을 호출할 것이고, varible reference는 VisitVaribleReference를 호출할 것이다.) AssignmentNode 클래스의 TypeCheck operation은 이제 TypeCheckingVisitor의 VisitAssignment operation으로 대체될 것이다.
type-checking 의 기능을 넘어 일반적인 visitor를 만들기 위해서는 abstract syntax tree의 모든 visitor들을 위한 abstract parent class인 NodeVisitor가 필요하다. NodeVisitor는 각 node class들에 있는 operation들을 정의해야 한다. 해당 프로그램의 기준 등을 계산하기 원하는 application은 node class 에 application-specific한 코드를 추가할 필요 없이, 그냥 NodeVisitor에 대한 새로운 subclass를 정의하면 된다. VisitorPattern은 해당 Visitor 와 연관된 부분에서 컴파일된 구문들을 위한 operation들을 캡슐화한다.
== Structure ==
- declares a Visit operations for each class of ConcreteElement in the object structure. The operation's name and signature identifies the class that sends the Visit request to the visitor. That lets the visitor determine the concrete class of the element being visited. Then the visitor can access the element directly through its particular interface.
- implements each operation declared by Visitor. Each operation implements a fragment of the algorithm defined for the corresponding class of object in the structure. ConcreteVisitor provides the context for the algorithm and stores its local state. This state often accumulates result during the traversal of the structure.
* ObjectStructure (Program)
- may provide a high-level interface to allow the visitor to visit its elements. [[BR]]
- may either be a composite (See CompositePattern) or a collection such as a list or a set. [[BR]]
// and so on for other concrete elements
virtual void VisitrChassis (Chassis*);
// and so on for other concrete subclasses of Equipment
visitRepeat : repeatExp
| finalState tStream |
[:stream | tStream := stream copy.
(tStream nextAvailable:
ifTrue: [finalState add: tStream]
- GofStructureDiagramConsideredHarmful . . . . 3 matches
* 원문 : http://www.industriallogic.com/pulse/20001001.html
There's a mistake that's repeated throughout the Design Patterns book, and unfortunately, the mistake is being repeated by new patterns authors who ape the GoF style.
Each GoF pattern has a section called "Structure" that contains an OMT (or for more recent works, UML) diagram. This "Structure" section title is misleading because it suggests that there is only one Structure of a Pattern, while in fact there are many structures and ways to implement each Pattern.
But inexperienced Patterns students and users don't know this. They read the Patterns literature too quickly, often thinking that they understand a Pattern merely by understanding it's single "Structure" diagram. This is a shortcoming of the GoF Form, one which I believe is harmful to readers.
What about all those important and subtle Implementation notes that are included with each GoF Pattern? Don't those notes make it clear that a Pattern can be implemented in many ways? Answer: No, because many folks never even read the Implementation notes. They much prefer the nice, neat Structure diagrams, because they usually only take up a third of a page, and you don't have to read and think a lot to understand them.
GoF 책의 각 Pattern 마다 첨부되어 있는 구현에 대한 매우 중요하고 민감한 해설들은 어떠한가? 이 해설들을 통해서 Pattern이 여러 방법으로 구현될 수 있다는 사실을 알 수는 없을까? 알 수 없을 것이다. 왜냐하면 많은 독자들이 아예 구현에 대한 해설 부분을 읽지도 않고 넘어가기 때문이다. 그들은 보통 간략하고 훌륭하게 그려진 Structure diagram을 더 선호하는데, 그 이유는 보통 Diagram에 대한 내용이 세 페이지 정도 분량 밖에 되지 않을 뿐더러 이것을 이해하기 위해 많은 시간동안 고민을 할 필요도 없기 때문이다.
Diagrams are seductive, especially to engineers. Diagrams communicate a great deal in a small amount of space. But in the case of the GoF Structure Diagrams, the picture doesn't say enough. It is far more important to convey to readers that a Pattern has numerous Structures, and can be implemented in numerous ways.
엔지니어들에게 있어서 Diagram은 정말 뿌리치기 힘든 유혹이다. 하지만 Gof의 Structure diagram의 경우엔 충분히 많은 내용을 말해줄 수 없다. Pattern들이 다양한 Structure를 가질 수 있으며, 다양하게 구현될 수 있다는 것을 독자들에게 알려주기엔 턱없이 부족하다.
I routinely ask folks to add the word "SAMPLE" to each GoF Structure diagram in the Design Patterns book. In the future, I'd much prefer to see sketches of numerous structures for each Pattern, so readers can quickly understand that there isn't just one way to implement a Pattern. But if an author will take that step, I'd suggest going even further: loose the GoF style altogether and communicate via a pattern language, rich with diagrams, strong language, code and stories.
- HighResolutionTimer . . . . 3 matches
If a high-resolution performance counter exists on the system, the QueryPerformanceFrequency function can be used to express the frequency, in counts per second. The value of the count is processor dependent. On some processors, for example, the count might be the cycle rate of the processor clock.
The '''QueryPerformanceCounter''' function retrieves the current value of the high-resolution performance counter (if one exists on the system). By calling this function at the beginning and end of a section of code, an application essentially uses the counter as a high-resolution timer. For example, suppose that '''QueryPerformanceFrequency''' indicates that the frequency of the high-resolution performance counter is 50,000 counts per second. If the application calls '''QueryPerformanceCounter''' immediately before and immediately after the section of code to be timed, the counter values might be 1500 counts and 3500 counts, respectively. These values would indicate that .04 seconds (2000 counts) elapsed while the code executed.
- HowToBuildConceptMap . . . . 3 matches
1. Identify a focus question that addresses the problem, issues, or knowledge domain you wish to map. Guided by this question, identify 10 to 20 concepts that are pertinent to the question and list these. Some people find it helpful to write the concept labels on separate cards or Post-its so taht they can be moved around. If you work with computer software for mapping, produce a list of concepts on your computer. Concept labels should be a single word, or at most two or three words.
* Rank order the concepts by placing the broadest and most inclusive idea at the top of the map. It is sometimes difficult to identify the boradest, most inclusive concept. It is helpful to reflect on your focus question to help decide the ranking of the concepts. Sometimes this process leads to modification of the focus question or writing a new focus question.
* Work down the list and add more concepts as needed.
* Begin to build your map by placing the most inclusive, most general concept(s) at the top. Usually there will be only one, two, or three most general concepts at the top of the map.
* Next selet the two, three or four suboncepts to place under each general concept. Avoid placing more than three or four concepts under any other concept. If there seem to be six or eight concepts that belong under a major concept or subconcept, it is usually possible to identifiy some appropriate concept of intermediate inclusiveness, thus creating another level of hierarchy in your map.
* Connect the concepts by lines. Label the lines with one or a few linking words. The linking words should define the relationship between the two concepts so that it reads as a valid statement or proposition. The connection creates meaning. When you hierarchically link together a large number of related ideas, you can see the structure of meaning for a given subject domain.
* Rework the structure of your map, which may include adding, subtracting, or changing superordinate concepts. You may need to do this reworking several times, and in fact this process can go on idenfinitely as you gain new knowledge or new insights. This is where Post-its are helpful, or better still, computer software for creating maps.
* Look for crosslinks between concepts in different sections of the map and label these lines. Crosslinks can often help to see new, creative relationships in the knowledge domain.
* Specific examples of concepts can be attached to the concept labels (e.g., golden retriver is a specific example of a dog breed).
* Concept maps could be made in many different forms for the same set of concepts. There is no one way to draw a concept map. As your understanding of relationships between concepts changes, so will your maps.
- InternalLinkage . . . . 3 matches
[MoreEffectiveC++]의 Item 26 'Limiting the number of objects of a class. 를 보면 다음과 같은 부분이 있다.
The second subtlety has to do with the interaction of inlining and static objects inside functions. Look again at the code for the non-member version of thePrinter: ¤ Item M26, P17
Printer& thePrinter()
Except for the first time through this function (when p must be constructed), this is a one-line function — it consists entirely of the statement "return p;". If ever there were a good candidate for inlining, this function would certainly seem to be the one. Yet it's not declared inline. Why not? ¤ Item M26, P18
Consider for a moment why you'd declare an object to be static. It's usually because you want only a single copy of that object, right? Now consider what inline means. Conceptually, it means compilers should replace each call to the function with a copy of the function body, but for non-member functions, it also means something else. It means the functions in question have internal linkage.
You don't ordinarily need to worry about such linguistic mumbo jumbo, but there is one thing you must remember: functions with internal linkage may be duplicated within a program (i.e., the object code for the program may contain more than one copy of each function with internal linkage), and this duplication includes static objects contained within the functions. The result? If you create an inline non-member function containing a local static object, you may end up with more than one copy of the static object in your program! So don't create inline non-member functions that contain local static data.(9)
9) In July 1996, the °ISO/ANSI standardization committee changed the default linkage of inline functions to external, so the problem I describe here has been eliminated, at least on paper. Your compilers may not yet be in accord with °the standard, however, so your best bet is still to shy away from inline functions with static data. ¤ Item M26, P61
Object& theObject() // 이 함수는 클래스의 정적 메소드나
Object& theObject()
와 같은 의미가 된다. 이것은 inline 으로 선언할거리가 될것 같기도 하지만 inline 으로 선언되지 않았다. 왜일까? (Except for the first time through this function (when p must be constructed), this is a one-line function — it consists entirely of the statement "return p;". If ever there were a good candidate for inlining, this function would certainly seem to be the one. Yet it's not declared inline. Why not? )
그것은 바로 InternalLinkage 때문이다. InternalLinkage 란, 컴파일 단위(translation unit -> Object Code로 생각해 보자) 내에서 객체나 함수의 이름이 공유되는 방식을 일컫는다. 즉, 객체의 이름이나 함수의 이름은 주어진 컴파일 단위 안에서만 의미를 가진다.
예를들어, 함수 f가 InternalLinkage를 가지면, 목적코드(Translation Unit) a.obj 에 들어있는 함수 f와 목적코드 c.obj 에 들어있는 함수 f는 동일한 코드임에도 별개의 함수로 인식되어 중복된 코드가 생성된다.
- JTDStudy/첫번째과제/정현 . . . . 3 matches
Extractor extractor;
extractor= new Extractor();
baseBall= new BaseBall(beholder, extractor);
public void testStrikeCount() {
assertEquals(0, beholder.getStrikeCount("000"));
assertEquals(1, beholder.getStrikeCount("001"));
assertEquals(2, beholder.getStrikeCount("110"));
String number= extractor.getRandomBall();
assertTrue(baseBall.duplicated("101"));
assertTrue(baseBall.duplicated("122"));
BaseBall game= new BaseBall(beholder, extractor);
assertEquals(1, game.getStrike());
assertTrue(game.isGameOver());
public static void main(String[] args) {
BaseBall baseBall= new BaseBall(new Beholder(), new Extractor());
String number= input.nextLine();
System.out.print(baseBall.getStrike() + " strike, ");
String playerInput;
private Extractor extractor;
private String number;
- JavaScript/2011년스터디/김수경 . . . . 3 matches
// Call the inherited version of dance()
return true;
var p = new Person(true);
p.dance(); // => true
n.swingSword(); // => true
// Should all be true
// The base Class implementation (does nothing)
// Instantiate a base class (but only create the instance,
// don't run the init constructor)
initializing = true;
// Copy the properties over onto the new prototype
// Add a new ._super() method that is the same method
// but on the super-class
// The method only need to be bound temporarily, so we
// The dummy class constructor
// All construction is actually done in the init method
// Populate our constructed prototype object
// Enforce the constructor to be what we expect
Class.constructor = Class;
var p = new Person(true);
- LIB_3 . . . . 3 matches
/* Init The Scheduler List
ready_tcb_ptr = 0;
suspend_tcb_ptr = 0;
free_tcb_ptr = LIB_MAX_HEAP;
free_tcb_ptr--;
Temp = pFreeTCB[free_tcb_ptr];
pFreeTCB[free_tcb_ptr] = NULL;
/* Create The Task
// Init The Stack
pReady_heap[ready_tcb_ptr] = LIB_free_TCB();
// Init the TCB by argument <----- 함수에서 얻은 변수들로... 초기화...ok???
pReady_heap[ready_tcb_ptr]->Task_Name = task_name;
pReady_heap[ready_tcb_ptr]->delay = 0;
pReady_heap[ready_tcb_ptr]->priority = priority;
pReady_heap[ready_tcb_ptr]->StackSeg = (INT16U)FP_SEG(Stack);
pReady_heap[ready_tcb_ptr]->StackOff = INT16U(Stack) - 28;
pReady_heap[ready_tcb_ptr]->Stack = Stack;
int temp_count = ready_tcb_ptr;
ready_tcb_ptr++;
if ( pReady_heap[temp_count]->priority > pReady_heap[tree_parent(temp_count)]->priority ){
- Linux/필수명령어/용법 . . . . 3 matches
The Oct 1 15:57:23 KST 1996
- $ echo "The RedHat !"
- The RedHat !
-5) SIGTRAP 6) SIGIOT 7) SIGBUS 8) SIGPPE
- $ ln project theplan ,,두 개의 이름은 같은 문서를 의미한다.
-c : 커널 task_structure로 부터 명령 이름을 보여준다.
- then
- echo "It's changed to the blade.room"
tr
- tr [ -cd ] 변경할 문자 변경문자
- $ tr -d "\015\032" readme.txt readable
true
- true
- while true
$ which tetries
지정된 path 안에서 tetries 프로그램을 찾는다.
- Memo . . . . 3 matches
http://www.freenetpages.co.uk/hp/alan.gauld/tutintro.htm
http://search.costcentral.com/search?p=Q&srid=S9%2d3&lbc=costcentral&ts=custom&w=ThinkPad&uid=975848396&method=and&isort=price&srt=150
[http://kin.naver.com/knowhow/entry.php?eid=sXanZUDMReh3tKhs1VJ30OlMQ3piSgKm 마지막 사진의 진실은...?]
RFC 792 Internet Control Message Protocol
RFC 793 Transmission Control Protocol
typedef struct iphdr
typedef struct port
struct sockaddr_in SockAddr;
struct sockaddr_in From;
struct sockaddr_in SockAddr;
try
htpp://zeropage.org/trac/leonardong/
while True:
try:
self.conn.send("I'm the Boss")
SOCKADDR_IN server_addr; // 네트워크의 정보를 담을 structure 생성.
server_sock = socket(AF_INET, SOCK_STREAM, 0);
// struct sockaddr_in -> SOCKADDR_IN
(struct sockaddr *)&server_addr,
sizeof(struct sockaddr)) == -1 )
- MoinMoinTodo . . . . 3 matches
This is a list of things that are to be implemented. If you miss a feature, have a neat idea or any other suggestion, please put it on MoinMoinIdeas.
To discuss the merit of the planned extensions, or new features from MoinMoinIdeas, please use MoinMoinDiscussion.
A list of things that are added to the current source in CVS are on MoinMoinDone.
MoinMoinRelease describes how to build a release from the SourceForge repository.
Things to do in the near future:
* add a nice progress page, while the dictionary cache is built
* add a means to build the dict.cache file from the command line
* Macro that lists all users that have an email address; a click on the user name sends the re-login URL to that email (and not more than once a day).
* Send a timestamp with the EditPage link, and then compare to the current timestamp; warn the user if page was edited since displaying.
* Now that we can identify certain authors (those who have set a user profile), we can avoid to create a backup copy if one author makes several changes; we have to remember who made the last save of a page, though.
* Implement the update script (copying new images etc.) described elsewhere on this page or MoinMoinIdeas.
* Replace SystemPages by using the normal "save page" code, thus creating a backup copy of the page that was in the system. Only replace when diff shows the page needs updating.
* Other things like color, icons, menu?
* On request, send email containing an URL to send the cookie
* a CSS switch (needs more work on the formatter issue to really work)
* create a dir per page in the "backup" dir; provide an upgrade.py script to adapt existing wikis
* or go all the way, and store pages as data/pages/<firstletter>/<pagename>/(current|meta|...|<timestamp>)
* Add a link to Wiki:EditThePageSimultaneously (or a link to a local copy) to the edit conflict message.
* [[SiteMap]]: find the hotspots and create a hierarchical list of all pages (again, faster with caching)
* ProcessingInstructions
- MoinMoinWikis . . . . 3 matches
* [http://www.bioinformatics.org/piperwiki/moin.cgi Wiki for the Piper project]
* [http://compsoc.dur.ac.uk/~tsp/cgi-bin/triki.cgi TrikiWiki] (private wiki for the Transformers holiday - uses a mildly hacked MoinMoin)
* [http://gstreamer.net/wiki/ GStreamer Wiki]
* [http://lightingwiki.com/FrontPage The Lighting Wiki]
For more wikis, see the InterWiki list.
- MoreEffectiveC++/Basic . . . . 3 matches
Pointers use the "*" and "->" operators, references use "." [[BR]]
string& rs; // Reference(참조)가 초기화가 되지 않아서 에러
string s("xyzzy"); // 이건 된다 신기하네
string& rs = s;
아직 string써본적 한번도 없다. 반성..
string s1("Nancy"); // 이제는 무슨 퀴즈 같다.
string s2("Clancy");
string& rs = s1;
string* ps = &s1;
오해의 소지가 있도록 글을 적어 놨군요. in, out 접두어를 이용해서 reference로 넘길 인자들에서는 in에 한하여 reference, out은 pointer로 new, delete로 동적으로 관리하는것을 의도한 말이었습니다. 전에 프로젝트에 이런식의 프로그래밍을 적용 시켰는데, 함수 내부에서 포인터로 사용하는 것보다 in에 해당하는 객체 사용 코딩이 편하더군요. 그리고 말씀하신대로, MEC++ 전반에 지역객체로 생성한 Refernece문제에 관한 언급이 있는데, 이것의 관리가 C++의 가장 큰 벽으로 작용하는 것이 아닐까 생각이 됩니다. OOP 적이려면 반환을 객체로 해야 하는데, 이를 포인터로 넘기는 것은 원칙적으로 객체를 넘긴다고 볼수 없고, 해제 문제가 발생하며, reference로 넘기면 말씀하신데로, 해당 scope가 벗어나면 언어상의 lifetime이 끝난 것이므로 영역에 대한 메모리 접근을 OS에서 막을지도 모릅니다. 단, inline에 한하여는 이야기가 달라집니다. (inline의 코드 교체가 compiler에 의하여 결정되므로 이것도 역시 모호해 집니다.) 아예 COM에서는 OOP에서 벗어 나더라도, 범용적으로 쓰일수 있도록 C스펙의 함수와 같이 in, out 의 접두어와 해당 접두어는 pointer로 하는 규칙을 세워놓았지요. 이 설계가 C#에서 buil-in type의 scalar형에 해당하는 것까지 반영된 것이 인상적이 었습니다.(MS가 초기 .net세미나에서 이 때문에 String 연산 차이가 10~20배 정도 난다고 광고하고 다녔었는데, 지금 생각해 보면 다 부질없는 이야기 같습니다.) -상민
funcPtrArray[0] = reinterpret_cast(FuncPtr, &doSomething);
== Item 3: Never treat arrays polymorphically ==
void printBSTArray( ostream& s, const BST array[], int numElements)
'''*(array+ ( i *sizeof(an object in the array) )''' [[BR]]
void deleteArray( ostream& logStream, BST array[])
logStream << "Deleting array at address "
BalanceBST *balTreeArray = new BalancedBST[50];
deleteArray(cout, balTreeArray); // 이것 역시 제대로 지워지리가 없다.
for( int i = the number of elements in the array -1; i>0; --i)
== Item 4: Avoid gratuitous default constructors. ==
- MoreEffectiveC++/Exception . . . . 3 matches
일단 여러분은 파일에서 부터 puppy와 kitten와 키튼의 정보를 이렇게 읽고 만든다. 사실 Item 25에 언급할 ''virtual constructor''가 제격이지만, 일단 우리에 목적에 맞는 함수로 대체한다.
ALA * readALA(istream& s);
void processAdoptions( istream& dataSource)
void processAdoptions( istream& dataSource)
try{
방법은 올바르다. 예외시에 해당 객체를 지워 버리는것, 그리고 이건 우리가 배운 try-catch-throw를 충실히 사용한 것이다. 하지만.. 복잡하지 않은가? 해당 코드는 말그대로 펼쳐진다.(영서의 표현) 그리고 코드의 가독성도 떨어지며, 차후 관리 차원에서 추가 코드의 발생시에도 어느 영역에 보강할것 인가에 관하여 문제시 된다.
여기에서 재미있는 기법을 이야기 해본다. 차차 소개될 smart pointer와 더불어 Standard C++ 라이브러리에 포함되어 있는 auto_ptr template 클래스를 이용한 해결책인데 auto_prt은 이렇게 생겼다.
class auto_ptr{
auto_ptr(T *p = 0) : ptr(p) {}
T *ptr;
void processAdoptions(istream& dataSource)
auto_ptr<ALA> pa(readALA(dataSource));
예외 발생시에 함수가 종료되면 auto_ptr상의 객체는 무조건 해제된다.
destroyWindow(w);
일반적으로 C의 개념으로 짜여진 프로그램들은 createWindow and destroyWindow와 같이 관리한다. 그렇지만 이것 역시 destroyWindow(w)에 도달전에 예외 발생시 자원이 세는 경우가 생긴다. 그렇다면 다음과 같이 바꾸어서 해본다.
~WindowHandle() {destroyWindow(w); }
auto_ptr과 같은 원리이다.
== Item 10: Prevent resource leaks in constructors. ==
Image(const string& imageDataFileName);
AudioClip(const string& audioDataFileName);
- ProgrammingLanguageClass/2006/EndTermExamination . . . . 3 matches
02, 05 년에 언어 디자인시 고려해야할 점에 대한 문제가 출제되어서 그쪽으로 공부를 많이 했지만 나오지 않았다는 점에서 의외였음. 디자인 이슈를 공부할 생각이라면 Pointer, Array, Abstraction, Subprogram 의 디자인 이슈에 대해서 공부하는 것이 좋을 듯함.
1. True, False 판단 문제 출제
d) if에서 Dijkstra's Guarded Command 에서 Boolean Expression 중 어떠한 것도 참이 아닌경우 구문을 벗어나는지 묻는 문제
* upto terminate 해석에 따라서 답이 달라짐 종료 직전 -> 답은 True, 종료 시점을 의미한다면 답은 False
up to ... (1) <어느 위치·정도·시점이> …까지(에), …에 이르기까지;<지위 등이> …에 이르러:up to this time[now] 지금껏, 지금[이 시간]까지는/I am up to the ninth lesson. 나는 제 9과까지 나가고 있다./He counted from one up to thirty. 그는 1에서 30까지 세었다./He worked his way up to company president. 그는 그 회사의 사장으로까지 출세했다. (2) [대개 부정문·의문문에서] 《구어》 <일 등>을 감당하여, …을 할 수 있고[할 수 있을 정도로 뛰어나]:You’re not up to the job. 너는 그 일을 감당하지 못한다./This novel isn’t up to his best. 이 소설은 그의 최고작에는 미치지 못한다./This camera is not up to much. 《구어》 이 카메라는 별로 대단한 것은 아니다./Do you feel up to going out today? 오늘은 외출할 수 있을 것 같습니까? 《병자에게 묻는 말》 (3) 《구어》 <나쁜 짓>에 손을 대고;…을 꾀하고:He is up to something[no good]. 그는 어떤[좋지 않은] 일을 꾀하고 있다./What are they up to? 그들은 무슨 짓을 하려는 것인가? (4) 《구어》 <사람이> 해야 할, …나름인, …의 의무인:It’s up to him to support his mother. 그야말로 어머니를 부양해야 한다./I’ll leave it up to you. 그것을 네게 맡기마./It’s up to you whether to go or not. 가고 안가고는 네 맘에 달려 있다./The final choice is up to you. 마지막 선택은 네 손에 달려 있다.
- ProgrammingLanguageClass/2006/Report3 . . . . 3 matches
treat the actual parameters as thunks. Whenever a formal parameter is referenced in a
subprogram, the corresponding thunk compiled for that parameter is executed. Even
though it is difficult to avoid run-time overhead in the execution of thunks, sometimes it
required to prefix the keyword name just in front of both the actual and formal
Of course, if a C program with the call statement above is to be compiled by a
conventional compiler, syntax errors should occur since it violates the syntactical rules
You are required to implement C preprocessor that supports the pass-by-name
parameter-passing method. The preprocessor should transform C programs with name
parameters into pure C programs so that the transformed programs manage to handle
parameters prefixed with name as if they were called by name without causing any
3) You have to show off the robustness of your program by checking various
cf) Jensen's Device, Man Boy Test 는 Compiler Theory 의 한 항목들입니다.
You should follow the guideline suggested later. To be specific, your report is
The external documentation should explain your program in detail so that we can
understand what kind of data structures have been used, the characteristics and general
as well as unique features of your program, etc. An internal documentation means the
- PythonForStatement . . . . 3 matches
비슷한 것을 찾자면 C++의 배열보다는 C++의 string 클래스, Java의 String 클래스와 비슷하다는 점을 알 수 있어. -- [Leonardong]
These represent finite ordered sets indexed by non-negative numbers. The built-in function len() returns the number of items of a sequence. When the length of a sequence is n, the index set contains the numbers 0, 1, ..., n-1. Item i of sequence a is selected by a[i].
{{|There are six sequence types: strings, Unicode strings, lists, tuples, buffers, and xrange objects|}}
내장형인 strings 도 시퀀스 형이며, {{{a[i]}}} 형태로 접근할수 있습니다. 따라서,
- SmallTalk/문법정리 . . . . 3 matches
* 모든 스몰토크 표현식이 다음과 같은 양식을 따른다.All Smalltalk expressions follow the form:
"The message sent is #squared"
'abc' asUppercase. "Receiver object is string 'abc'."
"The message sent is #asUppercase"
"The message sent is #factorial"
* 선택자는 단일 식별자이며, 인수는 없다.(the selector is a single Identifier, there are no arguments)
* 선택자는 특정한 기호(하나나 둘이상의 문자, 숫자가 아님)이고, 인수가 딱 하나만 있다.(the selector is one or two non-alphanumeric characters, followed by exactly one argument object)
"argument is the Integer object 5"
"argument is the String 'xyz'"
"argument is the Integer object 20"
* 각 키워드에 인수가 있을 때, 선택자는 하나 이상의 키워드이다.(the selector is one or more keywords, when called each keyword is followed by an argument object) -> 세번째 예시 참고
Point x: 4 y: 200. "receiver is the object Point"
읽은지 얼마 안되었는데도 스몰토크의 메소드 길이는 7줄을 넘지 않는다는 말이 나온다. 그러면서 extract method(이 말을 직접적으로 쓰진 않았지만)도 나온다.
* Unary 메세지는 가장 높은 우선 순위를 가진다. messages have the highest precedence.
* Binary 메세지는 그 다음의 우선 순위를 가진다. Binary message have the next precedence.
* Keyword 메세지는 가장 낮은 우선 순위를 가진다.Keyword message have the lowest precedence.
- TAOCP . . . . 3 matches
* Title : TheArtOfComputerProgramming
* TheArtOfComputerProgramming(TAOCP) vol1. FundamentalAlgorithms을 읽는다.
[TAOCP/NotesOnTheExercises]
[TAOCP/InformationStructures]
- TCP/IP_IllustratedVol1 . . . . 3 matches
= TCP/IP Illustrated, Volume 1 : The Protocols =
W. Richard Stevens 라고 책 겉 표지에, 부제인 'The Protocols' 만큼이나 크게 적혀있다.
* "'''''The word illustrated distinguishes this bool from its may rivals.'''''" 이 책의 뒷커버에 적혀있는 말이다. 이말이 이 책을 가장 멋지게 설명해준다고 생각한다.
* 무턱대고 만들었다. 으.. 아무래도 오늘 자료구조 사건이 큰 영향이었던 듯. 아무튼 저번주와 이번주.. 충분히 느슨해졌었으니 다음주부터는 다시 strict management 체계로 가자. 그리고 문서화도 이 페이지에 좀 해야겠다. '앞으로는'. -zennith.
* Comer 의 책은 일단 접어두련다. illustrated 를 다 본다음에나 보는게 좋을 듯. 역시 text 라는 이미지는 illustrated 쪽이 좀 더 강하니까. 그리고, 재동아 너는 그럼 공부는 안하고 듣기라도 하려냐? 물론.. 정직 네게 더 진행하자는 의지가 있을 때의 이야기겠지만. 아무튼.. 난 지금 udp 지나 multicasting broadcasting 쪽 보고있다. -zennith
- TheElementsOfProgrammingStyle . . . . 3 matches
TheElementsOfStyle 에 대한 글을 이곳 저곳에서 보면 항상같이 언급되는 책이다. 중앙도서관에 구입신청을 했지만 폐간되어서 입수를 못하고.. 아마존에는 brandnew는 없고 used book만 있다. 각 대학 중앙도서관을 뒤지던 중 연세대와 한양대 중앙도서관에 있음을 알게됨. 우리학교엔 왜 없었던 걸까.
학생들이 TheElementsOfProgrammingStyle 을 공부하면서 TheElementsOfStyle을 언급하였으면 좋겠다. - [임인택]
- TheJavaMan/설치 . . . . 3 matches
public static void main(String[] args)를 체크해 놓으면 따로 입력안해두 되니깐 좋아
public static void main(String[] args) {
System.out.println("Hello!!! The Java Man");
앞의 과정을 잘 따라했다면 ''System.out.println("Hello!!! The Java Man");''
Hello!!! The Java Man
- TheWarOfGenesis2R . . . . 3 matches
1. [[HTML(<STRIKE>)]] 아무런 장애물도 없는 맵에서 객체 이동시키기. [[HTML(</STRIKE>)]] - 20분
2. [[HTML(<STRIKE>)]] 장애물이 있는 맵에서 객체 이동시키기. [[HTML(</STRIKE>)]] - 1시간
3. [[HTML(<STRIKE>)]] DirectX - DirectGraphics / OpenGL 사용법 익히기. [[HTML(</STRIKE>)]] - 1시간 20분
5. [[HTML(<STRIKE>)]] 타일 에디터 만들기 [[HTML(</STRIKE>)]] - 2시간 30분
[TheWarOfGenesis2R/일지]
[TheWarOfGenesis2R/ToDo]
|| ["TheWarOfGenesis2R/Temp"] ||
- TriDiagonal/1002 . . . . 3 matches
수치해석 레포트로 나온 TriDiagonal 문제에 대한 나름대로의 (--;) TFP 식 접근 풀이. 오히려 다른 사람들보다 소스가 커지긴 했지만, 소스를 원한다면 더 줄일 수 있고 (단, 코드를 알아보기 어려워질까봐 묶을 수 있는 부분에 대해서도 풀어 씀), LU 분해 부분에 대해서는 어느정도 일반화를 시켰다고 생각하기에 그리 나쁘진 않다고 생각하는중.
* 해결한 시간 : 대략 6시간 10분 (수학 일반화 계산 1시간 30분, LU 분해 2시간 30분, tri-diagonal 2시간 12분)
from Matrix import *
self.matrixA = Matrix(array(self.a))
matrixL = Matrix(array(l))
matrixU = Matrix(array(u))
actual = matrixL * matrixU
self.assertEquals(str(actual), str(self.matrixA))
self.l = self.makeEmptySquareMatrix(self.n)
self.u = self.makeEmptySquareMatrix(self.n)
def makeEmptySquareMatrix(self, n):
matrix = []
matrix.append(row)
return matrix
print array2string(array(a))
print array2string(array(l))
print array2string(array(u))
=== test_tridiagonal.py - tri-diagonal 부분에 대한 test-code ===
from Matrix import *
from TriDiagonal import *
- UDK/2012년스터디/소스 . . . . 3 matches
// Its behavior is similarly to constructor.
// Extend PlayerController class to custom class
PlayerControllerClass = class'ESPlayerController';
// Event occured when character logged in(or creation). There are existing function PreLogin, PostLogin functions.
event PlayerController Login(string portal, string options, const UniqueNetId uniqueID, out string errorMsg)
local PlayerController pc;
event PostLogin(PlayerController pc)
// EmeraldStage/ESPlayerController.uc
class ESPlayerController extends UTPlayerController;
DesiredCameraZOffset = (Health > 0) ? - 1.2 * GetCollisionHeight() + Mesh.Translation.Z : 0.f;
// @todo fixmesteve. If FindSpot fails, then (rarely does) camera pinned continously.
if (Trace(HitLocation, HitNormal, out_CamLoc, CamStart, false, vect(12,12,12)) != None) {
return true;
class SeqAct_ConcatenateStrings extends SequenceAction;
var() String ValueA;
var() String ValueB;
var string StringResult;
StringResult = (ConcatenateWithSpace) ? ValueA@ValueB : ValueA$ValueB;
ObjName="Concatenate Strings"
VariableLinks(0)=(ExpectedType=class'SeqVar_String',LinkDesc="A",PropertyName=ValueA)
- UbuntuLinux . . . . 3 matches
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
[http://projects.edgewall.com/trac/wiki/TracOnUbuntuBreezer Trac설치하기] 중간에 테스트 하는 부분에서 안 되서 절망했다가 끝
tracd --port 8000 /var/trac/YourProjectNameHere/
Include /etc/apache2/sites-available/trac
<Directory "/usr/share/trac/htdocs">
# You need something like this to authenticate users
ScriptAlias /trac/leonardong /usr/share/trac/cgi-bin/trac.cgi
<Location "/trac/leonardong">
SetEnv TRAC_ENV "/home/trac/leonardong"
<Location "/trac/leonardong/login">
AuthUserFile /home/trac/.htaccess
이제 [http://leonardong.nameip.net/trac/leonardong Trac]을 서버에서 돌릴 수 있다.
http://www.troubleshooters.com/linux/prepostpath.htm
To make the script run at startup:
(Do not forget the dot: . )
For more information on the usage of update-rc.d
CTRL + ALT + Left/right arrow key. Switches to the new side of the cube for me.
CTRL + ALT + SHIFT + Left/Right arrow key- Takes the in focused app around cube.
CTRL + ALT + Left Click on Desktop - allows you to use the mouse to rotate cube.
F12 - uses the Expose like trick
- UglyNumbers/1002 . . . . 3 matches
while True:
if number == 1: return True
while True:
- WikiWikiWeb . . . . 3 matches
The [wiki:Wiki:FrontPage first ever wiki site] was founded in 1994 as an automated supplement to the Wiki:PortlandPatternRepository. The site was immediately popular within the pattern community, largely due to the newness of the internet and a good slate of Wiki:InvitedAuthors. The site was, and remains, dedicated to Wiki:PeopleProjectsAndPatterns.
Wiki:WardCunnigham created the site and the WikiWikiWeb machinery that operates it. He chose wiki-wiki as an alliterative substitute for quick and thereby avoided naming this stuff quick-web. An early page, Wiki:WikiWikiHyperCard, traces wiki ideas back to a Wiki:HyperCard stack he wrote in the late 80's.
See also one of these links:
* get some answers on the Wiki:WikiWikiWebFaq
* get to know more about the Wiki:WikiHistory
- WindowsTemplateLibrary . . . . 3 matches
{{|The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft's ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.
In an uncharacteristic move by Microsoft—an outspoken critic of open source software—they made the source code of WTL freely available. Releasing it under the open-source Common Public License, Microsoft posted the source on SourceForge, an Internet open-source repository. The SourceForge version is 7.5.
Being an unsupported library, WTL has little formal documentation. However, most of the API is a direct mirror of the standard Win32 calls, so the interface is familiar to most Windows programmers.|}}
- XOR삼각형/임인택 . . . . 3 matches
def xorTriangle(current, lineNum, list):
xorTriangle(current+1, lineNum, newList)
xorTriangle(1, 8, list)
- snowflower . . . . 3 matches
||[TheWarOfGenesis2R]||창세기전2 리메이크 프로젝트|| _ ||
||["SRPG제작"]||SRPG에 대한 대략적인 계획 - 현재는 ["TheWarOfGenesis2R"]과 함께|| _ ||
||TrasHCraft||!@#!@$!@#!|| 2005.12 ~ 2006.02 ||
- 고전모으기 . . . . 3 matches
* StructuredProgramming, TheElementsOfProgrammingStyle, SICP, SmalltalkByExample, SmalltalkBestPracticePatterns
* TheArtOfComputerProgramming
TheElementsOfStyle, WomenFireAndDangerousThings, MetaphorsWeLiveBy
- 구구단/곽세환 . . . . 3 matches
#include <iostream>
[ a <= 9 ] whileTrue:
[ b <= 9] whileTrue:
Transcript show: a; show: '*'; show: b; show: '='; show: a*b; cr.
- 그래픽스세미나/1주차 . . . . 3 matches
* 비교하기전에 걸러내는 방법으로는 Cohen-Sutherland 알고리즘이 있다.
|| [상규] || [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/1%c1%d6%c2%f7/Triangle.zip API Ver.] ||
|| [남훈] || Upload:gl_triangle_znth.rar ||
|| [창섭] || Upload:MFCTriangle.zip MFC Ver. ||
|| 윤정수 || Upload:HW1_DrawTriangle.zip ||
- 데블스캠프2002/진행상황 . . . . 3 matches
* 남훈아 수고 했다. 후배들에게는 당근 어려웠겠지만, 개인적으로는 유익했던지라; ^^; traceroute 의 원리 설명은 정말; TCP/IP 동영상을 먼저보여주는게 더 쉬웠을려나 하는 생각도.
* OOP를 바로 설명하기 전에 나의 프로그래밍 사고 방식을 깨닫고, StructuredProgramming 의 경우와 ObjectOrientedProgramming 의 경우에는 어떠한지, 그 사고방식의 이해에 촛점을 맞추었다.
* StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
* '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
EventDrivenProgramming 의 설명에서 또하나의 새로운 시각을 얻었다. 전에는 Finite State Machine 을 보면서 Program = State Transition 이란 생각을 했었는데, Problem Solving 과 State Transition 의 연관관계를 짚어지며 최종적으로 Problem Solving = State Transition = Program 이라는 A=B, B=C, 고로 A=C 라는. 아, 이날 필기해둔 종이를 잃어버린게 아쉽다. 찾는대로 정리를; --["1002"]
- 서지혜 . . . . 3 matches
1. Training 1000시간
== TRACE ==
* [https://www.ibm.com/developerworks/mydeveloperworks/blogs/9e635b49-09e9-4c23-8999-a4d461aeace2/entry/149?lang=ko 참고]
1. Training Diary
* 위키 : [http://swmaestro.openflamingo.org]
1. Training Diary
1. [http://www.hkbs.co.kr/hkbs/news.php?mid=1&treec=133&r=view&uid=266727 VDIS] - 교통안전공단 차량운행 프로젝트
* SWMaestro 2-2때 만든건데 나도 모르는 새에 멘토의 소스 저장소에 올라가있네ㅋㅋㅋㅋ + 나는 컨트리뷰터로 올라가있지도 않음ㅋㅋㅋㅋ
* 하지만 아직도 beneficiary일 뿐 contributor가 아니다.. spring project에 기여하기 프로젝트를 했으면 어땟을까? 처음엔 작게 bug fix부터..
* sw maestro 1차 프로젝트 (7/4 ~ 8/23)
* 어느 교수님이 Bjarne Stroustrup 였다..
- 송치완 . . . . 3 matches
* ChosunTruck Founder
* 유로 트럭 시뮬레이터 2 자율주행 프로젝트인 ChosunTruck의 Founder
* [https://github.com/bethesirius/ChosunTruck]
- 정모/2011.7.25 . . . . 3 matches
* 지난주에 못 풀었던 PIGS와 TheLazyProgrammer에 재도전
* The Lazy Programmer는 진경이가 풀어내었음!!
* The Simpsons 1시즌 1화 대사 따라하기 (Marge, Homer의 대화 40초)
- 조영준/다대다채팅 . . . . 3 matches
static void Main(string[] args)
static public void broadcast(string s)
try
string dataSend = s;
NetworkStream stream = cc.socket.GetStream();
stream.Write(byteSend, 0, byteSend.Length);
while (true)
while (true)
string s = Console.ReadLine();
static public string TimeStamp()
return DateTime.Now.ToShortTimeString() + ":" + DateTime.Now.Second + "." + DateTime.Now.Millisecond + " ";
public string name;
private NetworkStream stream;
stream = socket.GetStream();
stream.Close();
string dataGet;
try
stream.Read(byteGet, 0, socket.ReceiveBufferSize);
dataGet = Encoding.ASCII.GetString(byteGet).TrimEnd('\0');
while (true)
- 토이/메일주소셀렉터/김정현 . . . . 3 matches
public static void main(String[] args) {
String input;
String[] deleteList= {" ", "\n"};
io.insertSpace(true);
io.write("result.txt", io.getRemadeFromFile(input));
private String[] deleteList= {};
public void write(String fileName, String text) {
try {
e.printStackTrace();
public String read(String fileName) {
String resultString= "";
try {
resultString += br.readLine();
e.printStackTrace();
e.printStackTrace();
return resultString;
public String getTextFileForm(String inputName) {
String tempString= inputName.replace('.', '-');
String[] splitedStrings= tempString.split("-");
if(splitedStrings.length == 2 && splitedStrings[1].equals("txt")) {
- 파스칼삼각형/송지원 . . . . 3 matches
#include <iostream>
void pasTri(int);
pasTri(num-1);
void pasTri(int num){
- 페이지제목띄어쓰기토론 . . . . 3 matches
영문제목의 경우 대문자 단위로 붙여 쓰면 {{{~cpp (ex: TheWikiName) }}} 페이지 표시해줄때 {{{~cpp The Wiki Name}}} 식으로 알아서 띄어서 찍어준다. 하지만 한글제목의 경우는 지원하지 않는다.
"Trim, 글자간 한칸" 이정도의 규칙이면 별무리 없을것 같은데, 엄청나게 빠르게 문서가 누적되는 상황이 아니기 때문에, 한 3~4개월 정도 혹은 정모때 논의해서 정리하는 것도 괜찮을것 같다. --상민
- 포항공대전산대학원ReadigList . . . . 3 matches
“Data Structures and Algorithms in C++”, Mitchael T. Goodrich et al., John Wiley & Sons, 2004.
“Data Structures and Algorithms", Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, Addison-Wesley.
“An Introduction to Formal Languages and Automata”, Peter Linz.
“Introduction to Automata Theory, Languages, and Computation”, J. E. Hopcroft, R. Motwani,
“Computer Organization, The HW/SW interface”, D. Patterson and J. Hennesey, Morgan Kaufman, 1994.
“Types and Programming Languages”, Benjamin C. Pierce, The MIT Press.
- 프로그래밍/장보기 . . . . 3 matches
String line = null;
String [] contents;
try {
e.printStackTrace();
public static void main(String[] args) {
try {
String line = br.readLine();
e.printStackTrace();
e.printStackTrace();
- 프로그래밍잔치/SmallTalk . . . . 3 matches
printHello
Transcript show: 'Hello World'.
hello printHello.
:i | Transcript cr; show: i asString, 'dan'.
:j | Transcript cr; show: i asString, ' * ', j asString, ' = ', (i*j) asString.
- 프로젝트 . . . . 3 matches
* [XpWeek] - 2004년 겨울방학 ExtremeProgramming 체험하기
* [TheJavaMan] - 2004년 3월 2일 종료
* [TheJavaMan/비행기게임] - 2004년 3월 2일 종료
* [TheJavaMan/숫자야구] - 2004년 1/26일 종료
- 2010Python . . . . 2 matches
* Pascal's Triangle
* [윤종하] - 지난 시간에 했던 Pascal's Triangle의 알고리즘을 수정하여 C++, python의 속도비교. 인터프리터 언어가 확실히 느림. 아마도 작동 원리의 차이인 듯
* [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/index.htm MIT Open Courseware 6.00 Introduction to Computer Science and Programming]
- 2dInDirect3d/Chapter3 . . . . 2 matches
* Transformed 버텍스와 Untransformed 버텍스의 차이를 안다.
만약 D3D를 쓰는 사람에게 "당신은 왜 D3D를 씁니까?" 라고 물으면, 일반적으로 이런 대답이 나온다. Z-Buffer라던지, 모델, 메시, 버텍스 셰이더와 픽셸세이더, 텍스쳐, 그리고 알파 에 대한 이야기를 한다. 이것은 많은 일을 하는 것처럼 보인다. 몇몇을 제외하면 이런 것들은 다음의 커다란 두 목적의 부가적인 것이다. 그 두가지란 Geometry Transformation과 Polygon Rendering이다. 간단히 말해서 D3D의 교묘한 점 처리와 삼각형 그리기라는 것이다. 물론 저것만으로 모두 설명할 수는 없지만, 저 간단한 것을 마음속에 품는다면 혼란스러운 일은 줄어들 것이다.
RHW : Reciprocal of the homogenous W coordinate
struct CustomVertex
struct CustomVertex
struct CustomVertex
struct CustomVertex
struct CustomVertex
- 2학기파이선스터디/서버 . . . . 2 matches
from SocketServer import ThreadingTCPServer, StreamRequestHandler
cmd = msg[1:].rstrip().split()
class RequestHandler(StreamRequestHandler):
try:
name = self.receiveline().strip() #이름 읽기
from SocketServer import ThreadingTCPServer, StreamRequestHandler
def __init__(self, aId, msg,addr, isinEntry = False):
self.isinEntry
if self.isinEntry:
self.append(Users(self.ID, self.message, self.isinEntry))
cmd = msg[1:].rstrip().split()
class RequestHandler(StreamRequestHandler):
u = Users(a.ID, a.message,self.client_address, a.isinEntry)
try:
## name = self.receiveline().strip() #이름 읽기
from SocketServer import ThreadingTCPServer, StreamRequestHandler
cmd = msg[1:].rstrip().split()
class RequestHandler(StreamRequestHandler):
try:
conn.send(true)
- 3n 1/이도현 . . . . 2 matches
2005-12-30 14:39:20 Accepted 3.256 436 56031 C++ 100 - The 3n + 1 problem
// The 3n + 1 problem
#include <iostream>
while (true)
- 5인용C++스터디/메뉴와단축키 . . . . 2 matches
cmenu->TrackPopupMenu(0, point.x, point.y, this, NULL);
cmenu->TrackPopupMenu(0, point.x, point.y, this, NULL);
- APlusProject/PMPL . . . . 2 matches
Upload:APP_TracingChart.zip - 수정해주세요~ 액셀파일입니다
Upload:APP_TracingChart_0619.zip - 한글파일로 수정했고, 세로로 안되서 가로로 했다. 버전은 0.2
- AcceleratedC++/Chapter10 . . . . 2 matches
= Chapter 10 Managing memory and low-level data structures =
지금까지는 vector, string등 STL이 기본적으로 제공하는 자료구조를 통해서 프로그래밍을 하였다.
#include <iostream>
// change the value of `x' through `p'
void write_analysis(std::ostream& out, const std::string& name,
analysis_fp get_analysis_ptr(); // 이와 같이 이용하는 것이 가능합니다.
double (*get_analysis_ptr()) (const vector<Student_info>&);
상기의 코드에서 프로그래머가 원한 기능은 get_analysis_ptr()을 호출하면 그 결과를 역참조하여서 const vector<Student_info>&를 인자로 갖고 double 형을 리턴하는 함수를 얻는 것입니다.
const size_t PTriangle = 3;
double coords1[PTriangle];
그러나 이 차이를 나타내는 값은 구현 시스템 마다 다를 수 잇고, 음수가 나타내는 경우가 있기 때문에 '''<cstddef>'''에는 '''ptrdiff_t'''라는 약칭을 통해서 그 데이터 형을 제공한다.
== 10.2 String literals revisited ==
'''<cstring> strlen'''
size_t strlen(const char* p) { // 쉬우니 기타 설명은 생략
상기의 내용을 바탕으로 string에서 우리는 다음과 같은 초기화를 행하는 것이 가능하다.
string s(hello);
string s("hello");
string s(hello, hello+strlen(hello));
#include <string>
using std::string;
- AcceleratedC++/Chapter5 . . . . 2 matches
= Chapter 5 Using sequential containers and analyzing strings =
* 여태까지 vector랑 string 갖고 잘 놀았다. 이제 이것들을 넘어서는 것을 살펴볼 것이다. 그러면서 라이브러리 사용법에 대해 더 깊게 이해하게 될것이다. 라이브러리는 자료구조?함수만을 제공해주는 것이 아니다. 튼튼한 아키텍쳐도 반영해준다. 마치 vector의 사용법을 알게 되면, 다른것도 쉽게 배울수 있는것처럼...
vector<Student_info> extract_fails(vector<Student_info>& students)
vector<Student_info> extract_fails(vector<Student_info>& students)
vector<Student_info> extract_fails(vector<Student_info>& students)
=== 5.2.4 The meaning of students.erase(students.begin() + i) ===
vector<Students_Info> extract_fails(vector<Student_info>& students)
== 5.4 Ranking our data structure for better performance ==
== 5.5 The list type ==
=== 5.5.2 Why bother? ===
== 5.6 Taking strings apart ==
* string도 vector처럼 쓸수 있다. 실제로는 vector<char>이니... vector의 대부분의 기능을 지원한다. []과 반복자는 물론 size() 등등도..
* 그러면서 주어진 string을 공백을 기준으로 자른 다음 vector에 넣어서 리턴하는 예제를 보여주고 있다. 별로 볼건 없다.
* 그냥 string가지고 화면에 뿌리는 이상한 장난치고 있다. 별로 볼거 없다.
for(vector<string>::const_iterator i = bottom.begin(); i != bottom.end(); ++i)
- ActiveTemplateLibrary . . . . 2 matches
{{|The Active Template Library (ATL) is a set of template-based C++ classes that simplify the programming of Component Object Model (COM) objects. The COM support in Visual C++ allows developers to easily create a variety of COM objects, Automation servers, and ActiveX controls.
=== String Conversion ===
OLE String 과 PSTR 등의 일반 스트링형 간 형변환 할 일이 있을때.
* [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_atl_string_conversion_macros.asp ATL and MFC String Conversion Macros]
ex) OLE2CA : '''OLE''' string '''2'''(to) '''C'''onst '''A'''nsi sting
ATL string의 형변환시에는 {{{~cpp USES_CONVERSION}}} macro를 형변환 전에 호출하여야함.
=== CComQIPtr ===
//CComQIPtr 사용예
CComQIPtr<IOleWindow> pOleWin(pUnk);
- Adapter . . . . 2 matches
== Structure ==
DP의 p147을 보면 '''Adapter'''클래스는 반드시 그것의 '''Adaptee'''를 타입으로 선언해서 가지고 있어야만 한다.이런 경우에는 해당 클래스와 그것에서 상속되는 클래스들만이 기능을 사용(adapt)할수 있다. Smalltalk에서 엄격한 형검사(Strong Typeing) 존재 않으면, class 가 '''Adapter'''에서 '''Adaptee'''로 보내어지는 메세지를 보낼수 있는 이상 '''Adaptee'''가 어떠한 클래스라도 상관없을 것이다. [[BR]]
TextShape는 Shape에 translator같은 특별한 일을 위한 기능을 직접 추가한 것으로 Shape의 메세지를 TextView Adaptee가 이해 할수 있는 메세지로 변환 시킨다.:하지만 DrawingEditor가 TextSape에 대한 메세지를 보낼때 TextShape는 다르지만 문법적으로 동일한 메세지를 TextView 인스턴스에게 보낸다. [[BR]]
우리는 Tailored Adapter안에서 메세지를 해석을 위하여 해당 전용 메소드를 만들수 있다. 왜냐하면 디자인 시간에 Adapter와 Adaptee의 프로토콜을 알고 있기 때문이다. The Adapter class는 유일한 상황의 해석을 위해서 만들어 진다. 그리고 각각의 Adapter의 메소드는 Adaptee에 대한 알맞은 메세지들에 대하여 hard-codes(전용 함수 정도의 의미로 생각) 이다
상호 작용(사용자가 직접 이용하는의미)하는 어플리케이션을 위한 Model-View-Controller(MVC) 패러다임에서 View 객체들(화면상에 표현을 담당하는 widget들) 은 밑바탕에 깔려있는 어플리케이션 모델과 연결되어진다. 그래서 모델안에서의 변화는 유저 인터페이스에 반영하고 인터페이스 상에서 사용자들에 의한 변화는 밑에 위치한 되어지는 모델 데이터(moel data)에 변화를 유도한다.View객제들이 제공되어 있는 상태라서 어떠한 상호 작용하는 어플리케이션 상에서라도 그들은 ㅡ걸 사용할수 있다. 그러므로 그들은 그들의 모델과의 통신을 위해 일반적인 프로코콜을 사용한다;특별한 상황에서 모델로 보내어지는 getter message는 값이고 일반적인 setter message역시 값이다.:예를 들자면 다음 예제는 VisualWorks TextEditorView가 그것의 contects를 얻는 방법이다.
ifTrue: [Text new]
- Ajax . . . . 2 matches
* The Document Object Model manipulated through JavaScript to dynamically display and interact with the information presented
* The XMLHttpRequest object to exchange data asynchronously with the web server. (XML is commonly used, although any text format will work, including preformatted HTML, plain text, and JSON)
Like DHTML, LAMP, or SPA, Ajax is not a technology in itself, but a term that refers to the use of a group of technologies together. In fact, derivative/composite technologies based substantially upon Ajax, such as AFLAX are already appearing.
Ajax applications use web browsers that support the above technologies as a platform to run on. Browsers that support these technologies include Mozilla Firefox, Microsoft Internet Explorer, Opera, Konqueror and Apple Safari.
- AseParserByJhs . . . . 2 matches
#define OBJECT_ROT_EXIST "*CONTROL_ROT_TRACK"
#define OBJECT_POS_EXIST "*CONTROL_POS_TRACK"
#define OBJECT_ROT_SAMPLE "*CONTROL_ROT_SAMPLE"
#define OBJECT_POS_SAMPLE "*CONTROL_POS_SAMPLE"
// a triangle in the model
typedef struct
int vertIndex[3]; // indicies for the verts that make up this triangle
int coordIndex[3]; // indicies for the tex coords to texture this face
} triangle_t;
// texture information for the model
typedef struct
OutputDebugString (ds);
pNodeList [0]->bIsSkinModel = TRUE;
if (strcmp (pNodeList [i1]->ParentName, "")) {
!strcmp (pNodeList [i1]->ParentName, pNodeList [i2]->Name))
if (!strcmp(pTmp->ParentName, "")) {
OutputDebugString (debug_buf);
return true;
glGetFloatv (GL_PROJECTION_MATRIX, mat_mv);
matrix44_inverse (inv_mat_mv, mat_mv);
- Atom . . . . 2 matches
Atom is an XML-based document format and HTTP-based protocol designed for the syndication of Web content such as weblogs and news headlines to Web sites as well as directly to user agents. It is based on experience gained in using the various versions of RSS. Atom was briefly known as "Pie" and then "Echo".
The completed Atom syndication format specification was submitted to the IETF for approval in June 2005, the final step in becoming an RFC Internet Standard. In July, the Atom syndication format was declared ready for implementation[1]. The latest Atom data format and publishing protocols are linked from the Working Group's home page.
Before the Atom work entered the IETF process, the group produced "Atom 0.3", which has support from a fairly wide variety of syndication tools both on the publishing and consuming side. In particular, it is generated by several Google-related services, namely Blogger and Gmail.
As well as syndication format, the Atom Project is producing the "Atom Publishing Protocol", with a similar aim of improving upon and standarizing existing publishing mechanisms, such as the Blogger API and LiveJournal XML-RPC Client/Server Protocol.
- BlueZ . . . . 2 matches
The overall goal of this project is to make an implementation of the Bluetooth™ wireless standards specifications for Linux. The code is licensed under the GNU General Public License (GPL) and is now included in the Linux 2.4 and Linux 2.6 kernel series.
ba2str(&(ii+i)->bdaddr, addr);
strcpy(name, "[unknown]");
struct sockaddr_rc loc_addr = { 0 }, rem_addr = { 0 };
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
// bind socket to port 1 of the first available
bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr));
client = accept(s, (struct sockaddr *)&rem_addr, &opt);
ba2str( &rem_addr.rc_bdaddr, buf );
// read data from the client
struct sockaddr_rc addr = { 0 };
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
// set the connection parameters (who to connect to)
str2ba( dest, &addr.rc_bdaddr );
status = connect(s, (struct sockaddr *)&addr, sizeof(addr));
#include <string.h>
struct sockaddr_l2 loc_addr = { 0 }, rem_addr = { 0 };
// bind socket to port 0x1001 of the first available
bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr));
client = accept(s, (struct sockaddr *)&rem_addr, &opt);
- Boost/SmartPointer . . . . 2 matches
== shared_ptr ==
* 표준 라이브러리에도 auto_ptr 이라고 같은 개념의 클래스가 있지만, 버그가 있다. -_-;; auto_ptr를 컨테이너에 집어넣으면 버그땜시 스스로 삭제가 안되 메모리가 새는 아주 심각한 문제이다.
#include <boost/smart_ptr.hpp>
typedef shared_ptr<Vertex3D> Vertex3DSPtr;
typedef vector<Vertex3DSPtr> Vertexs; // 단어 틀렸다는거 알지만 그냥 씀 -_-
typedef Vertexs::iterator VertexsItr;
typedef shared_ptr<Vertexs> VertexsSPtr;
VertexsSPtr vertexs(new Vertexs);
Vertex3DSPtr vertex(new Vertex3D);
=== shared_ptr_example ===
shared_ptr_example.cpp
// Boost shared_ptr_example.cpp --------------------------------------------//
// use, modify, sell and distribute this software is granted provided this
// The original code for this example appeared in the shared_ptr documentation.
// argument, so would not work as intended. At that point the code was
#include <iostream>
#include <boost/shared_ptr.hpp>
// The application will produce a series of
struct Foo
~Foo() { std::cout << "Destructing a Foo with x=" << x << "\n"; }
- BoostLibrary/SmartPointer . . . . 2 matches
== shared_ptr ==
* 표준 라이브러리에도 auto_ptr 이라고 같은 개념의 클래스가 있지만, 버그가 있다. -_-;; auto_ptr를 컨테이너에 집어넣으면 버그땜시 스스로 삭제가 안되 메모리가 새는 아주 심각한 문제이다.
#include <boost/smart_ptr.hpp>
typedef shared_ptr<Vertex3D> Vertex3DSPtr;
typedef vector<Vertex3DSPtr> Vertexs; // 단어 틀렸다는거 알지만 그냥 씀 -_-
typedef Vertexs::iterator VertexsItr;
typedef shared_ptr<Vertexs> VertexsSPtr;
VertexsSPtr vertexs(new Vertexs);
Vertex3DSPtr vertex(new Vertex3D);
=== shared_ptr_example ===
shared_ptr_example.cpp
// Boost shared_ptr_example.cpp --------------------------------------------//
// use, modify, sell and distribute this software is granted provided this
// The original code for this example appeared in the shared_ptr documentation.
// argument, so would not work as intended. At that point the code was
#include <iostream>
#include <boost/shared_ptr.hpp>
// The application will produce a series of
struct Foo
~Foo() { std::cout << "Destructing a Foo with x=" << x << "\n"; }
- C++ . . . . 2 matches
C++ (pronounced "see plus plus") is a general-purpose computer programming language. It is a statically typed free-form multi-paradigm language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. During the 1990s, C++ became one of the most popular commercial programming languages.
Bell Labs' Bjarne Stroustrup developed C++ (originally named "C with Classes") during the 1980s as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among many features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. New version of the standard (known informally as C++0x) is being developed.
In C and C++, the expression x++ increases the value of x by 1 (called incrementing). The name "C++" is a play on this, suggesting an incremental improvement upon C.|}}
벨 연구소의 [http://www.research.att.com/~bs/homepage.html Bjarne Stroustrup]은 1980년대에 당시의 [C]를 개선해 C++을 개발하였다. (본디 C with Classes라고 명명했다고 한다.) 개선된 부분은 클래스의 지원으로 시작된다. (수많은 특징들 중에서 [가상함수], [:연산자오버로딩 연산자 오버로딩], [:다중상속 다중 상속], [템플릿], [예외처리]의 개념을 지원하는) C++ 표준은 1998년에 ISO/IEC 14882:1998로 재정되었다. 그 표준안의 최신판은 현재 ISO/IEC 14882:2003로서 2003년도 버전이다. 새 버전의 표준안(비공식 명칭 [C++0x])이 현재 개발중이다. [C]와 C++에서 ++이라는 표현은 특정 변수에 1의 값을 증가시키는 것이다. (incrementing이라 함). C++이라는 명칭을 이와 동일한 의미를 갖는데, [C]라는 언어에 증가적인 발전이 있음을 암시하는 것이다.
- C++Analysis . . . . 2 matches
* The C++ Programming Language Special Edition
["프로젝트분류"], ["SecretAndTrueOfC++"]
- Calendar성훈이코드 . . . . 2 matches
return 0; //True
return 0; //True
printf("Input the year : ");
printf("Input the first day of week in January (0:Mon -- 6:Sun)");
- CarmichaelNumbers . . . . 2 matches
The number 1729 is a Carmichael number.
The number 561 is a Carmichael number.
- CarmichaelNumbers/문보창 . . . . 2 matches
Carmichael Numbers를 찾는 Theorem이 있는 듯하다. 그러나 때려맞추기(?)로 문제를 풀어도 풀린다. 그러나 속도는 떨어진다.
#include <iostream>
return true;
cout << "The number " << n << " is a Carmichael number.\n";
return true;
return true;
- ClassifyByAnagram/김재우 . . . . 2 matches
import StringIO
outStr = StringIO.StringIO()
a.printAnagram( output = outStr )
outStr.pos = 0
""", outStr.read() )
inStr = StringIO.StringIO()
outStr = StringIO.StringIO()
inStr.write( """ab
inStr.pos = 0
a.main( input = inStr, output = outStr )
outStr.pos = 0
""", outStr.read() )
import string
return string.join( lst, '' ).replace( ' ', '' )
sys.stderr.write( "Elapsed: " + str( time.time() - before ) + "\n" )
/// The main entry point for the application.
static void Main(string[] args)
String line = Console.ReadLine();
TimeSpan elapsed = DateTime.Now.Subtract( start );
m_log = new StringWriter();
- CodeRace/20060105/민경선호재선 . . . . 2 matches
private Hashtable<String, Integer> map;
try {
e.printStackTrace();
map = new Hashtable<String, Integer>();
public String readLine() {
String line = null;
try {
e.printStackTrace();
String line = null;
while(true) {
String word = sc.next();
public static void main(String[] args) {
String temp = list.get(i).getName();
String key2 = (String)it.next();
private String name;
public Data(String name, int count) {
public String getName() {
- CollaborativeFiltering . . . . 2 matches
협업 (상호협동) 필터링, Recommender System이라고도 불림. ProjectPrometheus에서 사용한다.
problem space가 2차원 matrix 의 형태를 생각해본다. 행에 대해서는 item을, 열에 대해서는 user를 두고, 그에 따른 rating 을 값으로 둔다. 이 matrix 를 이용, CollaborativeFiltering 은 특정 사용자(user) i 에 대해서 rating 을 예측하고, item 들을 추천한다.
* Constrained Pearson correlation
* The Spearman rank correlation
* The Vector similarity
* Emtropy-based uncertainty measure
==== Metrics ====
* [http://wwwbroy.in.tum.de/~pretschn/papers/personalization/personalization.html Personalization on the Web]
- CompleteTreeLabeling/하기웅 . . . . 2 matches
#include <iostream>
BigInteger getCompleteTreeLabeling(int l, int d)
while(true)
cout << getCompleteTreeLabeling(level, depth) << endl;
- ComponentObjectModel . . . . 2 matches
{{|Component Object Model, or COM, is a Microsoft technology for software componentry. It is used to enable cross-software communication and dynamic object creation in many of Microsoft's programming languages. Although it has been implemented on several platforms, it is primarily used with Microsoft Windows. COM is expected to be replaced to at least some extent by the Microsoft .NET framework. COM has been around since 1993 - however, Microsoft only really started emphasizing the name around 1997.
The COM platform has largely been superseded by the Microsoft .NET initiative and Microsoft now focuses its marketing efforts on .NET. To some extent, COM is now deprecated in favour of .NET.
Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM.
There exists a limited backward compatibility in that a COM object may be used in .NET by implementing a runtime callable wrapper (RCW), and .NET objects may be used in COM objects by calling a COM callable wrapper. Additionally, several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications.
RCW를 구현하고 있는 .Net 하에서는 COM 객체는 아마도 제한적으로 호환성의 측면에서 사용될 것이다. 또한 .NET 객체들은 아마도 COM callable wrapper를 호출하는 것 때문에 COM 객체들안에서 사용될 것이다. 덧붙여서 COM+가 제공하는 일부분의 서비스들(transaction, queued components)은 여전히 .NET 응용프로그램에서도 중요한 부분이다.
COM is a feature of Windows. Each version of Windows has a support policy described in the Windows Product Lifecycle.
COM is a planned feature of the coming version of Windows, code-named "Longhorn".
- ComputerGraphicsClass/Exam2004_2 . . . . 2 matches
=== Ray Tracing ===
=== Modeling Trchniques ===
- ConcreteMathematics . . . . 2 matches
== Concrete Mathematics ==
1. Look at small cases. This gives us insight into the problem and helps us in stages 2 and 3.
2. Find and prove a mathematical expression for the quantity of interest. (Induction so on..)
3. Find and prove a closed form for our mathematical expression.
[The Tower of Hanoi]
[Lines In The Plane]
- CreativeClub . . . . 2 matches
* Trouble Shooting을 위한 wiki 운영.
* Trello, Wiki 등에 도서 리스트를 정리하고, 지면으로도 출력하여, 외부인에게 알린다.
- CubicSpline/1002/test_tridiagonal.py . . . . 2 matches
from Matrix import *
from TriDiagonal import *
class TestTridiagonal(unittest.TestCase):
def testGetMatrixY(self):
actual = getMatrixY(l, b)
def testGetMatrixX(self):
matrixY = getMatrixY(l, b)
self.assertEquals(matrixY, expectedY)
matrixX = getMatrixX(u, matrixY)
self.assertEquals(matrixX, expectedX)
- CuttingSticks . . . . 2 matches
The minimum cutting is 200.
The minimum cutting is 22.
- DataStructure/Graph . . . . 2 matches
* 2차원 배열로 표현합니다. 정식 이름은 Adjacency Matrix(맞나?--;)
* Traversal(탐색)
= 최소 비용 신장 트리(Minimum Cost Spanning Trees) =
* Dijkstra's Algorithm
* 표현은 인접 행렬(Adjancey(??) Matrix)로 표현(그러니까 2차원 배열)
dist[others] = 무한대
["DataStructure"]
- Debugging/Seminar_2005 . . . . 2 matches
* ask the code
* fully implemented and fully debugged, before the developer(s) responsible for that feature move on to the next feature -> debugging The development Process
* Study The source with debugger
- DelegationPattern . . . . 2 matches
private int _traffic;
public int getTraffic() {
return _traffic;
_traffic+=getDistance(fromCity,toCity)*aNumber;
이 기능을 추가하기 위해 일단 Airport Code 를 Refactoring 하기로 했다. 이를 위해 Airport 의 기능중 Configuration 과 관련된 기능에 대해 Configuration 을 Extract 하고, 내부적으로는 Delegation 함으로서 외부적으로 보이는 기능에 대해서는 일관성을 유지한다. (Test Code 가 일종의 Guard 역할을 했었음)
private int _traffic;
public int getTraffic() {
return _traffic;
_traffic+=getDistance(fromCity,toCity)*aNumber;
- DermubaTriangle/문보창 . . . . 2 matches
// 10233 - Dermuba Triangle
#include <iostream>
[DermubaTriangle]
- DevelopmentinWindows/UI . . . . 2 matches
http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/UI/TrackBar.jpg
http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/UI/TreeView.jpg
- DirectDraw/APIBasisSource . . . . 2 matches
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
while(true)
// Translate and dispatch the message
TranslateMessage( &msg );
case WM_DESTROY:
- EdsgerDijkstra . . . . 2 matches
* http://www.cs.utexas.edu/users/EWD/indexEWDnums.html - Dijkstra 의 컬럼들을 읽을 수 있는 곳.
* [http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD227.PDF StepwiseProgramConstruction] - Structured Programming
* [http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF TheHumbleProgrammer]
위의 Stepwise Program Construction과 The Humble Programmer는 초강력 추천. 감동의 물결. 아마 그 글을 읽고 몇 주 동안은 여러가지 실험을 해보며 흥미진진하게 보내게 될 것이며, 몇 몇은 프로그래밍에 획기적인 전환점을 맞이할 수 있을 것이라 믿음. --김창준
[http://www.cs.utexas.edu/users/UTCS/notices/dijkstra/ewdobit.html 2002년 8월 6일 타계]. 위대하다고 불리는 인물들이 동시대에 같이 살아있었다는 것, 그리고 그 사람이 내가 살아있는 동안에 다른 세상으로 떠났다는 사실이란. 참 묘한 느낌이다. --["1002"]
- EightQueenProblem/Leonardong . . . . 2 matches
return True
self.assertEqual(vaild, True)
def testRun(self):
- EightQueenProblemDiscussion . . . . 2 matches
def testIsAttackableOthers (self):
self.assertEquals (self.bd.IsAttackableOthers (3,3),1)
self.assertEquals (self.bd.IsAttackableOthers (7,1),0)
self.assertEquals (self.bd.IsAttackableOthers (4,4),1)
자신에게 항상 "What is the simplest thing that could possibly work?"라는 질문을 하면서 TestDrivenDevelopment를 했나요? 테스트/코드 사이클을 진행하면서 스텝을 작게 하려고 노력했나요? 중간에 진척이 별로 없는 경우, 어떤 액션을 취했나요? 그 때 테스트 사이클의 스텝을 더 작게하려고 했나요? 만약 다시 같은 문제를 새로 푼다면 어떤 순서로 테스트를 하고 싶나요? (직접 다시 한번 새로 시작하는 것도 강력 추천) 왜 다른 사람들에 비해 시간이 상대적으로 많이 걸렸을까요? 테스트 코드를 사용한 것이 그 시간만큼의 이득이 있었나요? TestDrivenDevelopment를 해내가면서 현재 패스하려고 하는 테스트 케이스에서 무엇을 배웠나요? 켄트벡이 말하는 것처럼 사고의 도구가 되어 주었나요? 참고로 저는 EightQueenProblem을 파이썬으로 약 30분 정도 시간에 50 라인 이내로(테스트 코드 제외) 풀었습니다. TestDrivenDevelopment로요. --김창준
사고의 도구로써는 연습장과 TFP 둘 다 이용했지만, 순수하게 적용하지는 않았습니다. (위의 Queen을 놓는 부분에 대한 재귀호출부분에서는 적용못함) 테스트작성시간/코드작성시간 등에 대한 관리는 하지 않았습니다. (이 부분에 대해서는 반성을. ^^;) 흠.. 그리고 'The Simplest Thing'을 찾아나갔다기 보다도, 이미 해당 문제에 대해서 의사코드를 생각하고, 해당 코드에 대해 Top-Down 형태로 모듈을 나눈뒤에 모듈에 대해 테스트를 만들어갔다는 생각이 드네요. --석천
When the program is run, one has to give a number n (smaller than 32), and the program will return in how many ways n Queens can be put on a n by n board in such a way that they cannot beat each other.
Note that the d=(e-=d)&-e; statement can be compiled wrong on certain compilers. The inner assignment should be executed first. Otherwise replace it with e-=d,d=e&-e;.
- Emacs . . . . 2 matches
=== Tramp ===
* emacs 는 dired mode 는 파일을 관리하고 browse 할 수 있는데, tramp 를 활용하여 remote 를 local 처럼 사용할 수 있습니다.
* tramp 로 sudo 사용하기 : M-x-f {{{/sudo::/etc/}}}
* tramp 로 ssh 사용하기 : M-x-f {{{/ssh:you@remotehost|sudo:remotehost:/path/to/file}}}
;; *This enalbes the database and idle repasitiory
(global-set-key [(control shift tab)]'tabbar-backward)
(global-set-key [(control tab)]'tabbar-forward)
=== color-theme plugin ===
emacs 배경색, 글자색 theme를 제공하는 플러그인이다.
emacs wiki에 color-theme 라고 검색하면 압축파일이 제공된다.
emacs 설정파일이 있는 디렉토리에 color-theme압축파일의 압축을 푼다.
;;Color Theme plugin load
(add-to-list 'load-path "color theme 폴더 경로를 적어준다.")
(require 'color-theme)
(eval-after-load "color-theme"
(color-theme-initialize)
(color-theme-hober)))
- EnglishSpeaking/TheSimpsons/S01E02 . . . . 2 matches
= Bart the Genius =
Homer : Hmm. How could anyone make a word out of these lousy letters?
Lisa : "Id." Triple word score.
Marge : We could look this "id" thing up in the dictionary.
Marge : I think it's under the short leg of the couch.
Lisa : "Id: Along with the ego and the superego
one of three components of the psyche."
Twenty-two points, plus triple word score
Bart : Uh-oh. Kwyjibo on the loose.
[EnglishSpeaking/TheSimpsons]
- EnglishSpeaking/TheSimpsons/S01E05 . . . . 2 matches
= Bart the General =
Friend : Nelson's at the Elm Street Video Arcade.
Bart : Intelligence indicates he shakes down kids for quarters at the arcade.
Herman : Then he heads to the Quick-E-Mart for a cherry Squishy.
Then that's where we'll hit him.
When he leaves the Quick-E-Mart,
we start the saturation bombing.
We got the water balloons?
Is it okay if they say "Happy Birthday" on the side?
Herman : Well, I'd rather they say " Death From Above," but I guess we're stuck.
One will circle around this way to cut off the enemy's retreat,
the other will drive in this way, closing the trap.
Friend : Nelson's at the arcade, General.
I thought I'd never hear the screams of pain...
or see the look of terror in a young man's eyes.
- Expat . . . . 2 matches
Expat is a stream-oriented XML 1.0 parser library, written in C. Expat was one of the first open source XML parsers and has been incorporated into many open source projects, including the Apache HTTP Server, Mozilla, Perl, Python and PHP.
James Clark released version 1.0 in 1998 while serving as technical lead on the XML Working Group at the World Wide Web Consortium. Clark released two more versions, 1.1 and 1.2, before turning the project over to a group led by Clark Cooper, Fred Drake and Paul Prescod in 2000. The new group released version 1.95.0 in September 2000 and continues to release new versions to incorporate bug fixes and enhancements. Expat is hosted as a SourceForge project. Versions are available for most major operating systems.
To use the Expat library, programs first register handler functions with Expat. When Expat parses an XML document, it calls the registered handlers as it finds relevant tokens in the input stream. These tokens and their associated handler calls are called events. Typically, programs register handler functions for XML element start or stop events and character events. Expat provides facilities for more sophisticated event handling such as XML Namespace declarations, processing instructions and DTD events.
Expat's parsing events are similar to the events defined in the Simple API for XML (SAX), but Expat is not a SAX-compliant parser. Projects incorporating the Expat library often build SAX and DOM parsers on top of Expat.
- FileStructureClass . . . . 2 matches
수업내용: 화일 구조에 관한것과 DB 를 쓰기 이전 직접 화일 구조를 만들어서 데이터처리를 할때 데이터 추가/삭제/변경에 관한 이것저것들. External Sort, B-Tree 등의 자료구조와 관련한 좀 더 심화된 내용들.
BTree
- FromDuskTillDawn . . . . 2 matches
각 테스트 케이스에 대해 일단 테스트 케이스 번호를 출력한 다음, 그 다음 줄에 "Vladimir needs # litre(s) of blood." 또는 "There is no route Vladimir can take."를 출력한다 (출력 예 참조).
There is no route Vladimir can take.
Vladimir needs 2 litre(s) of blood. |}}
- GDBUsage . . . . 2 matches
The GNU Debugger, usually called just GDB, is the standard debugger for the GNU software system. It is a portable debugger that runs on many Unix-like systems and works for many programming languages, including C, C++, and FORTRAN.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
Editing targets can be specified in these ways:
FUNCTION, to edit at the beginning of that function,
*ADDRESS, to edit at the line containing that address.
Dynamically load FILE into the running program, and record its symbols
Execute the rest of the line as a shell command.
- Gof/Command . . . . 2 matches
Action, Transaction
Command Pattern은 request 를 객체화함으로서 toolkit 객체로 하여금 불특정한 어플리케이션 객체에 대한 request를 만들게 한다. 이 객체는 다른 객체처럼 저장될 수 있으며 pass around 가능하다. 이 pattern의 key는 수행할 명령어에 대한 인터페이스를 선언하는 추상 Command class에 있다. 이 인터페이스의 가장 단순한 형태에서는 추상적인 Execute operation을 포함한다. 구체화된 Command subclass들은 request에 대한 receiver를 instance 변수로 저장하고 request를 invoke하기 위한 Execute operation을 구현함으로서 receiver-action 짝을 구체화시킨다. The receiver has the knowledge required to carry out the request.
Menu는 쉽게 Command Object로 구현될 수 있다. Menu 의 각각의 선택은 각각 MenuItem 클래스의 인스턴스이다. Application 클래스는 이 메뉴들과 나머지 유저 인터페이스에 따라서 메뉴아이템을 구성한다. Application 클래스는 유저가 열 Document 객체의 track을 유지한다.
* 기본명령어들를 기반으로 이용한 하이레벨의 명령들로 시스템을 조직할 때. 그러함 조직은 transaction을 지원하는 정보시스템에서 보편화된 방식이다. transaction은 데이터의 변화의 집합을 캡슐화한다. CommandPattern은 transaction을 디자인하는 하나의 방법을 제공한다. Command들은 공통된 인터페이스를 가지며, 모든 transaction를 같은 방법으로 invoke할 수 있도록 한다. CommandPattern은 또한 새로운 transaction들을 시스템에 확장시키기 쉽게 한다.
== Structure ==
OpenCommand는 유저로부터 제공된 이름의 문서를 연다. OpenCommand는 반드시 Constructor에 Application 객체를 넘겨받아야 한다. AskUser 는 유저에게 열어야 할 문서의 이름을 묻는 루틴을 구현한다.
PasteCommand 는 receiver로서 Document객체를 넘겨받아야 한다. receiver는 PasteCommand의 constructor의 parameter로서 받는다.
constructor는 receiver와 instance 변수에 대응되는 action을 저장한다. Execute는 단순히 action을 receiver에 적용한다.
이 방법은 단지 단순한 명령어에대한 해결책일 뿐임을 명심하라. track을 유지하거나, receiver와 undo state를 argument 로 필요로 하는 좀더 복잡한 명령들은 Command의 subclass를 요구한다.
- Gof/Singleton . . . . 2 matches
=== Structure ===
* (c) C++ 은 global 객체의 생성자가 translation unit를 통하면서 호출될때의 순서를 정의하지 않는다[ES90]. 이러한 사실은 singleton 들 간에는 어떠한 의존성도 존재할 수 없음을 의미한다. 만일 그럴 수 있다면, 에러를 피할 수 없다.
Smalltalk에서 unique instance를 리턴하는 functiond은 Singleton 클래스의 class method로 구현된다. 단일 인스턴스가 만들어지는 것을 보장하기 위해서 new operation을 override한다. The resulting Singleton class might have the following two class methods, where SoleInstance is a class variable that is not used anywhere else:
SoleInstance isNil ifTrue: [SoleInstance := super new].
더욱더 유연한 접근 방법으로 '''registry of singletons''' 이 있다. 가능한 Singleton class들의 집합을 정의하는 Instance operation을 가지는 것 대신, Singleton class들을 잘 알려진 registry 에 그들의 singleton instance를 등록하는 것이다.
registry 는 string name 과 singletons 을 mapping 한다. singleton의 instance가 필요한 경우, registry에 string name으로 해당 singleton 을 요청한다. registry는 대응하는 singleton을 찾아서 (만일 존재한다면) 리턴한다. 이러한 접근방법은 모든 가능한 Singleton class들이나 instance들을 Instance operation이 알 필요가 없도록 한다. 필요한 것은 registry에 등록될 모든 Singleton class들을 위한 일반적인 interface이다.
static List<NameSingletonPair>* _registry;
Register operation은 주어진 string name으로 Singleton instance를 등록한다. registry를 단순화시키기 위해 우리는 NameSingletonPair 객체의 리스트에 instance를 저장할 것이다. 각 NameSingletonPair는 name과 instance를 mapping한다. Lookup operation은 주어진 이름을 가지고 singleton을 찾는다. 우리는 다음의 코드에서 environment variable이 원하는 singleton의 이름을 명시하고 있음을 생각할 수 있다.
// Lookup returns 0 if there's no such singleton
static MySingleton theSingleton;
if (strcmp (mazeStyle, "bombed") == 0) {
} else if (strcmp (mazeStyle, "enchanted") == 0) {
// ... other possible subclasses
새로운 MazeFactory의 subclass를 정의할때 매번 Instance 가 반드시 수정되어야 한다는 것에 주목하자. 이 application에서야 별다른 문제가 발생하지 않겠지만, 이러한 구현은 framework 내에 정의된 abstract factory들 내에서만 한정되어버린다. (Implementation의 subclass 관련 부분 참조)
가능한 해결책으로는 Implementation에서 언급한 registry approach를 사용하는 것이다. Dynamic linking 방법도 또한 유용한 방법이다. Dynamic linking 은 application으로 하여금 사용하지 않는 subclass 도 전부 load해야 할 필요성을 덜어준다.
많은 pattern들이 SingletonPattern을 사용하여 구현될 수 있다. AbstractFactoryPattern, BuilderPattern, PrototypePattern을 참조하라.
// Construction/Destruction
POSITION position = m_ContainerOfSingleton->GetHeadPosition();
// Construction/Destruction
이 소스를 컴파일하면, outer class의 생성자를 호출하는 부분, 즉 Init()과 Destroy()에서
- HanoiTowerTroublesAgain!/문보창 . . . . 2 matches
// 10276 - HanoiTowerTroublesAgain!
#include <iostream>
return (k == floor(k)) ? true : false;
bool isGo = true;
isGo = true;
[HanoiTowerTroublesAgain!]
- HanoiTowerTroublesAgain!/이도현 . . . . 2 matches
2006-01-17 11:15:29 Accepted 0.000 Minimum 56031 C++ 10276 - Hanoi Tower Troubles Again!
// Hanoi Tower Troubles Again
#include <iostream>
- HanoiTowerTroublesAgain!/조현태 . . . . 2 matches
== [HanoiTowerTroublesAgain!/조현태] ==
#include <iostream>
return TRUE;
isPut = TRUE;
[HanoiTowerTroublesAgain!]
- HowManyFibs?/1002 . . . . 2 matches
while True:
while True:
- HowToStudyRefactoring . . . . 2 matches
* Separate The What From The How : "어떻게"와 "무엇을"을 분리하도록 하라. 어떤 리팩토링이 창발하는가?
- HowToStudyXp . . . . 2 matches
ExtremeProgramming을 어떻게 공부할 것인가
* The Timeless Way of Building : 패턴 운동을 일으킨 Christopher Alexander의 저작. On-site Customer, Piecemeal Growth, Communication 등의 아이디어가 여기서 왔다.
* The Psychology of Computer Programming (Gerald M. Weinberg) : 프로그래밍에 심리학을 적용한 고전. Egoless Programming이 여기서 나왔다.
* Agile Software Development with [http://www.controlchaos.com/ SCRUM](Schwaber Ken) : 최근 Scalability를 위해 XP+[http://www.controlchaos.com/ SCRUM]의 시도가 agile 쪽의 큰 화두임.
* http://groups.yahoo.com/group/extremeprogramming
* http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
* [http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&newwindow=1&group=comp.software.extreme-programming news:comp.software.extreme-programming]
*Michael Feathers
이게 힘들면 같이 스터디를 하는 방법이 있습니다(스터디 그룹에 관한 패턴 KH도 참고하시길. http://www.industriallogic.com/papers/khdraft.pdf). 이 때 같이 책을 공부하거나 하는 것은 시간 낭비가 많습니다. 차라리 공부는 미리 다 해오고 만나서 토론을 하거나 아니면 직접 실험을 해보는 것이 훨씬 좋습니다 -- 두사람 당 한대의 컴퓨터와 커대란 화이트 보드를 옆에 두고 말이죠. 제 경우 스터디 팀과 함께 저녁 시간마다 가상 XP 프로젝트를 많이 진행했고, 짤막짤막하게 프로그래밍 세션도 많이 가졌습니다.
'''Agile Software Development with [http://www.controlchaos.com/ SCRUM]''' by Schwaber Ken
'''A Practical Guide to eXtreme Programming''' by David Astels et al.
'''Extreme Programming in Action''' by Martin Lippert et al.
- InterMap . . . . 2 matches
NowThen http://zeropage.org/wikis/nowthen/
NowThen2004 http://zeropage.org/wikis/nowthen2004/ #지금그때2004 후의 위키 정리 페이지
- InterWikiIcons . . . . 2 matches
The InterWiki Icon is the cute, little picture that appears in front of a link instead of the prefix established by InterWiki. An icon exists for some, but not all InterMap references.
You can set InterWikiIcon to InterMap entries by putting an icon file of name lowercased InterWiki entry name, e.g; meatball for MeatBall, under imgs directory.
* Others?
InterWikiIcon also used in the Unreal:Unreal Wiki.
What about copy gentoo-16.png to gentookorea-16.png for InterMap entry 'GentooKorea'?
The gimp :)
- InterestingCartoon . . . . 2 matches
|| 슬레이어즈 Try || :D X-( || 0 ||
저에게는 모호합니다. 애니와 코믹스도 크게 나눈 것입니다. 저에게 슬레이어즈의 경우 애니는 Slayers와 Slayers Next수작이지만 Try와 극장판은 평작으로 생각하거든요. 베르세르크만 해도 애니는 평작, 코믹스는 수작으로 생각합니다. 반면 더파이팅은 둘다 저에게는 수작입니다. 슬램덩크는 저에게 코믹스는 수작, 애니는 쓰레기 입니다. --NeoCoin
- InvestMulti - 09.22 . . . . 2 matches
print '3. Move to another Nation '
print '3. Move to another Nation '
print 'This Nation has these items :: ' ,items.keys()[0] ,' , ', items.keys()[1]
print 'The Market price is ' , nation[user[NATION]] , ' bytes '
print 'This Nation has these items :: ' ,items.keys()[0] ,' , ', items.keys()[1]
print '3. Move to another Nation '
print 'This Nation has these items :: ' ,items.keys()[0] ,' , ', items.keys()[1]
print 'The Market price is ' , nation[user[NATION]]
print 'This Nation has these items :: ' ,items.keys()[0] ,' , ', items.keys()[1]
- Java/스레드재사용 . . . . 2 matches
while(true) {
try {
ex.printStackTrace();
while (true) {
try {
ex.printStackTrace ();
try {
- JavaScript/2011년스터디/URLHunter . . . . 2 matches
var str;
str="|||";
str=str+'@';
str=str+'a';
str=str+'O';
str=str+'-';
location.href="./urlhunter.php#"+str+"||| time:"+(30-time);
* The Hunter.html
<title>The Hunter</title>
You should kill all the monsters.<br>
Your gun point is 'O' and Others are Monsters.
map.peace = true;
this.alive = true;
if((this.a1.where == -1)&&(this.a2.where == -1)&&(this.a3.where == -1)&&(this.a4.where == -1)&&(this.a5.where == -1)) this.peace = true;
function toString(){
location.href= url + "#" + time + "|" + toString() + "|" + time;
- JollyJumpers/남훈 . . . . 2 matches
return True
return True
line = line.rstrip().split(' ')
- MFC/MessageMap . . . . 2 matches
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
// App command to run the dialog
|| control notification message || 컨트롤 폼과 같은 것으로 부터 부모 윈도우에게 전달되는 WM_COMMAND메시지이다. ||
#define WM_DESTROY 0x0002
#define WM_SETREDRAW 0x000B
* Struct pointed to by WM_GETMINMAXINFO lParam
typedef struct tagMINMAXINFO {
POINT ptReserved;
POINT ptMinTrackSize;
POINT ptMaxTrackSize;
typedef struct tagCOPYDATASTRUCT {
} COPYDATASTRUCT, *PCOPYDATASTRUCT;
#define WM_NCDESTROY 0x0082
typedef struct tagMDINEXTMENU
#define WM_MDIDESTROY 0x0221
#define WM_IME_CONTROL 0x0283
#define WM_DESTROYCLIPBOARD 0x0307
- MindMapConceptMap . . . . 2 matches
ConceptMap 은 Joseph D. Novak 이 개발한 지식표현법으로 MindMap 보다 먼저 개발되었다. (60-70년대) 교육학에서의 Constructivism 의 입장을 취한다.
MindMap 의 문제점은 중간에 새어나가는 지식들이 있다. 기본적으로 그 구조가 상하관계 Tree 구조이기 때문이다. 그래서 보통 MindMap 을 어느정도 그려본 사람들의 경우 MindMap을 확장시켜나간다. 즉, 중심 개념을 여러개 두거나 상하관계구조를 약간 무시해나가면서. 하지만 여전히 책을 읽으면서 잡아나간 구조 그 자체를 허물지는 않는다.
개인적으로 처음에 MindMap 보다는 그리는데 시간이 많이 걸렸다. 하지만, MindMap 에 비해 각 개념들을 중복적으로 쓰는 경우가 적었다. (물론 MindMap 의 경우도 중복되는 개념에 대해서는 Tree 를 깨고 직접 링크를 걸지만) MindMap 의 Refactoring 된 결과라고 보면 좀 우스우려나; 주로 책을 정리를 할때 MindMap 을 하고 때때로 MindMap 에서의 중복되는 개념들을 토대로 하나의 개념으로 묶어서 ConceptMap 을 그리기도 한다.
- MobileJavaStudy/SnakeBite/FinalSource . . . . 2 matches
g.fillRect(0, 0, getWidth(), getHeight());
try {
g.drawImage(splashImage, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
e.printStackTrace();
return true;
SnakeCell currentHead;
currentHead = new SnakeCell(prevHead.x, prevHead.y);
cellVector.insertElementAt(currentHead, headIndex);
currentHead = getSnakeCell(0);
currentHead.x = prevHead.x;
currentHead.y = prevHead.y;
currentHead.x--;
currentHead.x++;
currentHead.y--;
currentHead.y++;
growing = true;
canvasHeight = getHeight();
pause = true;
drawBoard = true;
printLevel = true;
- ModelingSimulationClass_Exam2006_1 . . . . 2 matches
3. Triangular Distribution 그래프 주고
4. (Extra)
1) 나의 경우 해당 문제를 간단한 확률 모델 + Single Queue, Multi Server 의 문제로 파악했다. 확률모델은 1차 합격자를 가리는데 쓰이고, SQMS모델은 실기 시험을 가리는데 사용하고, 가정으로 실기 시험은 7분을 최고 점으로갖는 Triangle Distribution 이라고 가정하고 풀이했음.
- MoinMoinDone . . . . 2 matches
* Strip closing punctuation from URLs, so that e.g. (http://www.python.org) is recognized properly. Closing punctuation is characters like ":", ",", ".", ")", "?", "!". These are legal in URLs, but if they occur at the very end, you want to exclude them. The same if true for InterWiki links, like MeatBall:InterWiki.
* Check for a (configurable) max size in bytes of the RecentChanges page while building it
* Inline code sections (triple-brace open and close on the same line, {{{~cpp like this}}} or {{{~cpp ThisFunctionWhichIsNotaWikiName()}}})
* SGML-Entities were replaced when saving them a second time, i.e. & #160; without the space had a problem.
* Added a means to add meta tags to the page header, like: {{{~cpp
- MoniWikiOptions . . . . 2 matches
`'''$theme='테마이름';'''`
* 테마를 지정한다. See also MoniWikiTheme
`'''$theme_css'''`
* 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'` $theme를 설정한 경우는 이 값이 자동 설정된다.
`'''$logo_string= '<img src="'.$logo_img.'" alt="" border="0" align="middle" />';'''`
`'''$trail'''`
* [Trailer]를 활성화 한다.
`'''$use_trackback'''`
- MoreMFC . . . . 2 matches
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
TranslateMessage (&msg);
PAINTSTRUCT ps;
case WM_DESTROY:
return TRUE;
Create (NULL, _T ("The Hello Application"));
GetClientRect (&rect);
떡하니 source를 보면 어떻게 돌아가는 거야.. --; 라는 생각이 든다.. 나도 잘모른다. 그런데 가장 중요한것은 global영역에 myApp라는 변수가 선언되어 있다는 사실이다. myApp 라는 instance가 이 프로그램의 instance이다. --a (최초의 프로그램으로 인스턴스화..) 그리고, CWinApp를 상속한 CMyApp에 있는 유일한 함수 initInstance 에서 실제 window를 만들어준다.(InitInstance함수는 응용 프로그램이 처음 생길 때, 곡 window가 생성되기전, 응용 프로그램이 시작한 바로 다음에 호출된다) 이 부분에서 CMainWindow의 instance를 만들어 멤버 변수인 m_pMainWnd로 pointing한다. 이제 window는 생성 되었다. 그렇지만, 기억해야 할 것이 아직 window는 보이지 않는다는 사실이다. 그래서, CMainWindow의 pointer(m_pMainWindow)를 통해서 ShowWindow와 UpdateWindow를 호출해 준다. 그리고 TRUE를 return 함으로써 다음 작업으로 진행 할 수 있게 해준다.... 흘. 영서라 뭔소린지 하나도 모르겠네~ 캬캬.. ''' to be continue..'''[[BR]]
그리고, 그 다음으로 진행되는 것이. CMainWindow에 있는 OnPaint라는 함수. window의 client 영역에 무언가를 그리는 함수가 호출된다. (그 전에 이것 저것 많이 있겠지만... 뭐 매크로를 통해 messagemap 관련 entry라던지.. 이런것들을 선언해 주는 작업.. --a) 그래서, DrawText를 이용해 화면 중앙에 "Hello, MFC"를 그린다. 그러면 이 프로그램의 기능(?)은 끝이다.[[BR]]
- NetworkDatabaseManagementSystem . . . . 2 matches
The network model is a database model conceived as flexible way of representing objects and their relationships. Its original inventor was Charles Bachman, and it was developed into a standard specification published in 1969 by the CODASYL Consortium. Where the hierarchical model structures data as a tree of records, with each record having one parent record and many children, the network model allows each record to have multiple parent and child records, forming a lattice structure.
The chief argument in favour of the network model, in comparison to the hierarchic model, was that it allowed a more natural modeling of relationships between entities. Although the model was widely implemented and used, it failed to become dominant for two main reasons. Firstly, IBM chose to stick to the hierarchical model in their established products such as IMS and DL/I. Secondly, it was eventually displaced by the relational model, which offered a higher-level, more declarative interface. Until the early 1980s the performance benefits of the low-level navigational interfaces offered by hierarchical and network databases were persuasive for many large-scale applications, but as hardware became faster, the extra productivity and flexibility of relational systems won the day.
- NotToolsButConcepts . . . . 2 matches
> Visual Basic , but i don't find it interesting, sorry for the vb
> languages, I saw there Python, and took a look at some python sites. I
> saw some snippets and read some docs and liked the language a lot. But I
> don't know if this language is well-accepted in the market and if having
As for the job market, Python isn't among the buzzwords that you'll find in
job descriptions most of the time. But software development isn't that much
about particular technologies, the important part is learning concepts. If
There's a lot more concepts that you can learn while using Python, as you
Ok, I'll try :-)
Learn concepts, not tools. At least in the long run, this will make you
more attractive to employers who have a clue about what's important in the
software industry.
There are some more skills that are especially important:
- Team work: dividing up tasks. Defining the interfaces up front to avoid
blocking other team members who wait for you. Using a source code control
- Communication/efficient problem solving: not trying yourself for days to
the client or writing an email - I've had problems with this myself in
the past, I guess that's not an uncommon problem for developers.
concentration, unit tests, and always trying to improve on yourself help
Teach them skepticism about tools, and explain how the state of the software development art (in terms of platforms, techniques, and paradigms) always runs slightly ahead of tool support, so those who aren't dependent on fancy tools have an advantage. --Glenn Vanderburg, see Seminar:AgilityForStudents
- NumericalAnalysisClass/Report2002_1 . . . . 2 matches
Cubic Spline 함수를 계산하기 위해서는 Tri-Diagonal Matrix 에 대한 해를 구할 수 있어야 한다. 다음과 같이 주어진 Tri-Diagonal Matrix 시스템의 해를 계산하는 프로그램을 작성하시오.
- Ones/1002 . . . . 2 matches
valueStr = str(aValue)
for each in valueStr:
return True
theOnes = "1"
while True:
onesValue = int(theOnes)
return len(theOnes)
theOnes += "1"
- OurMajorLangIsCAndCPlusPlus/string.h . . . . 2 matches
string.h - string과 관련된 라이브러리
|| void * memmove(void * dest, const void * scr, size_t count) || Moves one buffer to another. ||
|| char * strcpy(char * strDestination , const char * strSource ) || Copy a string. ||
|| char * strncpy(char * strDestination, const char * strSource, size_t count) || Copy characters of one string to another ||
|| char * strcat(char * strDestination, const char * strSource) || Append a string. ||
|| char * strncat(char * strDestination, const char * strSource, size_t count) || Append characters of a string. ||
|| int strcmp(const char *stirng1, const char *string2) || Compare strings. ||
|| int strcmpi(const char *stirng1, const char *string2) || Compares two strings to determine if they are the same. The comparison is not case-sensitive. ||
|| int stricmp(const char *stirng1, const char *string2) || Perform a lowercase comparison of strings. ||
|| int strncmp(const char *string1, const char *string2, size_t count) || Compare characters of two strings. ||
|| int strnicmp(const char *string1, const char *string2, size_t count) || Compare characters of two strings without regard to case. ||
|| char * strset(char *string, int c) || Set characters of a string to a character. ||
|| char * strnset(char *stirng, int c, size_t count) || Initialize characters of a string to a given format. ||
|| size_t strlen(const char *string) || Get the length of a string. ||
|| int strcoll(const char * stirng1, const char * stirng2) || Compare strings using locale-specific information. ||
|| char * strchr(const char *string, int c) || Find a character in a string. ||
|| char * strrchr(const char *string, int c) || Scan a string for the last occurrence of a character. ||
|| size_t strcspn(const char *string, const char *strCharSet) || Find a substring in a string. ||
|| size_t strspn(const char *string, const char *strCharSet) || Find the first substring. 포함개수?||
|| char * strdup(const char *strSource ) || Duplicate strings. ||
- Plugin/Chrome/네이버사전 . . . . 2 matches
1. manifest.json의 attribute.
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// found in the LICENSE file.
"sort=relevance&" + // another good one is "interestingness-desc"
true);
img.src = constructImageURL(photo);
function constructImageURL(photo) {
return "http://farm" + photo.getAttribute("farm") +
".static.flickr.com/" + photo.getAttribute("server") +
"/" + photo.getAttribute("id") +
"_" + photo.getAttribute("secret") +
"description": "The first extension that I made.",
toolbar_str = toolbar ? 'yes' : 'no';
menubar_str = menubar ? 'yes' : 'no';
statusbar_str = statusbar ? 'yes' : 'no';
scrollbar_str = scrollbar ? 'yes' : 'no';
resizable_str = resizable ? 'yes' : 'no';
+',toolbar='+toolbar_str+',menubar='
+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str
+',resizable='+resizable_str);
- PragmaticVersionControlWithCVS . . . . 2 matches
= Pragmatic Version Control With CVS =
The Pragmatic Programmers 시리즈. 첫인상은 개념보다는 실용서라는 느낌이 확연하게 들고, 아마존 서평도 꽤 좋은 편이다.
|| ch1 || [PragmaticVersionControlWithCVS/Introduction] ||
|| ch2 || [PragmaticVersionControlWithCVS/WhatIsVersionControl] ||
|| ch3 || [PragmaticVersionControlWithCVS/Getting Started] ||
|| ch4 || [PragmaticVersionControlWithCVS/HowTo] ||
|| ch5 || [PragmaticVersionControlWithCVS/AccessingTheRepository] ||
|| ch6 || [PragmaticVersionControlWithCVS/CommonCVSCommands] ||
|| ch7 || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] ||
|| ch8 || [PragmaticVersionControlWithCVS/CreatingAProject] ||
|| ch9 || [PragmaticVersionControlWithCVS/UsingModules] ||
|| ch10 || [PragmaticVersionControlWithCVS/ThirdPartyCode] ||
- PreviousFrontPage . . . . 2 matches
A WikiWikiWeb is a collaborative hypertext environment, with an emphasis on easy access to and modification of information. This wiki is also part of the InterWiki space.
MoinMoin is a Python WikiClone, based on PikiPiki. The name is a common German slang expression explained on the MoinMoin page. If you run a Wiki using MoinMoin, please add it to the MoinMoinWikis page.
You are encouraged to add to the MoinMoinIdeas page, and edit the WikiSandBox whichever way you like. Please try to restrain yourself from adding unrelated stuff, as I want to keep this clean and part of the project documentation.
You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.
To learn more about what a WikiWikiWeb is, read about WhyWikiWorks and the WikiNature. Also, consult the WikiWikiWebFaq.
* MoinMoinTodo: discussion about the improvement of MoinMoin
* FindPage: search or browse the database in various ways
- ProgrammingPearls . . . . 2 matches
= Introduction =
|| ["ProgrammingPearls/Column1"] || Cracking The Oyster ||
|| ["ProgrammingPearls/Column3"] || Data Structures Programs ||
|| ["ProgrammingPearls/Column7"] || The Back of the Envelope ||
|| ["ProgrammingPearls/Column15"] || Strings of Pearls ||
= Contributor =
- ProgrammingPearls/Column4 . . . . 2 matches
* Data Structure Selection.
=== The shallange of binary search ===
=== Writing the Program ===
=== Understanding the Program ===
* Sequential Control Structures : 이 문장 다음에 저 문장. 그 사이에 assertion을 집어넣는다. 그럼 프로그램 문장 하나하나의 각각의 진행상황을 체크할수가 있다.
* Selection Control Structures : 조건문에서 쓰인다. 각각의 조건마다, 확실히 맞다는 assertion을 집어넣어준다.
* Iteration Control Structures : 위에서도 말했듯이, 초기화, 유지, 종료조건이 확실한가를 체크해야한다.
* Functions : precondition - 함수 시작 전에 보장되어야 할 조건 -과 postcondition - 함수 끝날때에 보장되어야 할 조건 -을 명시해준다.(...) 이러한 방법을 "Programming by contract"라 한다.
=== The Roles of Program Verification ===
- ProgrammingPearls/Column5 . . . . 2 matches
=== The art of assertion ===
=== The Complete Program ===
- ProjectSemiPhotoshop . . . . 2 matches
* 상민 : 너무나 방해가 많은 프로젝트 였다. 강기, 조부 상, 이런 소사들이 팀 프로젝트에 많은 영향을 끼치지 않은것으로 Truck Number가 낮다고 생각되는 것이 참 만족할 느낌이였다.
* Truck Number
- RandomWalk/황재선 . . . . 2 matches
#include <iostream>
void printResult();
printResult();
} while(true);
} while(true);
while(true)
return true;
void printResult()
#include <iostream>
while (true) {
while (true) {
while(true) {
while(true) {
return true;
return true;
while(true) {
void printRoomCount(int **aRoom, int n, int m) {
cout << "\n(2)The final count array:" << endl;
cout << "\n(1)The total number of legal moves: " << count << endl;
void destroyRoom(int **aRoom, int n) {
- RandomWalk2/ExtremePair . . . . 2 matches
self.assertEquals(True, self.man.isBoardAllPassed())
def makeRoach(self, startRow, startCol, journey):
self.currentRow = startRow
self.board[self.currentRow][self.currentCol] += 1
self.currentRow += moveRow
self.board[self.currentRow][self.currentCol] += 1
if(self.currentRow == -1):
self.currentRow = self.row - 1
elif(self.currentRow == self.row):
self.currentRow = 0
return True
startRow = int(raw_input())
journeyString = raw_input()
for i in range(len(journeyString)):
journeyList.append(int(journeyString[i]))
man.makeRoach(startRow, startCol, journeyList)
- Refactoring/MakingMethodCallsSimpler . . . . 2 matches
The name of a method does not reveal its purpose.
''Change the name of the method''
A parameter is no longer used by the method body.
You have a method that returns a value but also changes the state of an object.
''Create two methods, one for the query and one for the modification''
Several methods do similar things but with different values contained in the method body.
''Create one method that uses a parameter for the different values''
You have a method that runs different code depending on the values of an enumerated parameter.
''Create a separate method for each value of the parameter''
void setValue (String name, int value) {
void setHeight (int arg) {
You are getting several values from an object and passing these values as parameters in a method call.
''Send the whole object instead''
An object invokes a method, then passes the result as a parameter for a method. The receiver can also invoke this method.
''Remove the parameter and let the receiver invoke the method''
== Introduce Parameter Object ==
You have a group of parameters that naturally go together.
''Replace them with an object''
http://zeropage.org/~reset/zb/data/IntroduceParameterObject.gif
A method is not used by any other class.
- Refactoring/RefactoringReuse,andReality . . . . 2 matches
== why Are Developers Reluctant to Refactor Their Programs? ==
=== Reducing the Overhead of Refactoring ===
== Implications Regarding Software Reuse and Technology Transfer ==
- Refactoring/SimplifyingConditionalExpressions . . . . 2 matches
* You have a complicated conditional (if-then-else) statement. [[BR]] ''Extract methods from the condition, then part, and else parts.''
* You have a sequence of conditional tests with the same result. [[BR]]''Combine them into a single conditional expression and extract it.''
// compute the disability amount
// compute the disability amount;
* The same fragment of code is in all branches of a conditional expression. [[BR]]''Move it outside of the expression.''
* A method has conditional behavior that does not make clear the normal path of execution [[BR]] ''Use guard clauses for all the special cases.''
if (_isRetried) result = retiredAmount();
if (_isRetried) return retiredAmount();
* You have a conditional that chooses different behavior depending on the type of and object [[BR]] ''Move each leg of the conditional to an overriding method in a subclass. Make the orginal method abstract.''
== Introduce Null Object ==
* You have repeated checks for a null value[[BR]] ''Replace the null value with a null object.''
== Introduce Assertion ==
* A section of code assumes something about the state of the program. [[BR]]''Make the assumption explicit with an assertion.''
Assert.isTrue( _expenseLimit != NULL_EXPENSE || _primaryProject != null );
- ReplaceTempWithQuery . . . . 2 matches
이러한 방법을 사용하면서 부가적으로 얻을 수 있는 장점이 하나 더 있다. 실제로 도움이 될지 안될지 모르는 최적화를 하는데 쏟는 시간을 절약할 수 있다. 임시변수 사용뿐 아니라 이러한 미세한 부분의 조정은, 해놓고 보면 별로 위대해보이지 않는 일을, 할때는 알지 못하고 결국 시간은 낭비한게 된다. 돌이켜보면 나의 이러한 노력이 제대로 효과가 있었는지도 모른다. '''왜?''' 프로파일링 해보지 않았으니까. 단순히 ''시스템을 더 빨리 돌릴 수 '''있을지도''' 모른다''는 우려에서 작성한 것이었으니까. [http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork DoTheSimplestThingThatCouldPossiblyWork]
I do not know what I may appear to the world, but to myself I seem to
have been only a boy playing on the seashore, and diverting myself in
now and then finding a smoother pebble or a prettier shell than
ordinary. Whilst the great ocean of truth lay all undiscovered before me.
- ReverseAndAdd/김정현 . . . . 2 matches
return True
a=str(raw_input())
while reverse(a)!=True:
a=str(int(a)+int(a[::-1]))
- RoboCode . . . . 2 matches
* [http://robocode.sourceforge.net/ RoboCode Central(English)]
||[TheJavaMan/로보코드]|| 휘동 ||
[TheJavaMan/로보코드]와 [JavaStudy2004/로보코드]를 여기로 합치면 좋지 않을까요?--[Leonardong]
- Server&Client/상욱 . . . . 2 matches
public static void main(String[] args) {
try {
ioe.printStackTrace();
try {
while (true) {
e.printStackTrace();
public static void main(String[] args) throws Exception {
String a = "165.194.17.86";
- SmallTalk/강좌FromHitel/강의2 . . . . 2 matches
시다. 그러면 "Transcript"와 "Workspace"라는 제목을 가진 두 개의 창이 뜰
February 1995. With a bit of luck the answer will be 7."
이제 글쇠판에서 <Ctrl-D>를 누르십시오. 그리고 화면을 살펴봅시다. 커서가
위의 문장 끝에 커서를 갖다 놓고, 앞서 사용했던 <Ctrl-D> 글쇠를 사용해서
음의 명령을 실행하면 결과를 알 수 있습니다. <Ctrl-D>를 사용하십시오.
각 명령을 실행하기 위해서는 해당 명령 끝에 커서를 위치하고 <Ctrl-D>글쇠
☞ a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
AbstractToTextConverter ACCEL AcceleratorPresenter AcceleratorTable
DWORDBytes DWORDField EDITSTREAM ... etc ...
글쇠판에서 <Ctrl-I>를 누르십시오. <Ctrl-D>가 아니라 <Ctrl-I>라는 점을
되어있을 것이고, 오른쪽에는 방금 우리가 <Ctrl-D>로 명령을 실행했을 때와
개의 객체(object)들이 존재하는지를 보여줍니다. <Ctrl-I>를 쓰지 말고
<Ctrl-D>로 실행하십시오.
2. <Ctrl-D>글쇠를 입력하면 명령이 실행되고 결과가 나타난다.
3. 나타난 결과가 지나치게 복잡하면 <Ctrl-I>를 사용하여 "탐색기"
text: Time now printString at: 10@10;
덩이를 씌웠으면 이제는 앞에서 한 것처럼 <Ctrl-D>를 입력하여 명령을 실행
일곱 줄에 덩이를 씌운 다음 <Ctrl-D>를 누르자마자 위의 결과를 뿌리면서
는 없습니다. 그냥 명령의 끝에 커서를 놓고 <Ctrl-D>를 눌러보십시오.
UserLibrary default invalidate: nil lpRect: nil bErase: true.
- SmallTalk/강좌FromHitel/강의4 . . . . 2 matches
하나는 "System Transcript"라는 제목이 붙어있는 "알림판"(transcript)이
Smalltalk 환경에서 가장 중요한 창은 "알림판"(transcript)입니다. 원래
'transcript'라는 낱말의 뜻은 '베껴낸 것, 사본, 등본'인데, Smalltalk를
깊이 공부하지 못한 필자로써는 왜 transcript라는 낱말이 이 창에 붙게 되
Transcript show: '안녕하세요?'.
- StandardWidgetToolkit . . . . 2 matches
The most succinct description of the Standard Widget Toolkit component is this:
The SWT component is designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented.
public static void main(String[] args) {
- StructuredText . . . . 2 matches
Structured text is text that uses indentation and simple
symbology to indicate the structure of a document. For the next generation of structured text, see [http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG here].
A structured string consists of a sequence of paragraphs separated by
as the minimum indentation of the paragraph. A paragraph is a
sub-paragraph of another paragraph if the other paragraph is the last
Special symbology is used to indicate special constructs:
* A single-line paragraph whose immediately succeeding paragraphs are lower level is treated as a header.
* A paragraph that begins with a '-', '*', or 'o' is treated as an unordered list (bullet) element.
* A paragraph that begins with a sequence of digits followed by a white-space character is treated as an ordered list element.
* A paragraph that begins with a sequence of sequences, where each sequence is a sequence of digits or a sequence of letters followed by a period, is treated as an ordered list element.
* A paragraph with a first line that contains some text, followed by some white-space and '--' is treated as a descriptive list element. The leading text is treated as the element title.
* Sub-paragraphs of a paragraph that ends in the word 'example' or the word 'examples', or '::' is treated as example code and is output as is.
* Text enclosed single quotes (with white-space to the left of the first quote and whitespace or puctuation to the right of the second quote) is treated as example code.
* Text surrounded by '*' characters (with white-space to the left of the first '*' and whitespace or puctuation to the right of the second '*') is emphasized.
* Text surrounded by '**' characters (with white-space to the left of the first '**' and whitespace or puctuation to the right of the second '**') is made strong.
* Text surrounded by '_' underscore characters (with whitespace to the left and whitespace or punctuation to the right) is made underlined.
* Text encloded by double quotes followed by a colon, a URL, and concluded by punctuation plus white space, *or* just white space, is treated as a hyper link. For example:
* Text enclosed by double quotes followed by a comma, one or more spaces, an absolute URL and concluded by punctuation plus white space, or just white space, is treated as a hyper link. For example:
* Text enclosed in brackets which consists only of letters, digits, underscores and dashes is treated as hyper links within the document. For example:
As demonstrated by Smith [12] this technique is quite effective.
- SummationOfFourPrimes/1002 . . . . 2 matches
return True
return True
1 0.000 0.000 6.387 6.387 <string>:1(?)
1 0.003 0.003 24.926 24.926 <string>:1(?)
1 0.000 0.000 5.417 5.417 <string>:1(?)
1 0.002 0.002 7.878 7.878 <string>:1(?)
1 0.040 0.040 26.768 26.768 <string>:1(?)
1 0.131 0.131 16.671 16.671 <string>:1(?)
- SystemEngineeringTeam . . . . 2 matches
* run trainer course
* [https://trello.com/board/system-engineering/50574d21fd29fa5616f9cf55 trello here]
=== Training Course ===
* [SystemEngineeringTeam/TrainingCourse]
* intra.zeropage.org
- TAOCP/BasicConcepts . . . . 2 matches
* Instruction format
C - 명령어 코드(the poeration code)
F - 명령어의 변경(a modification of the operation code). (L:R)이라면 8L+R = F
±AA - 메모리 주소(the address)
I - 인덱스(the index specification). 값이 1~6으로 rI1~rI6에 있는 내용과 메모리 주소를 더함
* Address transfer operators.
이 연산에서 M은 메모리 셀을 가리키지 않고, 그냥 부호있는 숫자로 쓰인다. ENTr, ENNr, INCr, DECr가 있다. ( r은 A, X, 1~6)
M이 가리키는 메모리 셀로 점프한다. JSJ를 빼면 점프를 하면서 점프 명령어 다음 위치를 rJ에 저장한다. the comparison indicator를 이용하거나(JL, JE, JG, JGE, JLE, JNE) , 레지스터(JrN, JrZ, JrP, JrNN, JrNZ, JrNP)를 이용한다.
HLT 명령은 기계를 멈춘다(The machine stops.)
=== Another Approach(Algorithm B) ===
- TFP예제/WikiPageGather . . . . 2 matches
=== WikiPageGatherTestCase.py ===
from WikiPageGather import *
class WikiPageGatherTestCase (unittest.TestCase):
self.pageGather = WikiPageGather ()
self.pageGather = None
self.assertEquals (self.pageGather.WikiPageNameToMoinFileName ('''한글테스트'''), '''_c7_d1_b1_db_c5_d7_bd_ba_c6_ae''')
self.assertEquals (self.pageGather.WikiPageNameToMoinFileName ("FrontPage"), "FrontPage")
self.pageGather.SetPage ("FrontPage")
self.assertEquals (self.pageGather.GetPageNamesFromPage (), ["LearningHowToLearn", "ActiveX", "Python", "XPInstalled", "TestFirstProgramming", "한글테스트", "PrevFrontPage"])
def testGetPageNamesFromString (self):
strings = "Test First In TestFirstIn TesF TestFi guuweo StringIn"
self.assertEquals (self.pageGather.GetPageNamesFromString (strings), ["TestFirstIn", "TestFi", "StringIn"])
strings = '''["Testing"] ["Testing The Program"] higu TestFirst twet'''
self.assertEquals (self.pageGather.GetPageNamesFromString (strings), ["Testing", "Testing The Program", "TestFirst"])
strings = "== testing =="
self.assertEquals (self.pageGather.IsHeadTagLine (strings), 1)
strings = "tese ewfe ewfw"
self.assertEquals (self.pageGather.IsHeadTagLine (strings), 0)
def testRemoveHeadLine (self):
strings = '''=== ExtremeProgramming ===\ntesting.. -_-a\n== TestFirst Programmin ==\nfwe\n'''
- TeachYourselfProgrammingInTenYears . . . . 2 matches
프로그램을 쓰는 것.학습하는 최고의 방법은,실천에 의한 학습이다.보다 기술적으로 표현한다면, 「특정 영역에 있어 개인이 최대한의 퍼포먼스를 발휘하는 것은, 장기에 걸치는 경험이 있으면 자동적으로 실현된다고 하는 것이 아니고, 매우 경험을 쌓은 사람이어도, 향상하자고 하는 진지한 노력이 있기 때문에, 퍼포먼스는 늘어날 수 있다」(p. 366) 것이며, 「가장 효과적인 학습에 필요한 것은, 그 특정의 개인에게 있어 적당히 어렵고, 유익한 피드백이 있어, 게다가 반복하거나 잘못을 정정하거나 할 기회가 있는, 명확한 작업이다」(p. 20-21)의다(역주3).Cambridge University Press 로부터 나와 있는 J. Lave 의「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(역주4)라고 하는 책은, 이 관점에 대한 흥미로운 참고 문헌이다.
만약 그러한 있고 것이라면, 4년간 대학에서(혹은 대학원에 가, 더욱) 배우는 것.그러면 성적 증명서를 필요로 하는 일자리에 접근하고, 그 분야에 도착해보다 깊은 이해를 얻게 된다.하지만, 학교를 즐길 수 없다고 한다면, (열의가 있으면) 일을 하는 과정에서 같은 체험을 얻을 수 있다.어느 경우이든, 책에 의한 학습만으로는 충분하지 않다.「컴퓨터·사이언스의 교육으로 누군가를 프로의 프로그래머로 하려고 하는 것은, 브러쉬나 그림도구에 대해 배우게 해 프로의 화가로 하는 것 같은 정도 어렵다」라고 The New Hacker's Dictionary(역주5) 의 저자인 Eric Raymond 는 말한다.내가 지금까지 고용한 중에서 최고의 프로그래머의 한 명(역주6)은, 고등학교까지 밖에 나오지 않았다.그렇지만, 그는 많은훌륭한소프트웨어를 만들어, 지금은 자신의뉴스·그룹까지 가지고 있어, 스톡옵션 덕분에, 틀림없이 내가 일생 걸려 벌 수 있는 것보다 좀 더 부자다.
Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
execute single instruction 1 nsec = (1/1, 000,000,000) sec
* 역주 5 - ASCII BOOKS 로부터 「학카즈 대사전」(후쿠사키 타카히로역)로서 국역이 나와 있다.덧붙여 본문에 인용되고 있는 ESR 의 문장이 어느 문장으로부터의 인용인가는 몰랐다.본문에서는 ESR 는 The New Hacker's Dictionary 의 저자로서 이름을 들 수 있지만, 현재의 Jargon File 에는 해당 문장은 없었다.
- TellVsAsk . . . . 2 matches
Alec Sharp, in the recent book Smalltalk by Example [SHARP], points up a very valuable lesson in few words:
Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
''then 에서 than 이 되어야 하는 것이 아닐까요? 제가 원문을 못봐서 함부로 고치기는 힘들군요.''
''맞는 지적인데. 원문도 then 이군. 내가 해석을 than 으로 읽고 실수했네. Thanks.~''
That is, you should endeavor to tell objects what you want them to do; do not ask them questions about their state,
make a decision, and then tell them what to do.
The problem is that, as the caller, you should not be making decisions based on the state of the called object
that result in you then changing the state of the object. The logic you are implementing is probably the called object's
responsibility, not yours. For you to make decisions outside the object violates its encapsulation.
object and then calling different methods based on the results. But that may not be the best way to go about doing it. Tell the object
It is easier to stay out of this trap if you start by designing classes based on their responsibilities,
you can then progress naturally to specifying commands that the class may execute, as opposed to queries
that inform you as to the state of the object.
- TestSuiteExamples . . . . 2 matches
return unittest.defaultTestLoader.loadTestsFromNames( ('ThePackage.test_file1','ThePackage.subpack.test_file2'))
unittest.TextTestRunner(verbosity=2).run(suite())
- TheGrandDinner/조현태 . . . . 2 matches
== TheGrandDinner/조현태 ==
#include <iostream>
#define TRUE 1
struct SNumberAndPosition
readData = strchr(readData, '\n') + 1;
readData = strchr(readData, ' ') + 1;
readData = strchr(readData, '\n') + 1;
readData = strchr(readData, ' ') + 1;
return strchr(readData, '\n') + 1;
bool DeSort(SNumberAndPosition one, SNumberAndPosition another)
return one.number > another.number;
void CalculateAndPrintResult(vector<SNumberAndPosition>& tableSize, vector<SNumberAndPosition>& teamSize)
char* inputString = new char[strlen(DEBUG_INPUT) + 1];
strcpy(inputString, DEBUG_INPUT);
inputString = InputBaseData(inputString, tableSize, teamSize);
if (NULL == inputString)
CalculateAndPrintResult(tableSize, teamSize);
delete[] inputString;
[TheGrandDinner]
- TheKnightsOfTheRoundTable/김상섭 . . . . 2 matches
#include <iostream>
cout << "The radius of the round table is: 0.000" << endl;
cout << "The radius of the round table is: " << temp << endl;
- TheKnightsOfTheRoundTable/하기웅 . . . . 2 matches
#include <iostream>
void getRadius()
cout << "The radius of the round table is: 0.000"<<endl;
cout << "The radius of the round table is: " << 1.0*sqrt(halfSum*(halfSum-a)*(halfSum-b)*(halfSum-c))/halfSum << endl;
getRadius();
- TheLargestSmallestBox/문보창 . . . . 2 matches
// 10215 - TheLagestSmallestBox
#include <iostream>
//#include <fstream>
//fstream fin("in.txt");
[TheLargestSmallestBox] [문보창]
- TheOthers . . . . 2 matches
PL 마지막 팀 프로젝트 "The Others"팀의 프로젝트 페이지
-- TheOthers
- ThePriestMathematician/문보창 . . . . 2 matches
// 10254 - The Priest Mathematician
[ThePriestMathematician]
- TheTrip/곽세환 . . . . 2 matches
#include <iostream>
[TheTrip]
- TheTrip/허아영 . . . . 2 matches
//TheTrip 10137
#include <iostream>
- ToastOS . . . . 2 matches
The war was brief, but harsh. Rising from the south the mighty RISC OS users banded together in a show of defiance against the dominance of Toast OS. They came upon the Toast OS users who had grown fat and content in their squalid surroundings of Toast OS Town. But it was not to last long. Battling with SWIs and the mighty XScale sword, the Toast OS masses were soon quietened and on the 3rd November 2002, RISC OS was victorious. Scroll to the bottom for further information.
== And now... introducing the better alternative... RISC OS ==
RISC OS OWNS YOU ALL! http://www.hashriscos.org LET THE RISC OS VERSUS TOAST OS WAR COMMENCE!
Get the butter.. this could get messy
- TopicMap . . . . 2 matches
TopicMap''''''s are pages that contain markup similar to ['''include'''] (maybe ['''refer'''] or ['''toc''']), but the normal page layout and the ''print layout'' differ: expansion of the includes only happens in the print view. The net result is that one can extract nice papers from a Wiki, without breaking its hyper-linked nature.
''Nice idea. But i would just make it the normal behavior for external links. That way you don't clutter MoinMoin with too many different features. --MarkoSchulz''
I plan to use [ ] with a consistent syntax for such things. How do you mean the external link thing? Including other web pages, or "only" other Wiki pages?
OK, for the simple stuff (i.e. local links), how about this:
* [ include:WikiName] always includes the referred page
Could you provide a more involved example markup and its corresponding rendering? As far as I understand it, you want to serialize a wiki, correct? You should ask yourself what you want to do with circular references. You could either disallow them or limit the recursion. What does "map" do? See also wiki:MeatBall:TransClusion''''''. -- SunirShah
1. Wiki Introduction
This is useable for navigation in the '''normal''' view. Now imagine that if this is marked as a TopicMap, the ''content'' of the WikiName''''''s that appear is included ''after'' this table of contents, in the '''print''' view.
- ToyProblems . . . . 2 matches
ToyProblems를 풀게 하되 다음 방법을 이용한다. Seminar:TheParadigmsOfProgramming [http://www.jdl.ac.cn/turing/pdf/p455-floyd.pdf (pdf)]을 학습하게 하는 것이다.
ToyProblems를 풀면서 접하게 될 패러다임들(아마도): CSP, Generators, Coroutines, Various Forms of Recursion, Functional Programming, OOP, Constraint Programming, State Machine, Event Driven Programming, Metaclass Programming, Code Generation, Data Driven Programming, AOP, Generic Programming, Higher Order Programming, Lazy Evaluation, Declarative Programming, ...
CP도 Functor 의 일종이다. ( 예 - Spiral Matrix를 Vector의 방법으로 풀기). CP부터 배우면 CP에서 제시하는 예에서만 적용하는 것으로 갇힐수 있다.
* The Art and Craft of Problem Solving
- Trace . . . . 2 matches
MFC 에서 제공하는 {{{~cpp TRACE }}} 매크로의 기능을 VC 의 다른 프로젝트에서도 사용할 수 있다. 단, 여기서는 매크로가 아니라 함수인것을 유념하자.
( {{{~cpp TRACE}}} 매크로가 내부적으로 함수 호출을 하는것 같기는 한데 생각해보면 {{{~cpp TRACE}}} 매크로보다 우리가 정의한 함수를 호출하는게 조금더 오버헤드가 있을것 같다 )
#include <iostream>
#define TRACE Trace
#define TRACE ;
void _cdecl Trace(LPCTSTR lpszFormat, ...)
OutputDebugString(szBuffer); // debug output window 에 string 출력
- TrackBackMacro . . . . 2 matches
[[TrackBack(simple)]]
[[TrackBack]]
- TugOfWar/강희경 . . . . 2 matches
def InputTheWeight(aN):
print MakeTwoTeams(InputTheWeight(InputPeopleNumber()))
- UML서적관련추천 . . . . 2 matches
수업시간에 나갈 때의 어찌 하다보니, 주된 스타일은 'All it together' 그리고 그 이후의 단계별 접근으로 진행이 되었습니다. 해당 단계들에 대해서 처음에는 전체적인 부분을 한꺼번에 진행하고, 그리고 각 단계들을 보게 되었습니다.
UML Distilled: A Brief Guide to the Standard Object Modeling Language,3rd Edition
The Unified Modeling Language User Guide 2/E
The Unified Modeling Language Reference Manual (2/E)
- UglyNumbers/곽세환 . . . . 2 matches
* 답은 ''The 1500'th ugly number is <숫자>.'' 형식이어야 한다.
#include <iostream>
cout << "The 1500'th ugly number is " << temp << "." << endl;
#include <iostream>
- WinCVS . . . . 2 matches
''DeleteMe 맞는 이야기인가요? ["sun"]의 기억으로는 아닌것으로 알고 있고, 홈페이지의 설명에서도 다음과 같이 나와있습니다. 'WinCvs is written using the Microsoft MFC.' '' [[BR]]
1. 프로그램을 시작하고 첫 화면을 보자. 무심코 지나쳤다면 Ctrl+F1 또는 Admin - Preference 를 보자.
* Authentication : 접속 방법이다. local 이나 pserver 또는 ntserver를 선택하면 된다.
* Module name and path on the server : 모듈의 이름 (폴더의 이름이 된다.)
2. 수정을 하고 싶은 파일을 선택한 후 Trace - Edit Selection(툴바의 연필그림)을 선택하자
5. 파일을 모두 편집한 후에는 Trace - Unedit(툴바의 지우개그림)을 선택하자.
2. Modefy - Commit(Ctrl + M)을 선택한다.
- ZeroPage_200_OK/소스 . . . . 2 matches
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<tr><!-- table row -->
</tr>
<tr>
</tr>
<tr>
</tr>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<form action="http://zeropage.org/act" method="post" onsubmit="if (this.password.value.length < 1) {alert('required pw'); return false;} else {return true;}">
- [Lovely]boy^_^/Diary/12Rest . . . . 2 matches
* I read a Programming Pearls Chapter 6 a little, because I can't understand very well--;. So I read Chapter 7,8,9,10 roughly. In my opinion, there is no very serious contents.
* I can treat D3D, DInput, but It's so crude yet.
* The DInput's message priority is maybe so high... It's very very fast.--; I can't control it.
* I saw a very good sentence in 'The Fighting'. It's "Although you try very hard, It's no gurantee that you'll be success. But All succecssfull man have tried."
- [Lovely]boy^_^/Diary/2-2-16 . . . . 2 matches
* I completely destroy the marriage and family final-exam.--;
* I borrow the Role Playing Game with DirectX.
* I read a novel named the Brain all day. Today's reading amount is about 600 pages. It's not so interesting as much as the price of fame.
* '''When I am given a motive, I can do the things extreme.'''
* '''There is no man nicer than a man who has a target, and rushs towards it.'''
* I can't translate english sentence that I writed.--;
* I studied Grammar in Use Chapter 39,40. I have not done study this book since then summer.--;
* I read a little Power Reading. Today's reading's principle content is using a regulator(ex) pen, pinger. etc). but this method is what I have used all the time.--; I should read a lot more.
* I studied ProgrammingPearls chapter 3. When I was reading, I could find familiar book name - the Mythical Man Month, and Code Complete.
* '''The more general problem may be easier to solve.'''
* I don't understand accuracy a world, view, projection matrix.--; I should study a lot more.
* '''Keeping the code simple is usually the key to correctness.'''
- hanoitowertroublesagain/이도현 . . . . 2 matches
2006-01-17 09:55:33 Accepted 0.002 Minimum 56031 C++ 10276 - Hanoi Tower Troubles Again!
// Hanoi Tower Troubles Again
#include <iostream>
- html5/drag-and-drop . . . . 2 matches
* draggable = 'true'
* DataTransfer 객체를 이용하여 드래그 대상과 드롭 대상 사이에 임의의 데이터를 주고받는다.
* DataTransfer 객체로부터 데이터를 꺼내어 적절하게 처리하는 부분이다.
- iText . . . . 2 matches
import java.io.FileOutputStream;
try {
PdfWriter.getInstance(document, new FileOutputStream("Hello.pdf"));
e.printStackTrace();
e.printStackTrace();
public static void main(String args[]) {
- 강희경/도서관 . . . . 2 matches
|| 4 || NoSmoke:TheArtOfComputerProgramming || 카누스 || [강희경] || [TAOCP] ||
|| 1 || NoSmoke:TheArtOfComputerProgramming || 카누스 || [강희경] || [TAOCP] ||
- 강희경/메모장 . . . . 2 matches
struct ArratData{
struct ScoreData{
void InputScores(struct ArratData* aArrayData, struct ScoreData* aArray);
void PrintArray(struct ArratData* aArrayData, struct ScoreData* aArray);
void RankScores(struct ScoreData* aArray);
void PrintRanks(struct ScoreData* aArray);
struct ScoreData scoreArray[NUMBER_OF_SCORES];
struct ArratData arrayData;
PrintRanks(scoreArray);
void InputScores(struct ArratData* aArrayData, struct ScoreData* aArray){
void PrintArray(struct ArratData* aArrayData, struct ScoreData* aArray){
/*[[ The contents of score array ]]
printf("\n[[ The contents of score array ]]\n\n");
void RankScores(struct ScoreData* aArray){
void PrintRanks(struct ScoreData* aArray){
if 0.3 then 0.673899088
if 0.3000000001 then 0.076831721
theserverside.com
- 구구단/문원명 . . . . 2 matches
#include <iostream>
8 timesRepeat:[[9 timesRepeat: [Transcript show:n*c.Transcript cr.c:=c+1.]].c := 1.n := n +1.].
- 구구단/이진훈 . . . . 2 matches
8 timesRepeat: [9 timesRepeat: [Transcript show: a * b; cr. b:= b+1]. a:=a+1. b := 1.].
[Transcript show:a;show:'*';show:b;show:'=';show: a * b; cr. b:= b+1]. a:=a+1. b := 1.].
- 금고/조현태 . . . . 2 matches
#include <iostream>
int GetMaxTryNumber(int buildingHeight, int tryNumber)
nodes.resize(tryNumber + 1);
nodes[tryNumber] = 1;
int tryNumber;
cin >> tryNumber;
cout << GetMaxTryNumber(buildingHeight, tryNumber) << endl;
- 다이얼로그박스의 엔터키 막기 . . . . 2 matches
1. Add Virtual Function 클릭해서 PretranslateMessage 함수 추가
BOOL CLogInDlg::PreTranslateMessage(MSG* pMsg)
// TODO: Add your specialized code here and/or call the base class
return CDialog::PreTranslateMessage(pMsg);
- 데블스캠프2005/Python . . . . 2 matches
True
>>> if 'soccer' in dic: 사전이 key를 가지고 있는지 검사. 있으면 True리턴
- 데블스캠프2009/목요일/연습문제/MFC/김태욱 . . . . 2 matches
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
// IDM_ABOUTBOX must be in the system command range.
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
GetClientRect(&rect);
// Draw the icon
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
- 데블스캠프2009/목요일/연습문제/MFC/박준호 . . . . 2 matches
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
ON_BN_CLICKED(IDC_BUTTONsubtruction, OnBUTTONsubtruction)
// IDM_ABOUTBOX must be in the system command range.
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
GetClientRect(&rect);
// Draw the icon
// The system calls this to obtain the cursor to display while the user drags
- 데블스캠프2009/목요일/연습문제/MFC/송지원 . . . . 2 matches
// Construction
CTestDlg(CWnd* pParent = NULL); // standard constructor
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
toop = TRUE;
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
// IDM_ABOUTBOX must be in the system command range.
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
- 데블스캠프2009/목요일/연습문제/MFC/정종록 . . . . 2 matches
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
// IDM_ABOUTBOX must be in the system command range.
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
GetClientRect(&rect);
// Draw the icon
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
- 데블스캠프2011/다섯째날/PythonNetwork . . . . 2 matches
while True:
try:
while True:
- 데블스캠프2011/셋째날/RUR-PLE/박정근 . . . . 2 matches
while True:
=== Trash.rur ===
- 데블스캠프2013/셋째날/머신러닝 . . . . 2 matches
public struct News
static void Main(string[] args)
string[] temp1 = new string[SIZEBIG];
StreamReader reader = new StreamReader(@"C:\ZPDC2013\train_data11293x8165");
String line;
reader = new StreamReader(@"C:\ZPDC2013\train_class11293x20");
temp1 = new string[SIZESMALL];
reader = new StreamReader(@"C:\ZPDC2013\test_data7528x8165");
temp1 = new string[SIZEBIG];
trainData = open('DataSet/train_data11293x8165').readlines();
trainClass = open('DataSet/train_class11293x20').readlines();
for j in range(len(trainData)):
diffValue = compare(testData[i], trainData[j]);
testClass.append(trainClass[similiarIndex]);
#include <iostream>
#include <fstream>
#include <sstream>
#include <istream>
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
std::stringstream ss(s);
- 몸짱프로젝트 . . . . 2 matches
DataStructure를 배우면서 나오는 알고리즘을 구현해보자는 취지로 만든 프로젝트페이지.
SeeAlso [HowToStudyDataStructureAndAlgorithms] [DataStructure] [http://internet512.chonbuk.ac.kr/datastructure/data/ds1.htm 자료구조 정리]
SeeAlso IntroductionToAlgorithms
[몸짱프로젝트/BinarySearchTree]
[몸짱프로젝트/MinimalCostSpanningTree]
- 몸짱프로젝트/InfixToPrefix . . . . 2 matches
return True
self.assertEqual(e.isOperator(token), True)
- 무엇을공부할것인가 . . . . 2 matches
SeparationOfConcerns로 유명한 데이비드 파르나스(David L. Parnas)는 FocusOnFundamentals를 말합니다. (see also ["컴퓨터고전스터디"]) 최근 작고한 다익스트라(NoSmok:EdsgerDijkstra )는 수학과 언어적 능력을 말합니다. ''Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. -- NoSmok:EdsgerDijkstra '' 참고로 다익스트라는 자기 밑에 학생을 받을 때에 전산학 전공자보다 수학 전공자에게 더 믿음이 간다고 합니다.
As for the job market, Python isn't among the buzzwords that you'll find in
job descriptions most of the time. But software development isn't that much
about particular technologies, the important part is learning concepts. If
There's a lot more concepts that you can learn while using Python, as you
Learn concepts, not tools. At least in the long run, this will make you
more attractive to employers who have a clue about what's important in the
software industry.
There are some more skills that are especially important:
- Team work: dividing up tasks. Defining the interfaces up front to avoid
blocking other team members who wait for you. Using a source code control
- Communication/efficient problem solving: not trying yourself for days to
the client or writing an email - I've had problems with this myself in
the past, I guess that's not an uncommon problem for developers.
concentration, unit tests, and always trying to improve on yourself help
- 미로찾기/영동 . . . . 2 matches
#include<iostream>
#include<fstream>
//Structure about stack
struct Element
{//Constructor with initial data
Element(){}//Default constructor
ifstream fin("mazeTxt.txt");
//Push the starting point into the stack
{//Is in the end point?
//Push the last movement to stack
{//The next position is available
cout<<"There is no path in maze\n";
{//Insert the element into the stack
{//Take the element from the stack
{//Is the stack empty?
return true;
{//Show the maze and current position
- 새싹교실/2012/열반 . . . . 2 matches
* The if selection statement랑The if...else selection statement배웠는데 잘모르겟어요..[김민규]
- 새싹교실/2013/케로로반/실습자료 . . . . 2 matches
Social Executive of Computer Science and Engineering will hold a bar event. There are many pretty girls and handsome guys. It will be great day for you. Just come to the bar event and drink. There are many side dishes and beer. Please enjoy the event. but DO NOT drink too much, or FBI will come to catch you. Thank you.
- 스터디/Nand 2 Tetris . . . . 2 matches
= Nand2Tetris =
* 스터디에 사용하는 사이트 -> http://www.nand2tetris.org/
FullAdder(a = a[0], b = false, c = true, sum = out[0], carry = c1);
2개의 Instruction을 지원한다. 각 Instruction은 2Byte이다.
* A-Instruction : @value // Where value is either a non-negative decimal number or a symbol referring to such number.
* C-Instruction : dest=comp;jump // Either the dest or jump fields may be empty.
// If dest is empty, the "=" is omitted;
// if jump is empty, the ";" is omitted;
* A-instruction 을 사용하면, value는 A에 들어간다.
* [http://nand2tetris.org/chapters/chapter%2004.pdf Chapter4 책 내용]
* [http://nand2tetris.org/lectures/PDF/lecture%2004%20machine%20language.pdf PPT 내용]
* [http://nand2tetris.org/04.php 실습 과제]
Memory (data + instruction) + CPU(ALU + Registers + Control) + Input device & Output device
* The Hack Computer
The instruction memory and the data memory are physically separate
* Instruction memory(ROM)
instruction = ROM32K[address]
자세한 설명은 [http://nand2tetris.org/lectures/PDF/lecture%2005%20computer%20architecture.pdf architecture] 에 나와있다.
- 알고리즘8주숙제/문보창 . . . . 2 matches
#include <iostream>
#include <fstream>
#include <string>
ifstream fin("test.txt");
struct Data
string data;
return true;
struct Node
string data;
return true;
string data;
void makeTree()
makeTree();
- 오페라의유령 . . . . 2 matches
소설이 먼저였지만, 개인적으로 Webber 와 Sarah 의 노래를 엄청나게 좋아하는 관계로. 소설을 읽는 내내 머릿속에서 Think of Me, The Music of Night, Wishing you were somehow here again 가 배경음악으로 깔리었다.
웨버아저씨에게 상상력을 선사해준 소설이란? 원작에 상관없이 자신스타일로 작품을 만들어내는 웨버아저씨여서 (그래봤자 본건 하나뿐이지만; 한편은 대본읽음). 개인적인 결론은 해당 소설로부터 자신의 주제의식을 뽑아낸 웨버아저씨 멋져요 이긴 하지만, 이 소설이 태어나지 않았더라면 Phantom of the opera 가 나타나지 않았을 것이란 생각이 들기에. (소설의 구성 등을 떠나서, Phantom 이라는 캐릭터를 볼때)
뮤지컬의 이미지때문인지 (한번도 안본 뮤지컬에 대해 이미지를 떠올리는것도 우스운 일이다. OST와 Sarah 의 뮤직비디오는 많이 보긴 했지만) 크리스틴을 볼때마다 사라아주머니의 젊었을때의 사진을 떠올렸고, Phantom 이 등장할때엔 그 Main Theme (Phantom 의 그 멋진 웃음소리와도 같게 들리는...) 를 떠올렸다.
* EBS 에선가 Joseph and the Amazing Technicolor Dreamcoat를 방영해줬던 기억이 난다. 성경에서의 요셉이야기를 이렇게 표현할 수 있을까; 형 왈 '아마 성경을 이렇게 가르친다면 교회에서 조는 사람들 없을꺼야;' 어떻게 보면 '아아 꿈많고 성공한 사람. 우리도 요셉처럼 성공하려면 꿈을 가져야해;' 이런식이였지만, 아주 신선했던 기억이 난다.
* 암튼 Phantom of the opera 에서 가장 멋진 목소리는 Phantom 이라 생각. 그리고 당근 Sarah 아주머니; Phantom 이라는 캐릭터 이미지가 맘에 들어서. 그리고 노래도.
* 소설에서의 Angle of the music 은 Phantom 을 이야기하는것 같은데, 왜 Webber 의 노래에선 크리스틴을 지칭할까.
- 위시리스트/130511 . . . . 2 matches
* 모기향: The Summer is Comming... - [권순의]
* The C# Programming Language (Fourth Edition) 한국어판 - [김민재]
- 임시 . . . . 2 matches
Travel: 27
String myIP = inet_ntoa(*(in_addr*) *(gethostbyname(myName))->h_addr_list);
In the first stage, you will write a multi-threaded server that simply displays the contents of the HTTP request message that it receives. After this program is running properly, you will add the code required to generate an appropriate response.
[http://developer.amazonwebservices.com/connect/entry.jspa?externalID=101&categoryID=19 Amazon E-Commerce Service API]
This section explains how to use REST (Representational State Transfer) to make requests through Amazon E-Commerce Service (ECS). REST is a Web services protocol that was created by Roy Fielding in his Ph.D. thesis (see Architectural Styles and the Design of Network-based Software Architectures for more details about REST).
REST allows you to make calls to ECS by passing parameter keys and values in a URL (Uniform Resource Locator). ECS returns its response in XML (Extensible Markup Language) format. You can experiment with ECS requests and responses using nothing more than a Web browser that is capable of displaying XML documents. Simply enter the REST URL into the browser's address bar, and the browser displays the raw XML response.
SearchIndex : Books, Toys, DVD, Music, VideoGames, Software or any other of Amazon's stores
- 임인택/AdvancedDigitalImageProcessing . . . . 2 matches
http://www.prip.tuwien.ac.at/~hanbury/intro_ip/
=== Hough Transform ===
http://planetmath.org/encyclopedia/HoughTransform.html
- 정모/2011.5.23 . . . . 2 matches
* 휴면회원 [김홍기]의 [wiki:SibichiSeminar/TrustModel 이 사람이 휴면회원인 이유]
* 먼저 자바스크립트 스터디에 관심이 생겼어요(진경이도 어제 뭐더라.. 어떤 언어가 알고리듬이 아주 달라서 배울만한 가치가 있다고 하더라구요. 같은 맥락이지 싶어요). 내일 몇시인지 알아낸 다음에 어떻게 진행되고 있는지 살펴보고, 적합하다 판단되면 저도 동참해야겠어요. 또 세미나를 보면서, 와.. 저런걸 여기서도 구현하는구나.. 라는 생각이 들었어요. TrustModel과 비슷한걸 만들고자 하는 사람들을 아는데, 저런식으로 아예 수치화 시키는게 역시 효율적인가.. 라는 생각도 들었구요, 후에 연구실(다른데인가?)에 들어간다면 저런걸 하는걸 보게/혹은 후에는 직접 하게될 수 있다는 사실에 나름 다시 감탄(?)했어요. ..아니면 빨리 이 길을 뜨는게 답인가요?ㅋㅋㅋㅋ 아, 또 성현이형이 동아리에서 프로젝트같은거 하신다고 하셨는데, 어떤걸 누구와 어떻게하였는지(그러니까 그 전반)도 한번 들어볼 기회가 있으면 좋겠어요. 여기서 잘 복붙해서 세미나 글에도 후기를 올려야겠네요...ㅎㅎ -[김태진]
- 정모/2011.7.18 . . . . 2 matches
* 해결이 안 된 PIGS와 The lazy programmer를 다같이 풀기로 함.
* Free talking과 Theme talking으로 나누어 진행.
- 정모/2013.9.25 . . . . 2 matches
* 학회 내 안건 등을 Trello에서 공유하고 있습니다.
* Trello의 ZeroPage 그룹에 가입해서 빠른 소식을 전달받으세요.
- 지금그때/OpeningQuestion . . . . 2 matches
see Seminar:DontLetThemDecideYourLife, [http://zeropage.org/wiki/%C0%E7%B9%CC%C0%D6%B0%D4%B0%F8%BA%CE%C7%CF%B1%E2 재미있게공부하기]
|| [HTML(<strike>)]{{{설거지 5 10 15 20 ...}}}[HTML(</strike>)] ||
NoSmok:피터드러커 교수의 [이노베이터의조건]나, TheNextSociery 를 보면, 지식 노동자와 지식 기술자의 정의가 있습니다. 고등학교때 배웠던 정보화 사회는 현재에서 이미 도래했습니다. 그는 책에서 대중적 직업을 크게 지식 기술자와 지식 노동자로 나뉩니다. 지식 기술자는 '''General 한 주제'''을 가지면서 '''한 주제에 특화된 능력'''을 가진 사람이고, 둘다 부족하거나, 한 주제에 전문가 인점을 빼면 지식 노동자로 구분합니다. 정보화 사회의 중기에는 이 두계층의 구분이 거의 없는 반면, 지식 직업들이 늘어나면서 이는 확연히 구분됩니다. 앞으로 더 심해 질것입니다.
- 최대공약수/조현태 . . . . 2 matches
#include <iostream>
#include <iostream>
cout << "The GCD of " << number_a << " and " << number_b << " is ";
#include <iostream>
cout << "The GCD of " << number_a << " and " << number_b << " is "<< get_GCM(number_a,number_b) << "\n";
- 큐와 스택/문원명 . . . . 2 matches
여기서 의문점은 string헤더 파일을 include하지 않고 배열을 char *형으로 하고 #1,#2,#3을 strcpy를 사용하여 고치고 실행한 후,
#1 : strcpy(array[i], "empty");
#2 : strcpy(array[0], "empty");
#3 : strcpy(array[tail], "empty");
#include <iostream>
#include <string>
std::string a;
strcpy(array[i], "empty"); // Pointer가 가르키는 부분이 우연히 접근 가능한 메모리 공간이라면
strcpy(array[0], "empty");
array[count] = array[count+1]; // string의 경우와 달리, Pointer 값만 복사됩니다.
// string 이라면, call by value 로 class간
strcpy(array[tail], "empty"); // 위의 이유로, 역시 의미없는 영역에 대한 복사 입니다.
입력 관련 설명, cin을 통한 {{{~cpp std:string}}}에 입력과, char* 에 입력시 차이
cin 이 string을 입력 받는 코드는 {{{~cpp C:\Program Files\Microsoft Visual Studio\VC98\Include\istream}}} 에 정의 되어 있습니다. 궁금하시면, Debug 모드로 따라가 보세요.
처음에 의도한 string 배열 코드는 다음과 의미가 같습니다.
string element;
이 코드중 >> 는, string에 정의된 코드를 조금 뜯어 보면, 종단에 다음과 같은 코드를 수행합니다. 필요 부분을 발췌하였습니다.
{ // state okay, extract characters
_Str.erase(); // 저장할 string 공간 초기화 위에서 element
_TRY_IO_BEGIN // 예외 처리 시작
- 프로그래밍/DigitGenerator . . . . 2 matches
private static int processOneCase(String line) {
String str = Integer.toString(i);
String [] bits = str.split("");
for(String each : bits) {
public static void main(String[] args) {
try {
String line = br.readLine();
e.printStackTrace();
e.printStackTrace();
- 프로그래밍/Pinary . . . . 2 matches
private static String processOneCase(String line) {
String number;
boolean accept = true;
accept = true;
number = Integer.toBinaryString(i);
if (number.substring(j, j+2).matches("11")) {
public static void main(String[] args) {
try {
String line = br.readLine();
String result = processOneCase(line);
e.printStackTrace();
e.printStackTrace();
- 프로그래밍/Score . . . . 2 matches
try {
String line = br.readLine();
e.printStackTrace();
e.printStackTrace();
private int processOneCase(String line) {
String [] group = line.split("X");
for(String each : group) {
public static void main(String[] args) {
- 프로그래밍언어와학습 . . . . 2 matches
The fatal metaphor of progress, which means leaving things behind us, has utterly obscured the real idea of growth, which means leaving things inside us.
--G. K. Chesterton (1874-1936), British author. Fancies Versus Fads, "The Romance of Rhyme" (1923).
- 허아영 . . . . 2 matches
[TheTrip/허아영]
- .bashrc . . . . 1 match
if [ -f /etc/bashrc ]; then
if [ -z ${DISPLAY:=""} ]; then
if [ -n "$DISPLAY" ]; then
#set -o xtrace # 디버깅용
shopt -s histappend histreedit
if [ -x /usr/games/fortune ]; then
trap _exit 0
alias lt='ls -ltr' # 날짜별로 정렬
alias tree='tree -Cs' # 'ls'의 멋진 대용품
xtitle The $(basename $1|tr -d .[:digit:]) manual
if [ "$(gnuclient -batch -eval t 2>&-)" == "t" ]; then
function fstr() # 여러 파일중에서 문자열 찾기
if [ "$#" -gt 2 ]; then
echo "Usage: fstr "pattern" [files] "
nf=$(echo $filename | tr A-Z a-z)
if [ "$nf" != "$filename" ]; then
if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
if [ $# = 2 ]; then sig=$1 ; fi
then kill $sig $pid
if [ "${BASH_VERSION%.*}" \< "2.05" ]; then
- 1002/TPOCP . . . . 1 match
Seminar:ThePsychologyOfComputerProgramming 맡은 챕터 정리궁리중.
* 책 전체흐름에 대한 abstraction
Variations in the programming task
try & error 식으로 접근. 프로그래밍전 미리 생각하거나 머릿속으로 그려보지 않음
What the programmer is trying to do
- 2002년도ACM문제샘플풀이/문제C . . . . 1 match
#include <iostream>
struct InputData
outputData[i] = true;
Means Ends Analysis라고 하는데 일반적인 문제 해결 기법 중 하나다. 하노이 탑 문제가 전형적인 예로 사용되지. 인지심리학 개론 서적을 찾아보면 잘 나와있다. 1975년도에 튜링상을 받은 앨런 뉴엘과 허버트 사이먼(''The Sciences of the Artificial''의 저자)이 정립했지. --JuNe
- 2010JavaScript . . . . 1 match
-[김정혜] : 저는 Events, Throw, Try...Catch, Animation 을 공부했음^_^
- 2011년독서모임 . . . . 1 match
* 이와 관련해서 외국 음악이랑 외국 영화에 나오는 한국에 대해 찾아보려 했는데요,, 급 귀차니즘 때문에 외국 음악에 나오는 한국 관련된 것만 찾았다는...; 뭐,, 그래서 찾은 것이 Gary Moore의 Murder in the skies 라는 노래인데, 이 노래는 1983년 9월 1일에 뉴욕에서 출발한 한국행 비행기가 소련의 영공에 침범 했나(? -_-;; 죄송;;) 그래서 소련의 전투기가 Kal기를 격추시키는 일이 발생하였는데, 그것을 내용으로 소련의 만행으로 무고한 사람들이 죽음을 당했다는 것을 비판한 노래라 소개 했었고, 또 하나 찾아봤었던게 Deftones의 Korea라는 노래인데... 알고보니까 그냥 노래 내용이 어떤 소녀에 대한 이야기인데 그 소녀의 이름이 한국인 성과 비슷해서 그냥 그렇게 썻다고 해서 패스했습니다.
* [송지원] - 선물 The Present
* 사실 이런 주제를 정한 것도 District 9라는 영화를 보면서 (내용이 지구에 불시착 한 외계인들이 District 9이라는 곳에 살게 되었는데 그들의 인생이 빈민가의 인생인데 실제 빈민가를 소재로 외계인으로 바꾸어 영화화 했다고 합니다.) 이 소설이 불현듯 생각난 것도 있고 해서 읽게 되었습니다.
- 2012년독서모임 . . . . 1 match
* [박한기] - The Goal
- 2dInDirect3d/Chapter2 . . . . 1 match
== Present The Scene ==
CONST RECT* pDestRect,
- 2학기파이선스터디/모듈 . . . . 1 match
>>> import string
>>> dir(string)
['_StringTypes', '__builtins__', '__doc__', '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']
import string
string.__dict__
>>> string.b
Traceback (most recent call last):
string.b
AttributeError: 'module' object has no attribute 'b'
>>> string.b=2
>>> string.b
- 2학기파이선스터디/문자열 . . . . 1 match
Traceback (most recent call last):
valueError : substring not found in string.index
2. 문서 문자열(doucmentation string)을 이용하는 방법
- 3DGraphicsFoundation/MathLibraryTemplateExample . . . . 1 match
typedef vec_t matrix_t[16]; // 4*4 행렬
// matrix prototypes
void matrixIdentity (matrix_t p);
void matrixMultiply (matrix_t a, matrix_t b, matrix_t c);
void matrixRotateX (matrix_t p, vec_t angle);
void matrixRotateY (matrix_t p, vec_t angle);
void matrixRotateZ (matrix_t p, vec_t angle);
void matrixRotate (matrix_t m, vec3_t r);
void matrixMultiplyVector (matrix_t m, vec3_t v);
void matrixMultiplyVector2 (matrix_t m, vec3_t v);
void matrixMultiplyVector3 (matrix_t m, vec3_t v);
void matrixTranslate (matrix_t m, vec3_t a);
void matrixCopy(matrix_t a, matrix_t b);
void matrix33_inverse (mat33_t mr, mat33_t ma);
int matrix44_inverse (mat44_t mr, mat44_t ma);
int matrix44_inverse2 (mat44_t mr, mat44_t ma);
void vectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
- 3DGraphicsFoundationSummary . . . . 1 match
* 광원 모델 사용(Ray-Tracing법 많이 사용)
Define the LoadBMPfile(char *filename) function
Example of using the texturemapping
- 3N 1/김상섭 . . . . 1 match
4358392 2006-02-24 00:56:30 Accepted 2.207 4360 28565 C++ 100 - The 3n + 1 problem
#include <iostream>
struct Data
- 3N+1/김상섭 . . . . 1 match
4358392 2006-02-24 00:56:30 Accepted 2.207 4360 28565 C++ 100 - The 3n + 1 problem
#include <iostream>
struct Data
- 3N+1Problem/문보창 . . . . 1 match
// no100 - The 3n+1 Problem
#include <iostream>
while (true)
- 3학년강의교재/2002 . . . . 1 match
|| 데이터통신 || The Essential Guide to Wireless Communications Applications || Andy Dornan || Prentice-Hall ||
- 5인용C++스터디/윈도우에그림그리기 . . . . 1 match
변수 ps는 PAINTSTRUCT 형식의 구조체이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
두 경우에 있어서 첫번째 인자는 프로그램의 윈도우에 대한 핸들이다. 두번째 인자는 PAINTSTRUCT 형식의 구조체에 대한 포인터이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
WndProc은 BeginPaint를 호출하고 난 후 GetClientRect를 호출한다.
GetClientRect(hwnd, &rect);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
wc.cbClsExtra=NULL;
wc.cbWndExtra=NULL;
TranslateMessage(&mSg);
PAINTSTRUCT ps;
bTF = TRUE;
case WM_DESTROY:
- AOI . . . . 1 match
|| [CompleteTreeLabeling]||. ||. ||. ||. ||. ||. ||. ||. ||
- API/WindowsAPI . . . . 1 match
LPSTR lpszClass="First";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
TranslateMessage(&Message);
case WM_DESTROY:
- ATmega163 . . . . 1 match
= ATmega 163 8bit AVR Microcontroller =
* 130 Powerful Instruction - RISC MPU
* Tree PWM Channels
#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.)
#put the name of the target file here (without extension)
TRG = test
SRC = $(TRG).c \
CPFLAGS = -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)
LDFLAGS = -Wl,-Map=$(TRG).map,--cref
########### you should not need to change the following line #############
all : $(TRG).siz
$(TRG).o : \
$(TRG).c
$(TRG).siz : $(TRG).elf
avr-size --format=sysv $(TRG).elf > $(TRG).siz
avr-size --format=sysv $(TRG).elf
wr : $(TRG).rom
uisp --STK200 --upload $(TRG).rom
- AcceleratedC++/Chapter11 . . . . 1 match
= Chapter 11 Defining abstract data types =
== 11.1 The Vec class ==
== 11.2 Implementing the Vec class ==
=== 11.2.2 생성자(Constructor) ===
Vec<Student_info> vs; // default constructor
== 11.3 Copy control ==
'''implicit copy constructor'''
d = median (vi); // copy constructor work
string line;
vector<string> words = split(words); // copy constructor work
'''explicit copy constructor'''
vector<Student_info> v2 = vs; // copy constructor work (from vs to v2)
Vec(const Vec& v); // copy constructor
Vec(const Vec& v) { create(v.begin(), v.end() ); } // copy constructor
Vec& operator=(const Vec&); // copy constructor
string url_ch = "~;/?:@=&$-_.+!*'(),";
string spaces(url_ch.size(), ' ');
vector<string> split(const string&);
vector<string> v;
=== 11.3.4 소멸자(Destructor) ===
- AcceleratedC++/Chapter4 . . . . 1 match
istream& read_hw(istream& in, vector<double>& hw)
* 입력받은게 등급이 아닐때(점수를 입력해야 되는데 이상한 것을 입력했을때) istream 객체 in은 실패 상태가 된다. 또한 그것을 읽지 않는다. 파일의 끝에 도달한것 처럼...
istream& read_hw(istream& in, vector<double>& hw)
* 소스를 보면 새로운게 눈에 띈다. 바로 try이다. 다음과 같이 쓴다.
try {
// 이리로 온다. 만약에 try 안에서 예외 안 뜨면 catch 안은 수행안한다.
#include <iostream>
#include <string>
istream& read_hw(istream& in, vector<double>& hw);
string name;
try
streamsize prec = cout.precision();
"Please try again." << endl;
istream& read_hw(istream& in, vector<double>& hw)
=== 4.2.1 Keeping all of a student's data together ===
* 학생의 데이터를 묶어 보자. 여기서 struct란 새로운 구문이 나온다. {}안에 멤버로 넣고 싶은 변수들을 쫙 써주면 된다. 접근할라면 . 써주고 변수 쓰면 된다.
struct Student_info {
string name;
istream& read(istream& is, Student_info& s)
* is >> 을 보면, string을 읽었다가 double을 읽기도 한다. 이게 가능한 이유는 오버로딩 때문이다.
- AcceleratedC++/Chapter9 . . . . 1 match
|| 클래스 타입 || string, vector, istream 등 기본언어를 가지고 구현된 타입 ||
struct Student_info {
std::string name;
string, vector 와 같은 것들은 Student_info의 내부 구현시에 필요한 사항이기 때문에 Student_info를 사용하는 프로그램의 또다른 프로그래머에게까지 vector, string을 std::에 존재하는 것으로 쓰기를 강요하는 것은 옳지않다.
struct Student_info {
std::string name;
std::istream& read(std::istream&); //입력 스트림으로 부터 입력을 받아서 4개의 멤버변수를 초기화한다.
istream & Student_info::read(istream& in)
std::istream& read(std::istream&);
std::string name;
struct 키워드 대신 '''class''' 키워드 사용. '''보호레이블(protection label)''' 사용. 레이블은 순서없이 여러분 중복으로 나와도 무관함.
|| struct 키워드를 사용한 클래스 || 기본 보호모드가 public 으로 동작한다. ||
struct Student_info {
std::string name;
struct Student_info {
std::string name;
일반적으로 자료구조가 간단할 때에는 struct를 이용한다. 그러나 2가지 키워드의 사용의 차이는 존재하지 않는다. 단지 문서화를 어떻게 하느냐에 의해 차이가 생길 뿐이다.
std::istream& read(std::istream&);
std::string name() const {return n;}
std::string n;
- ActiveXDataObjects . . . . 1 match
{{|Microsoft ADO (ActiveX Data Objects) is a Component object model object for accessing data sources. It provides a layer between programming languages and databases, which allows a developer to write programs which access data, without knowing how the database is implemented. No knowledge of SQL is required to access a database when using ADO, although one can use ADO to execute arbitrary SQL commands. The disadvantage of this is that this introduces a dependency upon the database.
{{|In the newer programming framework of .NET, Microsoft also present an upgraded version of ADO called ADO.NET, its object structure is quite different from that of traditional ADO. But ADO.NET is still not quite popular and mature till now.
- AirSpeedTemplateLibrary . . . . 1 match
'''Why another templating engine?'''
소스는 subversion 을 이용해서 다운받으면 됨. (해당 위키 페이지 참조. [Trac] 으로 관리되고 있음)
- Ajax/GoogleWebToolkit . . . . 1 match
The Google Web Toolkit is a free toolkit by Google to develop AJAX applications in the Java programming language. GWT supports rapid client/server development and debugging in any Java IDE. In a subsequent deployment step, the GWT compiler translates a working Java application into equivalent JavaScript that programatically manipulates a web brower's HTML DOM using DHTML techniques. GWT emphasizes reusable, efficient solutions to recurring AJAX challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.
- Algorithm/DynamicProgramming . . . . 1 match
Introduction To Algorithm 에도 이에 대한 설명이 있습니다.
== Dijkstra's Shortest Path Algorithm ==
[http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/dijkstra/Dijkstra.shtml]
== Optimal Binary Search Tree ==
- AnEasyProblem/강성현 . . . . 1 match
#include <iostream>
== Trial and error ==
- AnEasyProblem/강소현 . . . . 1 match
public static void main(String[] args){
== Trial and error ==
- AnEasyProblem/김태진 . . . . 1 match
== Trial and error ==
- AnalyzeMary . . . . 1 match
주변에서 남들과 비슷하게 일을 하는 듯 하면서 늘 더 나은 성과를 보이는 사람들이 있다. 대부분은 "메리에겐 뭔가 특별한 것이 있다"(There is something about Mary) 수준의 감탄사를 외치는 데에서 끝난다. 그러면서 나는 왜 그들처럼 될 수 없을까 한탄하고, 곧 까맣게 잊는다.
- AncientCipher/강소현 . . . . 1 match
public static void main(String[] args){
return true;
check[i] = true;
return true;
== Trial and Error ==
- Android/WallpaperChanger . . . . 1 match
private String selectedImagePath;
/** Called when the activity is first created. */
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
return cursor.getString(column_index);
* {{{ manager.setBitmap(Bitmap.createScaledBitmap(b, d.getWidth()*4, d.getHeight(), true)); }}} 왜 * 4냐면 내 폰에 배경화면이 4칸이라 답하겠더라
/** Called when the activity is first created. */
Bitmap b = BitmapFactory.decodeStream(getResources().openRawResource(R.raw.wall1));
try{
manager.setBitmap(Bitmap.createScaledBitmap(b, d.getWidth()*4, d.getHeight(), true));
e.printStackTrace();
startHelloService();
private void startHelloService() {
mTextView.append(mService.toShortString()+" started.\n");
mTextView.append(mService.toShortString()+" is stopped.\n");
mTextView.append(mService.toShortString()+" is alrady stopped.\n");
mRunning = true;
public void onDestroy() {
// onDestroy가 호출되어 서비스가 종료되어도
super.onDestroy();
- Athena . . . . 1 match
|| http://zeropage.org/~mulli2/Athena/Logo.bmp ||
DeleteMe 이름은 좋습니다. 하지만 ["Athena"] 라는 이름의 페이지에는 여신 아테나에 대한 정의와 소개가 들어 있는 것이 올바른 것이겠지요. 그래서 ["ProjectPrometheus"], ["ProjectZephyrus"] 라고 한거랍니다. ;; --["neocoin"]
* Contrast Stretching 작성(20분) - 명훈
* contrast stretching할때 입력값 받지않는 것으로 수정(20분) - 명훈
* 5.4 Contrast Stretched
* 5.6.2 Thereshold
* 7.1 Contrast Stretching
- BarMacro . . . . 1 match
The statement:
We use it in conjunction with the [DueDate Macro] like this:
- BasicJava2005/3주차 . . . . 1 match
== String에 대하여 ==
* String은 Java에서 기본적으로 지원하는 String을 저장하는 자료형
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String line = br.readLine();
e.printStackTrace();
- Basic알고리즘 . . . . 1 match
{{| " 그래서 우리는 컴퓨터 프로그래밍을 하나의 예술로 생각한다. 그것은 그 안에 세상에 대한 지식이 축적되어 있기 때문이고, 기술(skill) 과 독창성(ingenuity)을 요구하기 때문이고 그리고 아름다움의 대상(objects of beauty)을 창조하기 때문이다. 어렴풋하게나마 자신을 예술가(artist)라고 의식하는 프로그래머는 스스로 하는 일을 진정으로 즐길 것이며, 또한 남보다 더 훌륭한 작품을 내놓을 것이다. |}} - The Art Of Computer Programming(Addison- wesley,1997)
- Basic알고리즘/팰린드롬/임인택 . . . . 1 match
palindrome string = (string == (reverse string))
True
- BaysianFiltering . . . . 1 match
그리고 PatternClassification 관련한 여러 알고리즘에도 BayesTheory 를 기본으로 하는게 상당히 많다.
- BigBang . . . . 1 match
* 그러나 비슷한 시기에 탄생한 Fortran, lisp등을 제하고 이후 대부분의 언어에게 영향을 주었으니 ALGOL과 무관한 언어가 있을까..
#include <iostream>
* string Class
* [http://thenine.egloos.com/430823 main 함수의 리턴값]
* 값이 0이면 false 그외는 true
* c++에서도 0은 false로, 그외는 true로 간주된다. while(1) {}, while(true) {} 둘 다 가능
* move constructor(?)
* <<는 shift 연산자에 오버로딩 한 것 (stream)
* ostringstream -> stream에 뭔가 하면 string으로 나온다
#include <iostream>
* 가변인자의 취약점을 이용한 공격 (Format String Attack)
* 참고 : http://www.hackerschool.org/HS_Boards/data/Lib_system/The_Mystery_of_Format_String_Exploitation.pdf
* vector(메모리가 연속적인 (동적) 배열), string, deque(double ended queue, 덱이라고도 한다. [http://www.cplusplus.com/reference/deque/deque/ 참고]), list(linked-list)
* set(집합, 순서가 없는 리스트, 중복을 허용 안함), multiset, map(key와 value가 짝을 지어서 set으로 저장된다), multimap (set과 map은 input 될 때, valanced tree 형태로 저장되기 때문에 search time이 항상 log n을 유지할 수 있다. 즉, 들어온 순서와 정렬 순서가 일치하지 않게 된다.)
* slist(single-list), rope(대용량 string)
* set은 valanced tree 형태로 저장된다. hash-set은 순서가 보장이 되지 않는다.
* string과 vector<char> -> 참조 카운팅을 안 하기 때문에, vector로 쓸 경우 더 빠를 수 있다.
* 삽입과 삭제시 transaction(작업 하다가 오류가 날 경우, 돌아갈 수 있는 기능)이 가능한 경우
* 이렇게 될 경우, widget은 계속 생성되는데, pop을 하면, 만들어진 widget은 계속 메모리에 상주하고, widget을 가리키고 있는 ar 항목들만 삭제된다. 그래서, shared_ptr을 사용한다.
* tr1은 C++0x에서 제정된 것들이 tr1 namespace로 정의되어 있었는데 C++11이 나오면서 다 통합되었다고 한다.
- BookShelf . . . . 1 match
1. [IntroductionToAlgorithms]
1. [TheElementsOfStyle] 4e
Generating Typed Dependency Parses from Phrase Structure Parses - 20070215
A Maximum-Entropy-Inxpired Parser - 20070216
- BuildingWikiParserUsingPlex . . . . 1 match
import cStringIO, StringIO
def makeToStream(self, aText):
return cStringIO.StringIO(aText)
stream = self.makeToStream(aText)
return WikiParser(stream, self.interWikiMap,self.scriptName, self.macros).linkedLine()
def getLinkStr(self, anUrl):
def getImageStr(self, anUrl):
return self.getImageStr(aText)
return self.getLinkStr(aText)
def repl_normalString(self, aText):
urlHeader = Str("http://")
stringUntilSpace = Rep(AnyBut(" "))
url = urlHeader + stringUntilSpace
interwikiDelim = Str(":")
stringUntilSpaceOrCommaOrRest = Rep1(AnyBut(" .,"))
interwiki = alphabetSequence + interwikiDelim + stringUntilSpaceOrCommaOrRest
underbarForLink = Str('_')
macro = Str('[[') + Rep1(AnyBut(']]')) + Str(']]')
space = Str(" ")
bold = Str("'''")
- BusSimulation . . . . 1 match
Discrete Event Simulation이 되겠군요. 사람이 몇 명이 기다리느냐, 길 막힘 상태 등은 이산 확률 분포를 사용하면 될 것입니다. NoSmok:TheArtOfComputerProgramming 에서 NoSmok:DonaldKnuth 가 자기 학교 수학과 건물 엘레베이터를 몇 시간 관찰해서 데이타를 수집한 것과 비슷하게 학생들이 직접 84번, 85-1번 등의 버스를 타고 다니면서 자료 수집을 해서 그걸 시뮬레이션 실험하면 아주 많은 공부가 될 것입니다 -- 특히, 어떻게 실세계를 컴퓨터로 옮기느냐 등의 모델링 문제에 관해. 실제로 NoSmok:DonaldKnuth 는 TAOCP에서 이런 연습문제를 만들어 놨습니다. 제가 학부생 때 누군가 이런 숙제를 내줬다면 아마 한 두 계단(see also ["축적과변화"]) 올라설 계기가 되지 않았을까 하고 아쉬울 때가 있습니다. 이 문제에 드는 시간은 하루나 이틀 정도가 되겠지만 여기서 얻은 경험과 지혜는 십 년도 넘게 자신의 프로그래밍 인생에 도움이 될 것이라 믿어 의심치 않습니다. (팀으로 문제 해결을 하면 더 많은 공부가 되겠지요) see also ProgrammingPartyAfterwords 참고자료 --JuNe
- C++Seminar03/SimpleCurriculum . . . . 1 match
* 강의주제 : {{{~cpp The Little Man Computer}}}, 프로그래밍 개론
- C99표준에추가된C언어의엄청좋은기능 . . . . 1 match
The new variable-length array (VLA) feature is partially available. Simple VLAs will work. However, this is a pure coincidence; in fact, GNU C has its own variable-length array support. As a result, while simple code using variable-length arrays will work, a lot of code will run into the differences between the older GNU C support for VLAs and the C99 definition. Declare arrays whose length is a local variable, but don't try to go much further.
- CMM . . . . 1 match
* Wiki:XpAndTheCmm
- CNight2011/김태진 . . . . 1 match
int coord_ptr[][];로 함수선언했을때 오류가 왜 뜨는가,- 사실 배열도 결국 포인터이다.
(ptr[])[]이라고 생각해야 하는 것을 배웠어요.
Struct 에 대해서도 배웠는데요. 이건 여러가지 자료를 한번에 움직일 수 있다는 거였어요.
typedef struct{
라고 했을때, struct student 김태진; 대신에 STUDENT 김태진; 이라고 별명화? 할 수 있다는거도 알게 되었어요.
2010년 경진대회 문제로 Dynamic, Back Tracking에 대해서 설명해주었어요. 간단하게 요약해보자면, 가능성을 따져보는건데요, 어느 시점에서 그 길이 답이되는 길일 가능성이 없어지면 그 경우의 수는 제외한다는 거죠.
- CVS . . . . 1 match
* [http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/ Yet another CVS tutorial (a little old, but nice)]
=== Trouble shooting ===
This problem is quite common apparently... <the problem>snip > I've been trying to use CVS with the win-cvs client without much > success. I managed to import a module but when I try to do a > checkout I get the following error message: > > cvs checkout chargT > > cvs server: cannot open /root/.cvsignore: Permission denied > > cvs [server aborted]: can't chdir(/root): Permission denied > > I'm using the cvs supplied with RedHat 6.1 - cvs 1.10.6 /snip</the> ---------
It is not actually a bug. What you need to do is to invoke your pserver with a clean environment using 'env'. My entry in /etc/inetd.conf looks like this:
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/env - /usr/bin/cvs -f --allow-root=/usr/local/cvsroot pserver
where '/usr/local/cvsroot' is the path of my repository - replace this with yours.
Apparently, the problem is actually with Linux - daemons invoked through inetd should not strictly have any associated environment. In Linux they get one, and in the error case, it is getting some phoney root environment.
marcus.berglund@entra.se
- CarmichaelNumbers/조현태 . . . . 1 match
#include <iostream>
printf("The number %d is a Carmichael number.\n",number);
- CauGlobal/Interview . . . . 1 match
* 수업이 한국에서와의 다른점은? ( ex Theory 위주인지? Practical 위주인지? )
- CheckTheCheck/곽세환 . . . . 1 match
#include <iostream>
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
return true;
while (true)
isEmpty = true;
[CheckTheCheck]
- CheckTheCheck/문보창 . . . . 1 match
// no10196 - Check the Check
#include <iostream>
#include <cstring>
if (strcmp(chess[i], "........") == 0)
return true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
check = true;
[CheckTheCheck] [문보창]
- Class/2006Fall . . . . 1 match
* [IntroduntionToAlgorithms]
=== DistributedSystemClass ===
=== [(zeropage)FileStructureClass] ===
* Final demonstration is on 5 Dec - 전체 최종본 제출
* Try to talk using given words in chapter 4.
* Show the result on 18 Nov
- Classes . . . . 1 match
[http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1949638&CategoryNumber=002001026004 Advanced Engineering Mathematics 9/E]
[http://www.xper.org/wiki/seminar/TheDragonBook]
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-045JSpring-2005/CourseHome/index.htm MIT open course ware] [[ISBN(0534950973)]]
* Final Demonstration is 5 Jun.
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-837Fall2003/CourseHome/index.htm MIT open course ware]
[http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm Linear Algebra]
* Intersection - adaptive depth control, bounding volumes, first-hit Speedup
* Anti-aliasing - distributed RT
* http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtrace0.htm
* http://en.wikipedia.org/wiki/Ray_tracing
* http://en.wikipedia.org/wiki/Isometric_projection
[http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200302180005 Understanding the Linux Kernel (2nd Edition)]
[http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-828Fall2003/CourseHome/index.htm MIT open courseware] [[ISBN(1573980137)]]
- CleanCode . . . . 1 match
* [http://oddpoet.net/blog/2010/08/02/a-new-look-at-test-driven-development-kr/ BDD, Given/When/Then]
* abstraction level
* String.append와 PathParser.render는 둘이 서로 문자열을 합치는 작업을 하더라도 직접적인 연산을 하는 것과 추상적인 연산을 하는 것의 차이로 서로 추상화 수준이 다르다고 할 수 있다.
* Consider using try-catch-finally instead of if statement.
var array = stringObject.match(/regexp/); // if there is no match, then the function returns null, if not returns array.
array.forEach(/* handle found strings */)
var array = stringObject.match(/regexp/) || []; // if the function returns null, then substitute empty array.
array.forEach(/* handle found strings */)
* 그러나 자신의 실력이 더 나음을 어떻게 비교할 수 있을까? [http://www.intropsych.com/ch07_cognition/learning_curve.html 학습 곡선]도 무시할 수 없다.
* Separate Constructing a System from Using It.
* [http://wiki.zeropage.org/wiki.php/Gof/AbstractFactory Factory Pattern]
* 횡단 관심사의 처리(AOP) : DB 접속, transaction, log 등 다양한 모듈들에서 동일하게 나타나는 작업들
- CleanCodeWithPairProgramming . . . . 1 match
* Trouble Shooting
- CompilerTheory/ManBoyTest . . . . 1 match
if k <= 0 then A := x4 + x5 else B
outreal(A(10, 1, -1, -1, 1, 0));
[CompilerTheory]
- CompleteTreeLabeling/조현태 . . . . 1 match
#include <iostream>
struct block{
#include <iostream>
struct block{
[AOI] [CompleteTreeLabeling]
- ComputerGraphicsClass . . . . 1 match
C++ 코딩에 자신이 없는 사람의 경우 이 책의 맨 앞에 있는 Vector 클래스와 Matrix 클래스 코드를 이용해보기를 권함. 책 설명은 쉬우나 중간중간 설명중 좀 아쉬운 부분이 보이긴 함. (ex : 그래픽스 파이프라인 부분인데 박스 설명은 CPU 파이프라인 설명시의 예 라거나, A* 부분은 설명이 너무 부족)
Project 에 걸리는 시간이 꽤 크므로, 미리미리 스케줄링을 잘 할 필요가 있다. Viewing System 이나 Ray Tracing 은 일주일 이상 조금씩 꾸준하게 진척하기를 권함.
- ConstructorMethod . . . . 1 match
=== Constructor Method ===
그래서 Constructor Method를 쓰기를 권한다. 즉 인스턴스를 똑바로 만들어주는 각각의 메소드를 추가해주는 것이다.
또다른 예로 반지름과 각도를 받아 x,y를 계산해주는 Constructor method를 만들어보자.
static Point* makeFromRnTheta(int r, int theta)
return makeFromXnY(r*cos(theta),r*sin(theta));
- CuttingSticks/김상섭 . . . . 1 match
#include <iostream>
cout << "The minimum cutting is " <<store[0][tokennum] << ".\n";
- CuttingSticks/문보창 . . . . 1 match
#include <iostream>
//#include <fstream>
//fstream fin("in.txt");
return true;
cout << "The minimum cutting is " << result << ".\n";
- CuttingSticks/하기웅 . . . . 1 match
#include <iostream>
struct Stick {
cout << "The minimum cutting is "<<calculate()<<"."<<endl;
- D3D . . . . 1 match
Tricks of the Windows Game Programming Gurus : Fundamentals of 2D and 3D Game Programming. (DirectX, DirectMusic, 3D sound)
struct point3
struct
struct point3
return true;
struct polygon
int nElem; // number of elements in the polygon
DestroyData();
void DestroyData( )
DestroyData();
struct plane3 {
point3 n; // Normal of the plane
float d; // Distance along the normal to the origin
// Construct a plane from three 3-D points
// Construct a plane from a normal direction and a point on the plane
// Construct a plane from a polygon
// Flip the orientation of the plane
// this is the vector pointing away from the obstacle ??
return true; // ok. obstacle을 피했다.
- DataStructure . . . . 1 match
* 파스칼을 만들고 튜링상을 받은 Niklaus Wirth 교수는 ''Algorithms+Data Structures=Programs''라는 제목의 책을 1976년에 출간했다.
''하지만, 이는 기존 70,80년대 Structured Programming에서 보는 프로그램의 상당히 제한적인 시각이다.''
* OOP시대에는 위의 개념이 살짝 바뀌었더군여. Algorithms+Data Structure=Object, Object+Object+....+Object=Programs 이런식으로..
["DataStructure/Foundation"]
["DataStructure/String"]
["DataStructure/Stack"]
["DataStructure/Queue"]
["DataStructure/List"]
["DataStructure/Tree"]
["DataStructure/Graph"]
["DataStructure/Hash"]
["DataStructure/Sort"]
see also HowToStudyDataStructureAndAlgorithms
- DataStructure/Foundation . . . . 1 match
["PascalTriangle"]
["DataStructure"]
- Debugging . . . . 1 match
|| Run to Cursor || Ctrl+F10 || 현재 커서가 있는 곳으로 디버깅 지점이 바뀜. 단 이미 지난 곳으로는 안됨 ||
||BreakPoint ||* Ctrl + Shift + b || 디버깅 모드에서 멈출곳을 지정 ||
* tip : Ctrl + F11 : 실행
* [http://korean.joelonsoftware.com/Articles/PainlessBugTracking.html 조엘아저씨의 손쉬운 버그 추적법]
- DebuggingSeminar_2005/DebugCRT . . . . 1 match
#include <string.h>
// include crtdbg.h after all other headers.
//turn on the full heap checking
CRT의 기본 함수들의 출력은 디버그 메시지 윈도우이다. 이를 변경하기위해서는 _CrtSetReportMode()라는 함수를 이용해서 출력에대한 일반 목적지를 지정하고, _CrtSetReportFile()를 이용해서 특별한 스트림 목적지를 설정해야한다.
{{{~cpp int _CrtSetReportMode(int reportType, int reportMode);
|| _CRTDBG_MODE_FILE || output stream ||
{{{~cpp _HFILE _CrtSetReportFile(int reportType, _HFILE reportFile);
참조) [http://zeropage.org/wiki/AcceleratedC_2b_2b_2fChapter11#line287 The rule of Three]
- DermubaTriangle/김상섭 . . . . 1 match
4301786 2006-02-02 05:29:25 Accepted 0.023 Minimum 28565 C++ 10233 - Dermuba Triangle
#include <iostream>
- DevelopmentinWindows/APIExample . . . . 1 match
LPCSTR szWindowClass = "API Window Class";
int APIENTRY WinMain(HINSTANCE hInstance,
LPSTR lpCmdLine,
TranslateMessage(&msg);
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.lpszMenuName = (LPCSTR)IDC_API;
return TRUE;
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
DestroyWindow(hWnd);
case WM_DESTROY:
return TRUE;
return TRUE;
// Generated from the TEXTINCLUDE 2 resource.
// Generated from the TEXTINCLUDE 3 resource.
#define _APS_NEXT_CONTROL_VALUE 1000
- DirectDraw . . . . 1 match
* DDSCL_ALLOWREBOOT : Ctrl+Alt+Del을 사용 가능하게
hb = (HBITMAP) LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP), IMAGE_BITMAP, cxDesire, cyDesire, LR_CREATEDIBSECTION);
StreachBlt(~~);
[1002] Output 이 급하다면 DirectX Media SDK 를 이용할 수도 있습니다. 알파블랜딩 기본적으로 지원합니다. 그리고 Transform Libary 를 이용하면 화면 전환과 관련된 특수효과들을 이용할 수도 있죠. 하지만, 공부하시는 입장에서는 이론을 파고들어서 직접 해보는 것이 좋겠죠.[[BR]]
- DirectDraw/DDUtil . . . . 1 match
["TheWarOfGenesis2R"]페이지의 개설에 따라 사용법을 모읍니다.
CreateSurfaceFromBitmap(CSurface** ppSurface, TCHAR* strBMP, DWORD dwDesiredWidth, DWORD dwDesiredHeight)
* strBMP : 비트맵 파일의 파일명을 넣는다.
CreateSurfaceFromText( CSurface** ppSurface, HFONT hFont, TCHAR* strText, COLORREF crBackground, COLORREF crForeground)
CreatePaletteFromBitmap( LPDIRECTDRAWPALETTE *ppPalette, const TCHAR *strBMP)
- DocumentObjectModel . . . . 1 match
Document Object Model (DOM) is an application programming interface to access HTML and XML documents. It is programming language and platform independent. Behind the interface the document is represented with an object-oriented model.
Different variants of DOMs were initially implemented by web browsers to manipulate elements in an HTML document. This prompted the World Wide Web Consortium (W3C) to come up with a series of standard specifications for DOM (hence called W3CDOM).
DOM puts no restrictions on the document's underlying data structure. A well-structured document can take the tree form using DOM.
Most XML parsers (e.g., Xerces) and XSL processors (e.g., Xalan) have been developed to make use of the tree structure. Such an implementation requires that the entire content of a document be parsed and stored in memory. Hence, DOM is best used for applications where the document elements have to be randomly accessed and manipulated. For XML-based applications which involve a one-time selective read/write per parse, DOM presents a considerable overhead on memory. The SAX model is advantageous in such a case in terms of speed and memory consumption.
- Eclipse . . . . 1 match
1. Menu -> Window -> Open Perspective -> CVS Repositary (없으면 Other)에서
* Ctrl + H Search에서 파일 검색, *.java 파일 검색, ;를 검색한다. 아~ 멋진 Search기능 --;
* Ctrl + H Search에서 파일 검색, *.java 파일 검색, * 로 검색한다. String Set을 검색한다.
||Ctrl + T || 상속 관계를 소스의 팝업창으로 보인다. ||
||Ctrl+1||Quick Fix, 잘못 된 부분에 대하여 권장하는 수정 방법을 보여준다. 사고를 둔화 시킨다. --;; 예를들어 import가 안되었다 싶으면 시키라고 하고, 선언된 클래스가 없으면 만드는 것까지 나온다. 빨간줄 나오면 눌러보라. 가장 경악할 기능.||
||Ctrl+Space ||자동완성. 퀵픽스에 버금가는 사기 기능. 내가 무슨 기능을 쓸 수 있는지 자바독과 함께 보여주며 엔터만 치면 구현을 끝내주는 역할을 한다. 혹자는 퀵픽스와 자동완성, 그리고 JUnit만 있으면 어떤 프로그램이든 만들 수 있다고 한다.||
||Ctrl+F6|| Edit간 전환||
||Ctrl+F7|| View간 전환||
||Ctrl+F8|| Prespective간 전환||
|| Ctrl+Alt+H || 메소드 호출 순서를 Tree로 보여준다. ||
||Ctrl+Shift+F|| code의 정렬해준다. 한라인의 소스가 길어지면(100이상) 포멧팅에 한계 보이기도 한다. ||
|| Ctrl+Alt+Up/Down || 라인 or 선택영역 복제(영역선택후 이용 가능) ||
|| ctrl + / || 선택된 줄들의 주석처리 및 해제 (굉장히 유용합니다.) ||
|| ctrl + d || 현재 줄 삭제 (이것도 노가다 많이 줄여줍니다.) ||
* [neocoin]:정말 Java Source Editor면에서는 이것보다 나은것을 찾지 못하겠다. CVS 지원 역시 훌륭하고, Project파일 관리 면에서도 우수하다. 하지만 가장 인상 깊었던건 오픈 프로젝트라서, 이걸 볼수 있다는 점이다. 바로 [http://64.38.198.171/downloads/drops/R-2.0-200206271835/testResults.php org.eclipse.core.tests] 이런것을 각 분야별로 수백개씩 하고 있었다. 이런것은 나에게 힘을 준다. --상민
* 기능으로 보나 업그레이드 속도로 보나 또하나의 Platform; 플러그인으로 JUnit 이 아에 들어간것과 리펙토링 기능, Test Case 가 new 에 포함된 것 등 TDD 에서 자주 쓰는 기능들이 있는건 반가운사항. (유난히 자바 툴들에 XP 와 관련한 기능들이 많이 추가되는건 어떤 이유일까. MS 진영에 비해 자바 관련 툴의 시장이 다양해서일까) 아주 약간 아쉬운 사항이라면 개인적으로 멀티 윈도우 에디터라면 자주 쓸 창 전환키들인 Ctrl + F6, Ctrl + F7 은 너무 손의 폭 관계상 멀어서 (반대쪽 손이 가기엔 애매하게 가운데이시고 어흑) ( IntelliJ 는 Alt + 1,2,3,.. 또는 Alt + <- , ->) 단축키들이 많아져 가는 상황에 재정의하려면 끝도 없으시고. (이점에서 최강의 에디터는 [Vi] 이다;) 개인적 결론 : [Eclipse] 는 Tool Platform 이다; --석천
혹시 그 큰 규모라는 것이 어느정도 인지 알수 있을까요? 라인을 쉽게 세기 위해서 현 Eclipse를 새로 하나 복사해서 Eclipse용 metric 툴은 http://metrics.sourceforge.net/ 를 설치하시고 metric전용으로 사용하여 쓰면 공정-'Only counts non-blank and non-comment lines inside method bodies'-하게 세어줍니다. (구지 복사하는 이유는 부하를 많이 줍니다.) -- NeoCoin
저랑 경우가 비슷하시군요. 2003년 5월에 평가하고 적용 시작했습니다. 11월말 쯤 종료되었고, 전체 프로젝트에 Eclipse를 적용한 것이 아니라, 제가 맡은 모듈에만 적용했습니다. 전체 프로젝트 인원이 25명정도였는데, 제가 맡은 모듈에는 6명 정도가 참여했습니다. 말씀하신 metric 도구는 한 번 써서 계산해 보겠습니다. 좋은 정보 감사... -- [warbler]
- EffectiveSTL . . . . 1 match
* Scott Meyers's Trilogy 라고 불리는 시리즈의 3번째 것이다. ''(EC++, MEC++, ESTL)'' 나의 경우에는 일단 CVS에 대한 정리를 끝내고 한서로 읽을 생각이며, 읽으면서 기존의 부분에 보충과 함께 약간의 정리를 해나갈 계획이다. 번역서가 곽용재씨가 직업한 것이라서 한서에대한 걱정도 적은편이다. - [eternalbleu]
=== 2. Vector and String ===
["EffectiveSTL/VectorAndString"]
=== 7. Programming with the STL. ===
- EightQueenProblem/강인수 . . . . 1 match
#include <iostream>
return true;
return True
def traverse(self, curRow):
self.traverse(curRow+1)
queen.traverse(0)
- EightQueenProblem/용쟁호투 . . . . 1 match
$PBExportHeader$eightqueenproblem.sra
global transaction sqlca
string appname = "eightqueenproblem"
String is_solution[8]
IF il_limit >= 30000 THEN
If wf_chack_attack(li_x, li_y) Then CONTINUE;
is_solution[il_queen_count] = 'Queen No : ' + String(il_queen_count) + ' / X : ' + String(li_x) + ' / Y : ' + String(li_y)
RETURN TRUE
String ls_temp[8]
IF il_attack[ai_x,ai_y] = 1 THEN RETURN TRUE
IF li_x > li_y THEN
ELSEIF li_x < li_y THEN
IF li_x > li_y THEN
ELSEIF li_x < li_y THEN
sqlca=create transaction
on eightqueenproblem.destroy
destroy(sqlca)
destroy(sqlda)
destroy(sqlsa)
destroy(error)
- EightQueenProblem/이선우2 . . . . 1 match
import java.io.PrintStream;
private PrintStream out;
public int countAnswers( final PrintStream out )
checkOne = true;
if( hasAnswer == 1 ) return true;
return true;
return true;
public static void main( String [] args )
try {
try {
e.printStackTrace();
- EightQueenProblem2 . . . . 1 match
||nextream|| 0.1m || 21 lines ["EightQueenProblem/nextream"] 에서 check(1)을 check(0)으로 || Javascript ||
선택사항 : EightQueenProblemSecondTry
- EightQueenProblemSecondTry . . . . 1 match
see also EightQueenProblemSecondTryDiscussion
- English Speaking/The Simpsons/S01E04 . . . . 1 match
= There's no disgrace like home =
Homer : Another beer, Moe.
Moe : What's-a matter, Homer? Bloodiest fight of the year.
You're sitting there like a thirsty bump on a log.
who's been terrorizing the neighborhood.
Let the nice people enjoy their beers.
Ah, don't worry. This dog has the scent.
You got crummy little kids that nobody can control.
Homer : You can't talk that way about my kids! Or at least two of them.
- EnglishSpeaking/2012년스터디 . . . . 1 match
* [https://trello.com/board/english-speaking-study/5076953bf302c8fb5a636efa Trello]
* Free talking and retrospective.
* [http://www.bombenglish.com/2008/01/27/1-host-introductions/ Bomb English - Episode 1]
* We tried to do shadowing but we found that conversation is not fit to do shadowing.
* Free talking and retrospective.
* Free talking and retrospective.
* Today, we were little confused by Yunji's appearance. We expected conversation between 2 persons but there were 3 persons who take part in episode 2. And we made a mistake about deviding part. Next time, when we get 3 persons' conversation again, we should pay attention to devide part equally. Or we can do line by line reading instead of role playing.
- EnglishSpeaking/TheSimpsons . . . . 1 match
[[pagelist(^EnglishSpeaking/TheSimpsons/S01)]]
- EnglishSpeaking/TheSimpsons/S01E01 . . . . 1 match
Marge : Hmm. I get the feeling there's something you haven't told me, Homer.
Marge : You tell me that all the time.
Homer : Well, I would- I- I wanna do the Christmas shopping this year.
[EnglishSpeaking/TheSimpsons]
- EnglishSpeaking/TheSimpsons/S01E03 . . . . 1 match
Lisa : Here's a good job at the fireworks factory.
Lisa : How 'bout this? Supervising technician at the toxic waste dump.
Marge : There, there, Homer. You'll find a job.
You've caused plenty of industrial accidents, and you've always bounced back.
- EnglishSpeaking/TheSimpsons/S01E04 . . . . 1 match
= There's no disgrace like home =
Homer : Another beer, Moe.
Moe : What's-a matter, Homer? Bloodiest fight of the year.
You're sitting there like a thirsty bump on a log.
who's been terrorizing the neighborhood.
Let the nice people enjoy their beers.
Ah, don't worry. This dog has the scent.
You got crummy little kids that nobody can control.
Homer : You can't talk that way about my kids! Or at least two of them.
- EnterpriseJavaBeans . . . . 1 match
Java 의 분산컴포넌트 모델. RMI 의 개념 + Transaction + @
- Euclid'sGame/강소현 . . . . 1 match
public static void main(String[] args) {
== Trial and Error ==
- ExploringWorld/20040308-시간여행 . . . . 1 match
집으로 돌아와 MakeAnotherWorld 라는 세상을 만든다는 거창한 은유법보다, 여행을 한다는 느낌의 은유로 시작하면 재미있겠다는 생각이 들었다. 그래서 WalkingAroundWorld 나, CyclingWorld 같은 여행이라는 은유의 제목이 더 그럴싸한것 같은데, 너희들은 어때? --NeoCoin
탐험하는것은 어때요? Exploring(The)World 같은... --세환
- ExtremeProgramming . . . . 1 match
ExtremeProgramming 은 경량개발방법론으로서, RUP 등의 방법론에 비해 그 프로세스가 간단하다. XP 에서의 몇몇 개념들은 일반적인 프로그래밍에서도 유용하게 쓰일 수 있다. 특히 TestDrivenDevelopment(TestFirstProgramming) 의 개념과 Refactoring, UnitTest는 초기 공부할때 혼자서도 실습을 해볼 수 있는 내용이다. 개인 또는 소그룹의 훈련으로도 이용할 수 있을 것이다.
http://extremeprogramming.org/map/images/project.gif
* ThePlanningGame: 개발자는 UserStory들에 대해서 구현, 예측, 지시들에 대해 토론한다.
* http://extremeprogramming.org - 처음에 읽어볼만한 전체도.
* [http://www.trireme.com/whitepapers/process/xp-uml/xp-uml-short_files/frame.htm eXtremeProgrammingMeetsUML] - 아직 읽어보지 않았음.
- ExtremeProgrammingExplained . . . . 1 match
ExtremeProgramming 의 철학을 소개한 서적. 저자 KentBeck. TheThreeExtremos 중 한명. 얼마전에 2판이 나왔다.
[책분류] [ExtremeProgramming] [ExtremeProgrammingInstalled] [ExtremeProgrammingExplained2/E]
- FooBarBaz . . . . 1 match
* ''Baz! The return key on my keyboard is stuck!''
- FromDuskTillDawn/변형진 . . . . 1 match
var $train;
function __construct()
$this->train = array();
list($from, $to, $start, $end) = explode(" ", trim($ln[$k+$i+1]));
$this->train[$from][] = array("to"=>$to, "start"=>($start+6)%24, "end"=>($end+6)%24);
list($from, $to) = explode(" ", trim($ln[$k+$i+1]));
$this->track($from, $to);
if($this->days) echo "Vladimir needs $this->days litre(s) of blood.<br>";
else echo "There is no route Vladimir can take.<br>";
function track($from, $to, $start=0, $days=1, $city=array())
$city[$from] = true; $today = $tomorrow = array();
for($i=0; $this->train[$from][$i]; $i++)
$next = $this->train[$from][$i][to];
if($this->train[$from][$i][start]>=$start)
$today[$next] = min(($today[$next])?$today[$next]:0, $this->train[$from][$i][end]-12);
else $tomorrow[$next] = min(($tomorrow[$next])?$tomorrow[$next]:0, $this->train[$from][$i][end]-12);
foreach($today as $next => $end) $this->track($next, $to, $end+12, $days, $city);
$this->track($next, $to, $end+12, $days+1, $city);
- FromDuskTillDawn/조현태 . . . . 1 match
#include <iostream>
#include <string>
#define TRUE 1
struct STown
string name;
string g_suchStartTown;
string g_suchEndTown;
readData = strchr(readData, '\n') + 1;
readData = strchr(readData, '\n') + 1;
readData = strchr(readData, '\n');
return TRUE;
isSame = TRUE;
readData = strchr(readData, '\n') + 1;
SuchTown(SuchOrAddTown(g_suchStartTown.c_str()), SuchOrAddTown(g_suchEndTown.c_str()));
cout << "There is no route Vladimir can take." << endl;
cout << "Vladimir needs " << g_minimumDelayTime / 24 << " litre(s) of blood. " << endl;
- Functor . . . . 1 match
A function object, often called a functor, is a computer programming construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax. The exact meaning may vary among programming languages. A functor used in this manner in computing bears little relation to the term functor as used in the mathematical field of category theory.
- GTK+ . . . . 1 match
GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
GTK+ is based on three libraries developed by the GTK+ team:
GLib is the low-level core library that forms the basis of GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.
Pango is a library for layout and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.0.
The ATK library provides a set of interfaces for accessibility. By supporting the ATK interfaces, an application or toolkit can be used with such tools as screen readers, magnifiers, and alternative input devices.
GTK+ has been designed from the ground up to support a range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development.
return TRUE;
static void destroy(GtkWidget *widget, gpointer data)
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);
g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window));
- Gof/Strategy . . . . 1 match
= Strategy =
비슷한 문제들을 해결할 수 있는 알고리즘의 군들을 정의하고, 각각의 알고리즘을 캡슐화하고, 그 알고리즘들을 교환할 수 있도록 한다. Strategy는 알고리즘들로 하여금 해당 알고리즘을 이용하는 클라이언트로부터 독립적일수 있도록 해준다.
이러한 문제는, 각각의 다른 linebreaking을 캡슐화한 클래스를 정의함으로 피할 수 있다. 이러한 방법으로 캡슐화한 알고리즘을 stretegy 라 부른다.
http://zeropage.org/~reset/zb/data/strat011.gif
Composition 클래스는 text viewer에 표시될 텍스틀 유지하고 갱신할 책임을 가진다고 가정하자. Linebreaking strategy들은 Composition 클래스에 구현되지 않는다. 대신, 각각의 Linebreaking strategy들은 Compositor 추상클래스의 subclass로서 따로 구현된다. Compositor subclass들은 다른 streategy들을 구현한다.
StrategyPattern 은 다음과 같은 경우에 이용할 수 있다.
* 많은 관련 클래스들이 오직 그들의 행동들에 의해 구분된다. Strategy들은 많은 행위중에 한가지로 상황에 따라 클래스을 설정해주는 방법을 제공해준다.
* 당신은 알고리즘의 다양함을 필요로 한다. 예를 들어, 당신이 알고리즘을 정의하는 것은 사용메모리/수행시간에 대한 trade-off (메모리를 아끼기 위해 수행시간을 희생해야 하거나, 수행시간을 위해 메모리공간을 더 사용하는 것 등의 상관관계)이다. Strategy 는 이러한 다양한 알고리즘의 계층 클래스를 구현할때 이용될 수 있다.
* StrategyPattern을 이용함으로써 복잡함이 노출되는 것과 알고리즘 구체적인 데이터 구조로 가는 것을 피할 수 있다.
* 클래스가 많은 행위들을 정의한다. 이는 다중조건문들에 의해서 구현되곤 한다. 이러한 많은 조건문들 대신, 각각 관련된 조건들을 Strategy 클래스들에게로 이동시킬 수 있다.
== Structure ==
http://zeropage.org/~reset/zb/data/strategy.gif
* Strategy (Compositor)
* 모든 제공된 알고리즘에 대한 일반적인 인터페이스를 선언한다. Context는 ConcreteStrategy에 의해 구현된 알고리즘들을 호출하기 위해 이 인터페이스를 이용한다.
* ConcreteStrategy (SimpleCompositor, TeXCompositor, ArrayCompositor)
* Strategy 인터페이스를 이용하여 알고리즘을 구현한다.
* ConcreteStrategy 객체로 설정되어진다.
* Strategy 객체의 참조를 가진다.
* Strategy 가 context의 데이터를 접근할 수 있도록 인터페이스를 정의할 수 있다.
StrategyPattern 은 다음과 같은 장점과 단점을 가진다.
- GotoStatementConsideredHarmful . . . . 1 match
주로 JuNe 과 [jania] 의 토론을 읽으면서 이해를 하게 된 논문이다. '실행시간계'와 '코드공간계' 의 차이성을 줄인다는 아이디어가 참으로 대단하단 생각이 든다. 아마 이 원칙을 제대로 지킨다면, (즉, 같은 묶음의 코드들에 대한 추상화도를 일정하게 유지한다던가, if-else 의 긴 구문들에 대해 리팩토링을 하여 각각들을 메소드화한다던가 등등) 디버깅하기에 상당히 편할 것이고(단, 디버깅 툴은 고생좀 하겠다. Call Stack 을 계속 따라갈건데, abstraction level 이 높을 수록 call stack 깊이는 보통 깊어지니까. 그대신 사람이 직접 디버깅하기엔 좋다. abstraction level 을 생각하면 버그 있을 부분 찾기가 빨라지니까), 코드도 간결해질 것이다.
SeeAlso : PPR:GotoConsideredTheBestProgrammingPracticeEverInvented PPR:GotoStillConsideredHarmful PPR:GotoConsideredHarmful
- Hacking . . . . 1 match
== DDOS(Distributed Denial of Service)의 공격 ==
* Trinoo
- Hacking/20041028두번째모임 . . . . 1 match
[http://khdp.org/docs/trans_doc/phrack-51-11.txt Phrack 51호 The art of scanning 번역]
- HanoiTowerTroublesAgain!/하기웅 . . . . 1 match
#include <iostream>
[HanoiTowerTroublesAgain!]
- HanoiTowerTroublesAgain!/황재선 . . . . 1 match
return true;
public static void main(String[] args) {
[HanoiTowerTroublesAgain!]
- HaskellExercises/Wikibook . . . . 1 match
myand2 bs = foldl (&&) True bs
- HelloWorld . . . . 1 match
프로그래밍의 첫걸음으로 HelloWorld를 출력하는 관습은 1978년에 출판된, 브라이언 커니핸과 데니스 리치가 쓴 "The C Programming Language"라는 책에서 비롯되었다.
#include <iostream>
class String
public static void main(String[] args) {
public static void main(String[] args){
public void say(String what){
$tpl->register("MessageString", "Hello, World!");
<BODY><TABLE BORDER=1><TR><TD>
<H1> {MessageString} </H1>
</TD></TR></TABLE></BODY>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow)
- HelpIndex . . . . 1 match
The following is a list of all help pages:
- HelpOnXmlPages . . . . 1 match
If you have Python4Suite installed in your system, it is possible to save XML documents as pages. It's important to start those pages with an XML declaration "{{{<?xml ...>}}}" in the very first line. Also, you have to specify the stylesheet that is to be used to process the XML document to HTML. This is done using a [http://www.w3.org/TR/xml-stylesheet/ standard "xml-stylesheet" processing instruction], with the name of a page containing the stylesheet as the "{{{href}}}" parameter.
See the following example for details, which can also be found on the XsltVersion page.
/!\ MoniWiki support two type of XSLT processors. One is the xslt.php, the other is xsltproc.php. xslt.php need a xslt module for PHP and xsltproc.php need the xsltproc.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- HolubOnPatterns/밑줄긋기 . . . . 1 match
* 이러한 착각은 흔히 C를 배우고 C++을 배울 때, '객체'가 아닌 문법 클래스'를 쉽게 설명하려고 "클래스는 structure(data) + method(to do) 이다." 라는 요상한 설명을 접하게 되면 하게 되는 것 같습니다. 처음에 이런 설명을 접하게 되면 나중에는 생각을 바꾸기 어려워지죠 (아니 귀찮아지는 건가...) -_-;; - [박성현]
* 나는 개발을 하면서 OO 원칙 적용의 '엄격성(strictness)'과 코드를 빨리 작성하고 유지 보수하기 좋은 코드를 작성하는 것 사이에 높은 상관관계가 있다는 사실을 깨달았다.
* Factory Method 패턴은 좋은 선택이 아니었다. 이번 장의 뒤에서 살펴볼 Strategy 패턴 등은 Factory Method 패턴의 멋진 대안이 된다.
* 많은 패턴들이 구현 시 Abstract Factory에 의존 하는 경우가 많기 때문에 Abstract Factory는 일종의 빌딩 블록이 되는 패턴이라 할 수 있다.
* Abstract Factory는 다른이들에게 널리 잘 알려져(?) 쓰이는 유용한 패턴인가보다 - [김준석]
* Abstract Factory의 모든 실체화에서 공통되는 주제는 팩토리를 사용하여 정확한 타입을 모르는 객체를 생성한다는 것이다.
==== Abstract Factory 패턴 ====
* 앞에서 객체를 생성할 때 Singleton 패턴과 Abstract Factory 패턴이 자주 함께 사용된다고 설명했다. '''그러므로''' Abstract Factory에 대해 좀 더 알아보기로 하자.
* Abstract Factory 패턴은 관련된 일련의 클래스 '군(family)'중 하나를 생성한다.
* Abstract Factory 패턴의 주요 장점은 격리(isolation)이며, 인터페이스를 통해 객체 생성을 가능 하도록 해준다.
* 관점을 바꾸어 보면 {{{URLConnection은 InputStream}}} 구현체들을 생성하는 Abstract Factroy이기도 하다.
==== Command 패턴과 Strategy 패턴 ====
* 객체를 추상적인 방법으로 생성하는 데 유용한 다른 패턴은 Strategy 패턴이다. 그리고 Strategy 패턴은 좀 더 일반적인 패턴인 Command 패턴의 특별한 경우라 할 수 있다.
* Strategy 패턴은 특정 연산을 '어떻게' 수행할 것인지에 대한 전략을 캡슐화한 Strategy 객체를 전달한다.
* 사실 거의 대부분의 상황에서 Strategy는 Factory Method의 좋은 대안이 된다.
* 어투는 좀 잘못된 Trade-Off라고 하는듯 하다. - [김준석]
- HowManyZerosAndDigits/임인택 . . . . 1 match
import java.io.InputStreamReader;
String number = Long.toString(num);
public static void main(String args[]) {
try {
ex.printStackTrace();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String intVal = reader.readLine();
- IntelliJ . . . . 1 match
4. Checkout - 이는 CVSROOT의 modules 에 등록된 project 들만 가능하다. CVS 관리자는 CVSROOT 의 modules 화일에 해당 프로젝트 디렉토리를 추가해준다.([http://cvsbook.red-bean.com/cvsbook.html#The_modules_File module file]) 그러면 IntelliJ 에 있는 CVS의 Checkout 에서 module 을 선택할 수 있다. Checkout 한다.
|| ctrl + I || Interface 구현. actionPerformed 등의 상위 추상클래스들의 interface 틀을 만들어준다. 유용 ||
|| ctrl + O || Overriding ||
|| ctrl + E || Recent File. ||
|| ctrl + alt + M || extract method refactoring||
|| ctrl + alt + V || introduce to local variable ||
|| ctrl + alt + F || introduce to field ||
|| ctrl + J || live template ||
|| ctrl + alt + T + 6 || surrounded with try-catch||
|| ctrl + B || go to definition. ||
|| ctrl + Q || Quick Doc API 보기 ||
|| ctrl + N || 해당 클래스로 이동 ||
|| ctrl + + || (3.0) Source Folding. 메소드 or Javadoc 단위 폴딩 열기 ||
|| ctrl + - || (3.0) Source Folding. 메소드 or Javadoc 단위 폴딩 닫기 ||
|| shift + ctrl + + || (3.0) Source Folding. 전체 폴딩 열기 ||
|| shift + ctrl + - || (3.0) Source Folding. 전체 폴딩 닫기 ||
|| ctrl + F12 || Eclipse 에서의 일종의 Outliner. ||
자주 쓰는 기능들임에도 불구하고 단축키가 정의되지 않은 기능들이 있다. 특히 run class 와 run test 들이 그러한데, 이들은 Key Map 을 직접 해주도록 하자. (개인적으론 ctrl + F10, shift + ctrl + F10 으로 정의해놓고 씀)
- IntentionRevealingSelector . . . . 1 match
BTree::treeSearchFor(Item&);
- JSP/SearchAgency . . . . 1 match
import="java.util.*, java.io.BufferedReader, java.io.InputStreamReader, java.io.FileReader,
private String field;
public OneNormsReader(IndexReader in, String field) {
public byte[] norms(String field) throws IOException {
// String index = "/home/httpd/index";
String index = "index";
String field = "contents";
String queries = null;
String normsField = null;
in = new BufferedReader(new InputStreamReader(System.in));
String line = request.getParameter("keyword");
out.println("Searching for: " + query.toString(field));
String path = doc.get("path");
String title = doc.get("title");
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv="cache-control" content="no-cache">
- JTDStudy/첫번째과제/장길 . . . . 1 match
private int strike=0;
private boolean win= true;
if(dBall[i] == pBall[j] && i == j ) strike++;
if( strike == 3) win= false;
public int getStrikeConclusion() {
return strike;
public static void main(String[] args) {
boolean judge= true;
String input= JOptionPane.showInputDialog(null, "숫자입력");
JOptionPane.showMessageDialog(null, judgement.getStrikeConclusion() + " Strikes " + judgement.getBallConclusion() + " Balls ");
public String name;
assertTrue(0 <= dealer.creatBall() && dealer.creatBall() < 1001);
assertEquals(3, judgement.getStrikeConclusion());
- Java/ModeSelectionPerformanceTest . . . . 1 match
public void printPerformance(String[] modeExecute) {
private void executeIfElse(String[] modeExecute) {
public void executeWithIfElse(String mode) {
한편으로 느껴지는 것으로는, switch 로 분기를 나눌 mode string 과 웹 parameter 와의 중복이 있을 것이라는 점이 보인다. 그리고 하나의 mode 가 늘어날때마다 해당 method 가 늘어나고, mode string 이 늘어나고, if-else 구문이 주욱 길어진다는 점이 있다. 지금은 메소드로 추출을 해놓은 상황이지만, 만일 저 부분이 메소드로 추출이 안되어있다면? 그건 단 한마디 밖에 할말이 없다. (단, 저 논문을 아는 사람에 한해서) GotoStatementConsideredHarmful.
public void printPerformance(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
private void executeReflection(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
try {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
* User: Administrator Date: 2003. 7. 12. Time: 오전 12:48:38
public void printPerformance(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
initReflectionMap(modeExecute);
private void executeReflectionWithMapping(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
private void initReflectionMap(String[] methodNames) {
try {
* User: Administrator Date: 2003. 7. 12. Time: 오전 12:57:7
public void printPerformance(String[] modeExecute) {
private void executeInnerclassMapping(String[] modeExecute) {
private void executeMode(String s) {
import java.lang.reflect.Constructor;
* User: Administrator Date: 2003. 7. 12. Time: 오전 1:2:16
- JavaHTMLParsing/2011년프로젝트 . . . . 1 match
import java.io.InputStream;
import java.io.InputStreamReader;
public static void main(String args[]){
InputStream is;//URL접속에서 내용을 읽기위한 Stream
InputStreamReader isr;
try{
//내용을 읽어오기위한 InputStream객체를 생성한다..
is = connection.getInputStream();
isr = new InputStreamReader(is);
String buf = null;
while(true){
ioe.printStackTrace();
- JavaScript/2011년스터디/서지혜 . . . . 1 match
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
str = 0;
str = document.f.t.value;
isOp = true;
str2 = document.f.t.value;
if (str != "" && str2 != "") {
str = eval(str + oprt + str2);
document.f.t.value = str;
str = "";
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
- JavaStudy2002/세연-2주차 . . . . 1 match
void setFirstPosition(int firstRow, int firstCol){
row = firstRow;
void isTheGameFinished(){
public static void main(String[] args){
- JavaStudy2002/입출력관련문제 . . . . 1 match
public static String[] getSplitedStringArray(String input, String delim) {
StringTokenizer tokenizer = new StringTokenizer(input,delim);
String[] output = (String[])arrayList.toArray(new String[0]);
static String[] getInputLineData(){
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
String input = "";
try {
e.printStackTrace();
return getSplitedStringArray(input, " \n\t");
public static void main(String[] args){
String[] input = StandardInput.getInputLineData();
String inputData = "123 4 62 45";
input = StandardInput.getSplitedStringArray(inputData, " ");
- JavaStudy2004/자바따라잡기 . . . . 1 match
* No More Structures or Unions
출전 : 1997년 9월호 디스커버 잡지 72쪽에 실린, David Gelernter의 "Truth, Beauty, and the Virtual Machine".
- JavaStudy2004/클래스상속 . . . . 1 match
예를 들어 Motorcycle클래스와 같이 Car라는 클래스를 만드는 것을 생각하자. Car와 Motorcycle은비슷한 특징들이 있다. 이 둘은 엔진에 의해 움직인다. 또 변속기와 전조등과 속도계를 가지고 있다. 일반적으로 생각하면, Object라는클래스 아래에 Vehicle이라는 클래스를 만들고 엔진이 없는 것과 있는 방식으로 PersonPoweredVehicle과 EnginePoweredVehicle 클래스를 만들 수 있다. 이 EnginePoweredVehicle 클래스는 Motorcycle, Car, Truck등등의 여러 클래스를 가질 수 있다. 그렇다면 make와 color라는 속성은 Vehicle 클래스에 둘 수 있다.
public String getName() {
public void Say(String str) {
JOptionPane.showMessageDialog(null, str);
String str = Integer.toString(temp);
JOptionPane.showMessageDialog(null, str);
public static void main(String[] args) {
public String name;
public String getName()
public String getName() {
- JollyJumpers/iruril . . . . 1 match
import java.io.InputStreamReader;
public String input()
BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
String input = "";
try {
e.printStackTrace();
String buf = input();
String [] stringArray = buf.split(" ");
length = stringArray.length;
intArray[i] = Integer.parseInt(stringArray[i]);
differenceArray[tempDiffer] = true;
jolly = true;
public static void main(String args[])
while(true)
- JollyJumpers/신재동 . . . . 1 match
import java.io.InputStreamReader;
return true;
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
String [] numbersStr = line.split(" ");
for(int i = 0; i < numbersStr.length; i++) {
list.add(new Integer(Integer.parseInt(numbersStr[i])));
e.printStackTrace();
public static void main(String[] args) {
assertEquals(true, jollyJumper.isJollyJumper(vec));
assertEquals(true, jollyJumper.isJollyJumper(vec));
- KnowledgeManagement . . . . 1 match
* Techno-centric
* Theoretical
- LIB_1 . . . . 1 match
LIB_VRAM_STRING(0,0,sen,0x04);
LIB_VRAM_STRING(0,1,sen1,0x07);
LIB_VRAM_STRING(0,2,sen2,0x07);
LIB_VRAM_STRING(0,4,sen3,0x09);
// Show the task delay , usage and
LIB_VRAM_STRING(0,12,"Total Interrupt Count :\n",0x09);
LIB_create_task (char* string,int,&task_point,task_size) 함수는
// create The Sample Task 1,2
LIB_VRAM_STRING(0,0," :: FATAL ERROR :: \n",0x07);
- LearningGuideToDesignPatterns . . . . 1 match
원문 : http://www.industriallogic.com/papers/learning.html
DesignPatterns로 Pattern 스터디를 처음 시작할때 보면, 23개의 Pattern들을 navigate 할 방향을 결정할만한 뚜렷한 기준이 없음을 알 수 있다. 이 책의 Pattern들은 Creational, Structural, Behavioral 분류로 나누어져 있다. 이러한 분류들은 각각 다른 성질들의 Pattern들을 빨리 찾는데 도움을 주긴 하지만, 패턴을 공부할때 그 공부 순서에 대해서는 구체적인 도움을 주지 못한다.
Pattern들은 각각 독립적으로 쓰이는 경우는 흔치 않다. 예를 들면, IteratorPattern은 종종 CompositePattern 과 같이 쓰이고, ObserverPattern과 MediatorPattern들은 전통적인 결합관계를 형성하며, SingletonPattern은 AbstractFactoryPattern와 같이 쓰인다. Pattern들로 디자인과 프로그래밍을 시작하려고 할때에, 패턴을 사용하는데 있어서 실제적인 기술은 어떻게 각 패턴들을 조합해야 할 것인가에 대해 아는 것임을 발견하게 될 것이다.
=== Strategy - Behavioral ===
StrategyPattern 또한 책 전반에 걸쳐 빈번하게 이용된다. 이 패턴에 대해 일찍 알아둠으로써, 다른 패턴을 이해하는데 도움을 줄 것이다.
=== Decorator - Structural ===
"skin" vs "guts" 에 대한 토론은 StrategyPattern 와 DecoratorPattern 를 구별하는 좋은 예가 될 것이다.
=== Composite - Structural ===
앞에서의 IteratorPattern 의 예제코드에서의 "Traverse" 는 TemplateMethodPattern 의 예이다. 이 패턴은 StrategyPattern 과 FactoryMethodPattern 를 보충해준다.
=== Abstract Factory - Creational ===
AbstractFactoryPattern은 두번째로 쉬운 creational Pattern이다. 이 패턴은 또한 FactoryMethodPattern를 보강하는데 도움을 준다.
AbstractFactoryPattern 과 BuilderPattern 을 비교해보라.
SingletonPattern은 종종 AbstractFactoryPattern 을 만드는데 이용된다. (Related Patterns 참조)
=== Proxy - Structural ===
Proxy 가 어떻게 object에 대한 access를 control 하는지 공부하라. 이 패턴은 뒤의 AdapterPattern을 직접적으로 이끌어낸다.
=== Adapter - Structural ===
=== Bridge - Structural ===
ObserverPattern 과 Model-View-Controller (MVC) Design 을 이해하기 위한 준비단계로 MediatorPattern을 공부한다.
=== Flyweight - Structural ===
=== Facade - Structural ===
- Leonardong . . . . 1 match
[http://zeropage.org/zero/?url=leonardong 개인위키]를 분양받아 쓰고 있습니다. 제로페이지 프로젝트에는 [http://zeropage.org/trac/leonardong/ Trac]을 쓰고 있지요.
- Lines In The Plane . . . . 1 match
==== Recurrent Problems - Lines In The Plane ====
What is the maximum number L<sub>n</sub> of regions defined by lines("unfolding" or "unwinding") in the plane?
===== mathematical expression =====
- LinkedList/영동 . . . . 1 match
#include<iostream>
struct Node{ //Structure 'Node' has its own data and link to next node
Node(int initialData){ //Constructor with initializing data
Node(){} //An empty constructor to reduce warning in compile time
int enterData(); //Function which enter the data of node
void displayList(Node * argNode); //Function which displays the elements of linked list
Node * firstAddress=new Node(enterData());//Create the first address to linked list
Node * currentNode;//Create temporary node which indicates the last node of linked list
//Create the next node to linked list
else //Go to the next node if there is next node
#include<iostream>
struct Node{ //Structure 'Node' has its own data and link to next node
Node(int initialData){ //Constructor with initializing data
Node(){nextNode='\0';} //An empty constructor to reduce warning in compile time
int enterData(); //Function which enter the data of node
void displayList(Node * argNode); //Function which displays the elements of linked list
Node * reverseList(Node * argNode);//Function which reverses the sequence of the list
void eraseLastNode(Node * argNode, Node ** argFreeNode, int * argNumberOfList, int * argNumberOfFreeSpace);//Function which deletes the last node of the list
void getNode(Node * argNode, Node ** argFreeNode, int * argNumberOfList, int * argNumberOfFreeSpace);//Function which takes the node from free space list
Node * firstAddress=new Node(enterData());//Create the first address to linked list
- LinuxSystemClass . . . . 1 match
학교 수업공부를 하거나 레포트를 쓰는 경우 위의 학교 교재와 함께 'The Design of the Unix Operating System' 을 같이 보면 도움이 많이 된다. 해당 알고리즘들에 대해서 좀 더 구체적으로 서술되어있다. 단, 책이 좀 오래된 감이 있다.
- LispLanguage . . . . 1 match
* For the beginners:
* [http://dept-info.labri.fr/~strandh/Teaching/Programmation-Symbolique/Common/David-Lamkins/contents.html Successful Lisp:How to Understand and Use Common Lisp] - 책인듯(some 에 대한 설명 있음)
[http://www.peter-herth.de/ltk/ The Lisp Toolkit]
* Common Lisp the Language, 2nd Edition by Guy L. Steele Jr. : 역시 책이라서 체계적으로 잘 나와 있다.
- Lotto/강소현 . . . . 1 match
public static void main(String[] args) {
== Trial and Error ==
- MajorMap . . . . 1 match
== Instructions:language of the Computer ==
Keywords are InstructionSetArchitecture, Register, Memory, Address(,and...)
InstructionSetArchtecture(ISA) is an abstract interface between the hardware and the lowest-level sogtware. Also called simply architecture.
Registers are a limited number of special locations built directly in hardware. On major differnce between the variables of a programming language and registers is the limited number of registers, typically 32(64?) on current computers.
Memory is the storage area in which programs are kept when they are runngin and that contains the data needed by the running programs. Address is a value used to delineate the location of a specific data element within a memory array.
ALU is is a part of the execution unit, a core component of all CPUs. ALUs are capable of calculating the results of a wide variety of basic arithmetical computations such as integer and floating point arithmetic operation(addition, subtraction, multiplication, and division), bitwise logic operation, and bit shitf operation. Therefore the inputs to the ALU are the data to be operated on (called operands) and a code from the control unit indicating which operation to perform. Its output is the result of the computation.--from [http://en.wikipedia.org/wiki/ALU]
Two's complement is the most popular method of representing signed integers in computer science. It is also an operation of negation (converting positive to negative numbers or vice versa) in computers which represent negative numbers using two's complement. Its use is ubiquitous today because it doesn't require the addition and subtraction circuitry to examine the signs of the operands to determine whether to add or subtract, making it both simpler to implement and capable of easily handling higher precision arithmetic. Also, 0 has only a single representation, obviating the subtleties associated with negative zero (which is a problem in one's complement). --from [http://en.wikipedia.org/wiki/Two's_complement]
- Metaphor . . . . 1 match
원문 : http://www.extremeprogramming.org/rules/metaphor.html
Choose a system metaphor to keep the team on the same page by naming classes and methods consistently. What you name your objects is very important for understanding the overall design of the system and code reuse as well. Being able to guess at what something might be named if it already existed and being right is a real time saver. Choose a system of names for your objects that everyone can relate to without specific, hard to earn knowledge about the system. For example the Chrysler payroll system was built as a production line. At Ford car sales were structured as a bill of materials. There is also a metaphor known as the naive metaphor which is based on your domain itself. But don't choose the naive metaphor unless it is simple enough.
- MineSweeper/황재선 . . . . 1 match
import java.io.InputStreamReader;
* TODO To change the template for this generated file go to
String [][] mineArr;
String input = input();
String [] array = input.split(" ");
public String[][] inputChar(int []array) {
mineArr = new String[row][col];
String input = input();
String [] arr = input.split("");
public String input() {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String input = "";
try {
e.printStackTrace();
public String[][] findPosition() {
mineArr[row][col] = Integer.toString(count);
private void printResult(Vector v) {
String [][] arr = (String [][]) v.get(i);
static public void main(String [] args) {
while (true) {
- MobileJavaStudy/SnakeBite/Spec3Source . . . . 1 match
return true;
SnakeCell currentHead = getSnakeCell(0);
currentHead.x = prevHead.x;
currentHead.y = prevHead.y;
currentHead.x--;
currentHead.x++;
currentHead.y--;
currentHead.y++;
canvasHeight = getHeight();
pause = true;
drawAll = true;
g.drawString("Game Over!!", canvasWidth / 2, canvasHeight, Graphics.HCENTER | Graphics.BOTTOM);
pause = true;
pause = true;
drawAll = true;
try {
gameOver = true;
e.printStackTrace();
public void destroyApp(boolean unconditional) {
destroyApp(true);
- MoinMoin . . . . 1 match
* [http://freshmeat.net/projects/moin FreshMeat Entry]
"Moin" meaning "Good Morning", and "MoinMoin" being an emphasis, i.e. "A ''Very'' Good Morning". The name was obviously chosen for its WikiWikiNess.
''No! Originally "MoinMoin" does '''not''' mean "Good Morning". "Moin" just means "good" or "nice" and in northern Germany it is used at any daytime, so "Good day" seems more appropriate.'' --MarkoSchulz
Mmmmh , seems that I can enrich so more info: "Moin" has the meaning of "Good Morning" but it is spoken under murmur like "mornin'" although the Syllable is too short alone, so it is spoken twice. If you shorten "Good Morning" with "morn'" it has the same effect with "morn'morn'". --Thomas Albl
We use it all day in the south too. I always thought it just morphed from a morning greeting to an all-day one. -- J
- MoinMoinDiscussion . . . . 1 match
Talk about the things on MoinMoinTodo and MoinMoinIdeas in this space...
'''A''': See the {{{~cpp [[Icon]]}}} macro; besides that, fully qualified URLs to the wiki server work, too.
* '''R''': The Icon macro worked well. I wanted to avoid the fully qualified URL because to access the Wiki in question requires password authentication. Including an image using the full URL caused my webserver (Apache 1.3.19) to reprompt for authentication whenever the page was viewed or re-edited. Perhaps a default {{{~cpp [[Image]]}}} macro could be added to the distribution (essentially identical to {{{~cpp [[Icon]]}}} ) which isn't relative to the data/img directory. (!) I've actually been thinking about trying to cook up my own "upload image" (or upload attachment) macro. I need to familiarize myself with the MoinMoin source first, but would others find this useful?
* '''Note:''' Regarding the upload feature - pls note that the PikiePikie also implemented in Python already has this feature, see http://pikie.darktech.org/cgi/pikie?UploadImage ... so I guess you could borrow some code from there :) -- J
- MoinMoinMailingLists . . . . 1 match
There are two mailing lists for MoinMoin:
Talk about ''using'' MoinMoin (very low-traffic).
Talk about MoinMoin development, bugs, new features, etc. (low-traffic)
- MoreEffectiveC++ . . . . 1 match
* Item 3: Never treat arrays polymorphically - 절대로! 클래스 간의 다형성을 통한 배열 취급을 하지 말라
* Item 4: Avoid gratuitous default constructors. - 암시적으로 제공되는 기본 생성자를 피하라. 혹은 기본 생성자의 모호성을 파악하라.
* Item 8: Understand the differend meanings of new and delete - new와 delete가 쓰임에 따른 의미들의 차이를 이해하라.
* Item 10: Prevent resource leaks in constructors. - 생성자에서 자원이 세는걸 막아라.
* Item 15: Understand the costs of exception handling. - 예외 핸들링에 대한 비용 지불 대한 이해
* Item 16: Remember the 80-20 rule. - 80-20 규칙을 기억해라.
* Item 18: Amortize the cose of expected computations. - 예상되는 연산의 값을 계산해 두어라.
* Item 19: Understand the orgin of temporary objects.- 임시 객체들의 기본을 이해하자.
* Item 20: Facilitate the return value optimization - 반환되는 값을 최적화 하라
* Item 24: Understand the costs of virtual functions, multiple ingeritance, virtual base classes, and RTTI [[BR]] - 가상 함수, 다중 상속, 가상 기초 클래스, RTTI(실시간 형 검사)에 대한 비용을 이해하라
* Item 25: Virtualizing constructors and non-member functions. - 생성자와 비멤버 함수를 가상으로 돌아가게 하기.
* Item 26: Limiting the number of objects of a class - 객체 숫자 제한하기.
* Item 32: Program in the Future tense - 미래를 대비하는 프로그램
* Item 33: Make non-leaf classes abstract. - 유도된 클래스가 없는 상태의 클래스로 추상화 하라.
* Item 34: Understand how to combine C++ and C in the same program. - 같은 프로그램에서 C++와 C를 혼합하는 법 이해해라.
* Item 35: Familiarize yourself with °the language standard. - 언어 표준에 친해져라.
* An auto_ptr Implementation
1. 2002.02.15 드디어 스마트 포인터를 설명할수 있는 skill을 획득했다. 다음은 Reference counting 설명 skill을 획득해야 한다. Reference counting은 COM기술의 근간이 되고 있으며, 과거 Java VM에서 Garbage collection을 수행할때 사용했다고 알고 있다. 물론 현재는 Java Garbage Collector나 CLR이나 Tracing을 취하고 있는 것으로 알고 있다. 아. 오늘이 프로젝트 마지막 시점으로 잡은 날인데, 도저히 불가능하고, 중도 포기하기에는 뒤의 내용들이 너무 매력있다. 칼을 뽑았으니 이번달 안으로는 끝장을 본다.
* 아, 드디어 끝이다. 사실 진짜 번역처럼 끝을 볼려면 auto_ptr과 Recommended Reading을 해석해야 하겠지만 내마음이다. 더 이상 '''내용'''이 없다고 하면 맞을 까나. 휴. 원래 한달정도 죽어라 매달려 끝낼려고 한것을 한달 반 좀 넘겼다. (2월은 28일까지란 말이다. ^^;;) 이제 이를 바탕으로한 세미나 자료만이 남았구나. 1학기가 끝나고 방학때 다시 한번 맞춤법이나 고치고 싶은 내용을 고칠것이다. 보람찬 하루다.
- MoreEffectiveC++/Efficiency . . . . 1 match
== Item 16:Remember the 80-20 rule. ==
class String { ... }; // 문자열 클래스 (이건 밑의 언급과 같이 표준 스트링 타입과
String s1 = "Hello";
String s2 = s1; // String 복사 생성자를 부른다.
String 복사 생성자의 적용시, s2는 s1에 의하여 초기화 되어서 s1과 s2는 각각 "Hello"를 가지게된다. 그런 복사 생성자는 많은 비용 소모에 관계되어 있는데, 왜냐하면, s1의 값을 s1로 복사하면서 보통 heap 메모리 할당을 위해 new operator(Item 8참고)를 s1의 데이터를 s2로 복사하기 위해 strcpy를 호출하는 과정이 수행되기 때문이다. 이것은 ''''eager evaluation''''(구지 해석하면 '''즉시 연산''' 정도 일것이다.) 개념의 적용이다.:s1의 복사를 수행 하는 것과, s2에 그 데이터를 집어넣는 과정, 이유는 String의 복사 생성자가 호출되기 때문이다. 하지만 여기에는 s2가 쓰여진적이 없이 새로 생성되는 것이기 때문에 실제로 s2에 관해서 저런 일련의 복사와, 이동의 연산의 필요성이 없다.
이와 같은 구문의 사용으로, String의 convertToUpperCase 함수를 적용하면, s2의 값의 복사본을 만들어야 하고, 수정되기전에 s2에 그걸 s2의 종속되는 데이터로 만들어야 한다. convertToUpperCase 내부에 우리는 lazy 상태가 더이상 지속되지 않도록 하는 코드를 넣어야 한다.:s2가 마음대로 다룰수 있도록 s2의 공유된 값의 사본을 복사해야 한다. 반면에 만약 s2가 결코 수정되지 않을 것이라면, 이러한 s2만의 값을 복사하는 일련의 과정이 필요 없을 것이다. 그리고 s2가 존재하는 만큼 값도 계속 존재해야 한다. 만약 더 좋게, s2가 앞으로 결코 변하지 않는다면, 우리는 결코 그것의 값에 대한 노력을 할필요가 없을 것이다.
String s = "Homer's Iliad"; // 다음 문자열이 reference-counting으로
첫번째 operator[]는 문자열을 읽는 부분이다,하지만 두번째 operator[]는 쓰기를 수행하는 기능을 호출하는 부분이다. 여기에서 '''읽기와 쓰기를 구분'''할수 있어야 한다.(distinguish the read all from the write) 왜냐하면 읽기는 refernce-counting 구현 문자열로서 자원(실행시간 역시) 지불 비용이 낮고, 아마 저렇게 스트링의 쓰기는 새로운 복사본을 만들기 위해서 쓰기에 앞서 문자열 값을 조각내어야 하는 작업이 필요할 것이다.
cosnt string& field1() const; // 필드상의 값1
const string& field4() const;
const string& field5() const;
const string& field1() const;
const string& field4() const;
mutable string *field1Value; // 앞으로의 "mutable"에 관한 토론을 보라
mutable string *field4Value;
const string& LargeObject::field() const
const string& field1() const; // 바뀌지 않음
string *field1Value; // mutable로 선언되지 않았다.
const string& LargeObject::field1() const
const string& LargeObject::field1() const
- MoreEffectiveC++/Techniques2of3 . . . . 1 match
class String { // 표준 문자열 형은 이번 아이템의 참조세기를 갖추고
String(const char *value = "");
String& operator=(const String& rhs);
String a, b, c, d, e;
String& String::operator=(const String& rhs)
data = new char[strlen(rhs.data) + 1];
strcpy(data, rhs.data);
참조 세기를 하는 String 클래스를 만드는건 어렵지는 않지만, 세세한 부분에 주목해서 어떻게 그러한 클래스가 구현되는지 주목해 보자. 일단, 자료를 저장하는 저장소가 있고, 참조를 셀수 있는 카운터가 있어야 하는데, 이 둘을 하나로 묶어서 StringValue 구조체로 잡는다. 구조체는 String의 사역(private)에 위치한다.[[BR]]
class String {
... // String member들 위치
struct StringValue { ... }; // 참조를 세는 인자와, String의 값을 저장.
StringValue *value; // 위의 구조체의 값
물론 이의 이름은 String과 다른 이름을 매겨야 하겠지만,(아마 RCString정도?) 하지만 String자체를 구현한다는 의미로 그냥 이름은 유지하고, 앞으로 말할 참조세기를 적용시킨 String 객체를 만들어 나가겠다.
class String {
struct StringValue {
StringValue(const char *initValue);
~StringValue();
// StringValue의 복사 생성자, 초기화 목록으로 refCount 인자 1로 초기화
String::StringValue::StringValue(const char *initValue): refCount(1)
data = new char[strlen(initValue) + 1]; // 새로운 값 할당(아직 참조세기 적용 x
- MythicalManMonth . . . . 1 match
This simple rule, consistently applied, would, within two years, double the
See Also Moa:TheMythicalManMonth, Moa:ConceptualIntegrity , ["성당과시장"]
- NSIS/예제1 . . . . 1 match
; The text to prompt the user to enter a directory
DirText "This will install the very simple example1 on your computer. Choose a directory"
Section "ThisNameIsIgnoredSoWhyBother?"
Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
DirText: "This will install the very simple example1 on your computer. Choose a directory" "" ""
Section: "ThisNameIsIgnoredSoWhyBother?"
Install: 4 instructions (96 bytes), 560 byte string table.
Install code+strings: 525 / 944 bytes
- NextEvent . . . . 1 match
Wiki:ExtremeFishbowl
현재 재학 중인 학생들 중 단 한 명이라도 오는 14, 15일의 Seminar:ReadershipTraining 에 와서 "공부하는 방법"을 배워가면, 그리고 그 문화를 퍼뜨릴 수 있다면 참 좋겠습니다. --JuNe
- NumberBaseballGame/jeppy . . . . 1 match
else strncpy(number_log[i], num, 3);
printf("You lose~\nThe answer is %c%c%c", hidden_num[0], hidden_num[1], hidden_num[2]);
int strike = 0;
if (i == j) strike++;
if (strike == 3) {
if (strike == 0 && ball == 0)
else printf("%dstrike %dball\n", strike, ball);
- NumericalAnalysisClass . . . . 1 match
강의내용 : 최근의 수치해석 수업은 그래픽스 수업의 선수과목으로서 성격이 이전과 달라졌다. 주로 line, curve, plane, matrix 등 그래픽스와 관련된 내용을 배운다.
* ["NumericalAnalysisClass/Report2002_1"] - ["TriDiagonal/1002"]
''Object-Oriented Implementation of Numerical Methods : An Introduction with Java and Smalltalk'', by Didier H. Besset.
- OOP . . . . 1 match
Object-oriented programming is based in the principle of recursive design.
2. Objects perform computation by making requests of each other through the passing of messages.
3. Every object has it's own memory, which consists of other objects.
5. The class is the repository for behabior associated with an object.
6. Classes are organized into singly-rooted tree structure, called an inheritance hirearchy.
Program consists of objects interacting with eachother Objects provide services.
* [Attribute]
- ObjectOrientedDatabaseManagementSystem . . . . 1 match
Malcolm Atkinson을 비롯한 여러 사람들이 그들의 영향력 있는 논문인 The Object-Oriented Database Manifesto에서, OODBMS에 대해 다음과 같이 정의하였다.
- ObjectOrientedProgramming . . . . 1 match
Object-oriented programming is based in the principle of recursive design.
2. Objects perform computation by making requests of each other through the passing of messages.
3. Every object has it's own memory, which consists of other objects.
5. The class is the repository for behabior associated with an object.
6. Classes are organized into singly-rooted tree structure, called an inheritance hirearchy.
- ObjectWorld . . . . 1 match
* http://www.freemethod.org:8080/bbs/UML1-SAintro.ppt
첫번째 Session 에는 ["ExtremeProgramming"] 을 위한 Java 툴들에 대한 간단한 언급이였습니다. 제가 30분 가량 늦어서 내용을 다 듣진 못했지만, 주 내용은 EJB 등 웹 기반 아키텍쳐 이용시 어떻게 테스트를 할것인가에 대해서와, Non-Functional Test 관련 툴들 (Profiler, Stress Tool) 에 대한 언급들이 있었습니다. (JMeter, Http Unit, Cactus 등 설명)
Http Unit 에 대해선 좀 회의적인 투로 설명을 하신것 같고, (이정도까지 테스트 할까..에 가까운) ["ExtremeProgramming"] 에서의 TDD 스타일은 따로 취급되었다라는 생각이 들었다는. (XP에서의 테스트를 먼저 작성하라는 이야기에 대해서 그냥 TP를 읽는 수준으로만 넘어간것 보면. 코딩 완료이후 테스트를 기본이라 생각하고 설명하셨다 생각됨.)
* Architecture - 시스템 구조의 abstract class 단계
세번째 Session 에서는 지난번 세미나 마지막 주자분(신동민씨였던가요.. 성함이 가물가물;)이 Java 버전업에 대한 Architecture 적 관점에서의 접근에 대한 내용을 발표하셨습니다. Java 가 결국은 JVM 이란 기존 플랫폼에 하나의 Layer를 올린것으로서 그로 인한 장점들에 대해 설명하셨는데, 개인적으론 'Java 가 OS에서 밀린 이상 OS를 넘어서려니 어쩔수 없었던 선택이였다' 라고 생각하는 관계로. -_-. 하지만, Layer 나 Reflection 등의 Architecture Pattern 의 선택에 따른 Trade off 에 대해서 설명하신 것과, 디자인을 중시하고 추후 LazyOptimization 을 추구한 하나의 사례로서 설명하신건 개인적으론 좋았습니다.
''Haven't read it. If I gave advice and I were to advise /you/, I'd advise more testing and programming, not more theory. Still, smoke 'em if ya got 'am.
[From a [http://groups.yahoo.com/group/extremeprogramming/message/52458 thread] in XP mailing list]
- PairProgramming토론 . . . . 1 match
PairProgramming 자체에 대해 조금 설명을 드리자면, 우선 이건 Driver와 Observer로 역할 분담이 되는데 정해진 게 아니고, 계속 바뀝니다. 운전하는 사람이 있고, 옆에서 코치하는 사람이 있는 거죠. 실제로 타이핑을 하는 사람은 타이핑이란 작업에 몰두하느라 지력을 좀 빼앗깁니다. 대신 이걸 관찰하는 사람은 여유가 있으므로 이것 저것 객관적인 코치를 해줄 가능성이 높죠. 그런데, 예를 들어, Driver가 코딩을 하다가 Observer가 "그게 아냐 이렇게 하면 더 좋아"하면서 설명을 하는데 잘 이해를 못하겠다 싶으면 키보드를 밀어주며 "니가 해봐"라고 말합니다. 역할 바꾸기가 되는 거죠. 이게 아니더라도, 가능하면 두 사람이 지속적으로 역할 바꾸기를 하면 좋습니다. (ExtremeProgramming에선 타이머를 이용해서 정해진 시간이 되면 역할 바꾸기를 하는 예도 있습니다) 뭐 어찌되었건, 피곤하다 싶거나 지금 머리가 잘 안돌아간다 싶으면 옆 사람에게 키보드를 넘기면 되죠.
Strengthening the Case for Pair-Programming(Laurie Williams, ...)만 읽어보고 쓰는 글입니다. 위에 있는 왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다. 문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요. 그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다. Performance보다는 왕초보를 왕도사로 만들기 위한 목적이라면 왕초보와 왕도사와의 Pair-Programming이 약간의 도움이 되기는 할 것 같습니다. 그러나 우리가 현재 하는 방식에 비해서 얼마나 효율이 있을까는 제고해봐야 할 것 같습니다. - 김수영
제가 여러번 강조했다시피 넓게 보는 안목이 필요합니다. 제가 쓴 http://c2.com/cgi/wiki?RecordYourCommunicationInTheCode 나 http://c2.com/cgi/wiki?DialogueWhilePairProgramming 를 읽어보세요. 그리고 사실 정말 왕초보는 어떤 방법론, 어떤 프로젝트에도 팀에게 이득이 되지 않습니다. 하지만 이 왕초보를 쓰지 않으면 프로젝트가 망하는 (아주 희귀하고 괴로운) 상황에서 XP가 가장 효율적이 될 수 있다고 봅니다.
pair-anaysis와 pair-design의 중요성을 문서에서는 ''"Unanimously, pair-programmers agree that pair-analysis and pair-design is '''critical''' for their pair success."'' 이와 같이 말하고 있습니다. 또 다시 보시면 아시겠지만.. 제가 쓴 문장은 "물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요."입니다. 택도 없다는 표현은 당연히 제 생각이라는 것이 나타나 있다고 생각되는데....
- ParserMarket . . . . 1 match
This is a marketplace for your parsers. Please state your name, your email, and the release your parser is developed for (if you used a CVS snapshot, also state the revision number).
Use a special pagename {{{~cpp ["parser/yourParser.py"]}}} and start your parser with the line {{{~cpp
This way, the parser can directly be put on the page without any modification, and as easily copied from that page. See the examples below.
||BizarStructuredText: ["parser/stx.py"]||Richard Jones||richard@bizarsoftware.com.au||0.8|| ||
There are also some UtilityScripts.
If you are not familiar with Python and/or the MoinMoin code base, but have a need or an idea for a parser, this is the place to ask for it. Someone might find it useful, too, and implement it.
- PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 1 match
|| [PragmaticVersionControlWithCVS/AccessingTheRepository] || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] ||
locks: strict
retrieving revision 1.16
retrieving revision 1.17
P UnitTest/Introduction.tip
Directory /home/CVSHOME/sesame/template2 added to the repository
work> cvs add DataFormat.doc #<-- forgot the -kb option
work> cvs add -kb DataFormat.doc #<-- use the option
work> # reset the flag in the repository
work> # then reset the flags in our workspace
work> # and save this back in the repository
[http://www.zeropage.org/pds/200584977/pragmatic_version_control_with_cvs.pdf BOOK] 책의 76페이지에 존재한다.
Working revision: No entry for color.txt
[PragmaticVersionControlWithCVS]
- PragmaticVersionControlWithCVS/HowTo . . . . 1 match
|| [PragmaticVersionControlWithCVS/Getting Started] || [PragmaticVersionControlWithCVS/AccessingTheRepository] ||
VersionControl 은 개발팀이 해야할 3가지 실천과제중의 한개. ( UnitTest, Automation )
== Organizing a Version Control System ==
[PragmaticVersionControlWithCVS]
- PragmaticVersionControlWithCVS/UsingTagsAndBranches . . . . 1 match
|| [PragmaticVersionControlWithCVS/CommonCVSCommands] || [PragmaticVersionControlWithCVS/CreatingAProject] ||
== Merging The Experimental Branch ==
[PragmaticVersionControlWithCVS]
- PrettyPrintXslt . . . . 1 match
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:with-param name="root" select="true()"/>
select="substring-before(name(),':')" />
<xsl:call-template name="xmlverb-attrs" />
<xsl:otherwise>
</xsl:otherwise>
<!-- attribute nodes -->
<xsl:template name="xmlverb-attrs">
<span class="xmlverb-attr-name">
<span class="xmlverb-attr-content">
<xsl:with-param name="attrs" select="true()" />
<!-- processing instructions -->
<xsl:template match="processing-instruction()" mode="xmlverb">
<xsl:param name="attrs" />
<xsl:call-template name="replace-substring">
<xsl:call-template name="replace-substring">
<xsl:call-template name="replace-substring">
<!-- $text is an attribute value -->
<xsl:when test="$attrs">
<xsl:call-template name="replace-substring">
- PrimaryArithmetic/sun . . . . 1 match
assertTrue( ng.hasNext() );
numbers = String.valueOf(number).getBytes();
try {
import java.io.InputStreamReader;
public static void main( String [] args ) throws IOException {
BufferedReader in = new BufferedReader( new InputStreamReader( System.in ));
String line;
String [] numbers = line.split( " " );
String occurs = (counts == 0) ? "No" : String.valueOf(counts);
String postfix = (counts > 1) ? "s" : "";
- PrimaryArithmetic/황재선 . . . . 1 match
while True:
- ProgrammingLanguageClass/Report2002_2 . . . . 1 match
1. To find out the maximum length of a variable name
1. To assess the type-compatibility rule adopted by the Compilers;
''DeleteMe) 여기서는 name-compatibility 와 structured-compatibility를 이야기하는것 같은데 --석천''
1. To evaluate the security of pointers in the Compilers;
1. To check the evaluation order of operands in the Compilers by raising the functional side-effects if possible;
1. To identify a situation in which the “add” operator would not be associative;
1. To determine the largest and smallest positive floating point number in Intel Pentium processor.
The output should be a sequence of test programs with the results generated from them. Your grade will be highly dependent on the quality of your test programs.
As usual, you shall submit a floppy diskette with a listing of your program and a set of test data of your own choice, and the output from running your program on your test data set.
Be sure to design carefully your test data set to exercise your program completely. You are also recommended in your documentation to include the rationale behind your test programs.
In order words, explain why you design them in such a way and what you intend to demonstrate
- ProgrammingPartyAfterwords . . . . 1 match
* NoSmok:StructureAndInterpretationOfComputerPrograms 에 나온 Event-Driven Simulation 방식의 회로 시뮬레이션 [http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_idx_3328 온라인텍스트]
* NoSmok:TheArtOfComputerProgramming 에 나온 어셈블리어로 구현된 엘리베이터 시뮬레이션 (NoSmok:DonaldKnuth 가 직접 엘리베이터를 몇 시간 동안 타보고, 관찰하면서 만든 알고리즘이라고 함. 자기가 타고 다니는 엘리베이터를 분석, 고대로 시뮬레이션 해보는 것도 엄청난 공부가 될 것임)
- ProgrammingPearls/Column3 . . . . 1 match
== Data Structures Progams ==
#include <iostream>
#include <fstream>
#include <string>
string name, good, dong, city;
ifstream fin("data.dat");
#include <iostream>
#include <string>
#include <fstream>
string data[4];
string scheme = "Hello, $0. \nWe'll send a $1 to you. \nAddress : $2, $3\n";
ifstream fin("data.dat");
menuitem[choice] = true;
=== Structuring Data ===
* 이러면서 우리의 "The Mythical Man Month"의 구절이 나온다.
- ProgrammingPearls/Column6 . . . . 1 match
* 알고리즘과 자료구조의 교체 : Sequential 한것을 Binary Tree로 교체함으로써 O(n*n)이 O(n*lg n)으로 줄었다.
- ProjectEazy . . . . 1 match
[TheChild'sAcquisitionOfLanguage], [아동언어습득이론] - 아동이 언어를 습득해서 문장을 만드는 과정
- ProjectPrometheus/BugReport . . . . 1 match
Prometheus 의 버그 보고 페이지
* [[HTML(<strike> 서평에서 단순히 PRE 태그가 아니라, 워드랩이 가능하도록 고쳐야 한다. </strike>)]]
* [[HTML(<strike> 서평 제목과 링크가 서로 묶여 보이지 않아서 어느게 서로 관련된 것인지 애매하다. 같은 서평끼리 동일색으로 하고 색깔을 번갈아 배치하면 좋겠다. 예컨대 옅은 녹색, 진한 초록 이런 식으로. </strike>)]]
4. [[HTML(<strike> 특정 책 페이지를 봤을 때 추천 도서의 목록이 점수순으로 정렬 </strike>)]] - 원래 관련점수가 가장 높은 순으로 정렬됨.
* ViewBookExtractor - Regular Expression
* SearchBookExtractor - Regular Expression
* WAR 알아보기. ProjectPrometheus 배포가 편하도록.
* [[HTML(<strike>ZeroPageServer 에 릴리즈 한 이후 View Book 이 두번 이상 안되는 문제</strike>)]]
* '''The Goal''' View Book 시 DB에 들어가지 않음.
우리는 여기에서 frequent release(give workable system to the customer every week)가 얼마나 중요한가 새삼 확인할 수 있다. --JuNe
- ProjectPrometheus/Journey . . . . 1 match
["ProjectPrometheus"] 작업 수기. ["ThreeFs"] 에 따라. 그날의 한일과 느낀점, 교훈 등을 생각해보는 시간가지기. 순간을 채집하고 민감할 수 있도록.
* UnitTest 들이 드디어 다시 녹색바. 그리고 서블릿에 있던 로직 부분을 Extract, 테스트들을 붙여줌.
그동안의 Pair 경험에 의하면, 가장 Pair 가 잘 되기 어려운 때는, 의외로 너무 서로를 잘 알고 Pair를 잘 알고 있는 사람들인 경우인것 같다는. -_-; (Pair 가 잘 안되고 있다고 할때 소위 '이벤트성 처방전'을 써먹기가 뭐하니까. 5분 Pair를 하자고 하면 그 의도를 너무 쉽게 알고 있기에.) 잘 아는 사람들과는 주로 관찰자 입장이 되는데, 잘 아는 사람일수록 오히려 개인적으로 생각하는 룰들을 잘 적용하지 않게 된다. (하는 일들에 대한 Tracking 이라던지, 다른 사람이 먼저 Coding 을 하는중 이해 못할때 질문을 한다던지 등등. 차라리 그냥 '저사람 코딩 잘 되가나본데..'. 오히려 예전에 '문제'라고 생각하지 않았던 부분이 요새 '문제' 로 다가 온다.)
* 서블릿 레이어부분에 대해서 Controller 에 Logic 이 붙는 경우 어떻게 Test 를 붙일까. (FacadePattern 을 생각하고, 웹 Tier 를 따로 분리하는 생각을 해보게 된다.) --["1002"]
속좁은 ["1002"] 이 상민쓰에게 신경질 부리던날로 기억 -_-; 일종의 Test 에 대한 압박을 받아서이긴 한데, 처음에는 'Model, Logic' 부분에 대해서만 Test 정도 붙이면 되겠지 라고 생각했는데, Servlet 으로 작성한 Controller 부분이 커지면서, 각각 Command 에 해당하는 (service 라고 이름지었음) 부분에 대해 로직이 붙었기 때문이다. 근데, Servlet 이여서 테스트를 못붙이고, 작업은 작업대로 진행되는데 테스트 붙일 방법을 생각하지 못하는데, 잘 진행되어간다고 보이는 작업 발묶는것 같아서 이야기 못하고 꿍해있다는.
* 대안을 생각중인데, 일종의 Facade 를 만들고, Controller 의 각 service 들은 Facade 만 이용하는 식으로 작성하면 어떨까. 그렇게 한다면 Facade 에 대해서 Test Code 를 작성할 수 있으리라 생각. 또는, Servlet 부분에 대해서는 AcceptanceTest 의 관점으로 접근하는 것을 생각. 또는, cactus 에 대해서 알아봐야 하려나.. --["1002"]
* Side Effect 는 Refactoring 의 적이라는 생각이 오늘처럼 든 적이 없었다. -_-; Extract Method 같은 일을 하는 경우 더더욱.! --["1002"]
* SearchListExtractorRemoteTest 추가
* 도서관은 303건 초과 리스트를 한꺼번에 요청시에는 자체적으로 검색리스트 데이터를 보내지 않는다. 과거 cgi분석시 maxdisp 인자에 많이 넣을수 있다고 들었던 선입견이 결과 예측에 작용한것 같다. 초기에는 local 서버의 Java JDK쪽에서 자료를 받는 버퍼상의 한계 문제인줄 알았는데, 테스트 작성, Web에서 수작업 테스트 결과 알게 되었다. 관련 클래스 SearchListExtractorRemoteTest )
* {{{~cpp ViewBookExtractorTest}}} ( {{{~cpp LendBookList}}} 와 연계하여 테스트 추가 )
* ["ProjectPrometheus/UserStory"]
* ["ProjectPrometheus/EngineeringTask"]
* 예전에 일할때 잘못했었던 실수를 다시하고 있으니, 바로 기획자와의 대화이다. Iteration 이 끝날때마다 개발자가 먼저 기획자 또는 고객에게 진행상황을 이야기해야 한다. 특히 ExtremeProgramming 의 경우 Iteration 이 끝날때마다 Story 진행도에 대화를 해야 한다. Iteration 3 가 넘어가고 있지만 항상 먼저 전화를 한 사람이 누구인가라고 묻는다면 할말이 없어진다. 이번 Iteration 만큼은 먼저 전화하자;
일단 알고리즘부분을 대강 생각한뒤 Python 으로 TDD 를 했다. ([http://zeropage.org/browsecvs/index.php?&dir=ProjectPrometheus%2FPythonProject%2F&file=RSSpike.py&rev=1.1&cvsrep=ZeroPage 소스]). CRC 세션을 먼저하여 시나리오를 시각화해두고 프로그래밍을 했었다면 좀 더 빨리 작성할 수 있지 않았을까 하는 생각을 해본다.
알고리즘에 대한 SpikeSolution 에 대해서는, 일단 연습장에 명확하게 알고리즘을 세운뒤 프로그래밍에 들어가는 것이 좋겠다고 생각함. 그리고 알고리즘 디자인시에 Matrix 와 Graph 등의 모델을 그려서 생각해보는 것이 효율적이겠다는 생각이 들었다.
* ''Jython은 기본적으로 모든 스트링을 유니코드로 처리함. 따라서, 해당 스트링을 euc-kr로 인코딩한 다음에 파라미터 전달을 하면 제대로 됨. 인코딩을 바꾸기 위해서는 파이썬 euc-kr 코덱(pure python 버젼)을 깔고, {{{~cpp '한글'.encode('euc-kr')}}}을 쓰거나, 아니면 자바의 String.getBytes나 {{{~cpp OutputStreamWriter}}} 등을 쓰면 될 것임. --JuNe''
오늘 무엇을 할 것인가 하며 ["ProjectPrometheus/Iteration"] 를 보고선 HTML Parsing 을 진행하기로 했다. 그 전에 ["1002"] 는 '아, 작업하기 전에 Book Search 에 대한 전반적인 그림을 그려 놓는게 좋겠군. 그리고 난 뒤 HTML Parsing 부분에 대해 구현해야지' 라고 생각을 했다. 한편 ["neocoin"] 은 수요일때와 마찬가지로 'HTML Parsing 부분에 대해 일단은 SpikeSolution 으로 만든뒤 모듈화 시켜나가야지' 라는 생각을 했다. 프로그래밍 스타일이 다른 두 사람이 진행 방법에 대한 언급없이 진행을 하려고 했다. ["1002"] 는 '아 전체 그림' 하며 CRC 세션을 하려고 하는 중간. 한편 ["neocoin"] 은 같이 진행하고 있는 CRC 세션에 중간에 대해서 '지금 서로 무엇을 하고 있는거지?' 하며 혼란에 빠졌다. 똑같은 디자인 단계에 대해서 ["1002"] 는 전반적 Book Search 에 대해 생각을 하고 있었고, ["neocoin"] 은 모듈과 모듈간 연결고리에 대해 생각을 하였다.
* 그리고 'Layer' 의 뜻이 모호하긴 하군. 'Abstract Layer', 디자인에 대한 추상화 정도를 이야기하시는것임? (문맥상 일단 그렇게 해석하는중)
* 자칫 RDD 에서의 그 세부클래스들에 대해서 너무 많이 생각하면 BUFD(Big Up-Front Design) 이 되리라 생각한다. 차라리 Class 가 2개였을때 코딩 들어가고, 20-30분 정도 코딩뒤 ["Refactoring"] 을 의식적으로 하여 Big Class 에 대해 Extract Class 를 추구하는게 더 빠르지 않았을까.
* Python, webdebug 를 이용, ["ProjectPrometheus/LibraryCgiAnalysis"] Task
- ProjectSemiPhotoshop/요구사항 . . . . 1 match
* Contrast Stretched (O 흑백)
* Thereshold Binary Image (O 흑백)
* Contrast Stretching (O)
- ProjectVirush . . . . 1 match
Trac을 이용해 [http://165.194.17.5/trac/aekae/timeline 프로젝트 진행상황]과 [http://165.194.17.5/trac/aekae/browser//ProjectVirush Source Code]를 확인할 수 있습니다.
- ProjectVirush/Prototype . . . . 1 match
SOCKADDR_IN server_addr; // 네트워크의 정보를 담을 structure 생성.
server_sock = socket(AF_INET, SOCK_STREAM, 0);
// struct sockaddr_in -> SOCKADDR_IN
(struct sockaddr *)&server_addr,
sizeof(struct sockaddr)) == -1 )
printf( "I have to answer the next question. %s\n", question);
printf( "I sent an answer. The answer is %s\r\n", msg);
- ProjectZephyrus/Client . . . . 1 match
|| JTree 이용, buddy list class 작성 || 1 || ○ (40분) 5/31 ||
|| buddy list class refactoring (tree model move method) || . || ○ (20분) 6/5 ||
- ProjectZephyrus/Thread . . . . 1 match
[http://javaservice.net/~java/bbs/read.cgi?m=devtip&b=servlet&c=r_p&n=973389459&k=고려사항&d=t#973389459 JDBC 연동시 코딩고려사항(Transaction처리) - 제3탄-] [[BR]]
아 한가지 더 생각나는게 있군요. 자바로 프로젝트를 하니 적습니다. 절대 작성하는 라이브러리나 코드의 중간에서 Exception을 잡아서 삼켜버리지 마세요. Exception은 추후 debugging에 절대적인 정보를 담고 있습니다. 중간에 try ~ catch 로 잡아버리고, 어떠한 형태로도 알려주지 않는것은 상당히 위험합니다. 시간이 나면 이와 관련해서 더 적도록 하지요. --이선우
- ProjectZephyrus/간단CVS사용설명 . . . . 1 match
# description: The cvspsever serves CVS Passowrd Server sessions; it uses \
# unencrypted username/password pairs for authentication.
socket_type = stream
- ProjectZephyrus/일정 . . . . 1 match
||5.28 (화)||영서 - 5시 || JBuilder 일부 설명, JTree 일부 연습용 프로그래밍. 기타) 책 빌려주기 || △ (JBuilder 설명못함) ||
- PythonLanguage . . . . 1 match
* '''ExtremeProgramming 과 잘 어울린다.'''
~~http://users.python.or.kr:9080/PyKUG/TransProjects/Python20Docs/~~
- REFACTORING . . . . 1 match
특별히 때를 둘 필요는 없다. 틈나는 대로. Don Robert 의 The Rule of Three 원칙을 적용해도 좋을 것 같다.
Three Strike 법칙은 외우기 쉬워서 처음 Refactoring 을 하는 사람들에겐 적당하다. 하지만, 저 법칙은 주로 중복이 일어날 때의 경우이고, Rename Method/Field/Variable 같은 Refactoring 은 지속적으로 해주는 것이 좋다.
그리고 Refactoring 을 이해하는데 ExtremeProgramming 을 이해하면 도움이 될 것이다.
["Refactoring"] 에 의외로 중요한 기술로 생각되는건 바로 Extract Method 와 Rename 과 관련된 Refactoring. 가장 간단하여 시시해보일지 모르겠지만, 그로서 얻어지는 효과는 대단하다. 다른 Refactoring 기술들의 경우도 일단 Extract Method 와 Rename 만 잘 지켜지면 그만큼 적용하기 쉬워진다고 생각.
개인적으로 Refactoring 을 적용하는중, 자주 이용되는 테크닉이 StructuredProgramming 기법인 StepwiseRefinement (Rename 도 일종의 StepwiseRefinement 기술이라 생각이 든다)라는점은 의외일련지 모르겠다. OOP 와 SP 는 상호배제의 관계가 아니기에. --["1002"]
- RabbitHunt/김태진 . . . . 1 match
== Trial and Error ==
- Refactoring/BuildingTestCode . . . . 1 match
== The Value of Self-testing Code ==
테스팅 코드는 ExtremeProgramming 의 중요한 부분이다. [Beck, XP]. 이 이름은 빠르고 게으른 해커같은 프로그래머들에겐 마술주문과 같을 것이다. 하지만, extreme programmer들은 테스트에 대해 매우 헌신적이다. 그들은 가능한 한 소프트웨어가 빠르게 발전하기 원하고, 그들은 테스트들이 당신을 아마 갈 수 있는 한 빠르게 갈 수 있도록 도와줄 것을 안다.
- Refactoring/ComposingMethods . . . . 1 match
== Extract Method p110 ==
* You have a code fragment that can be grouped together.[[BR]]''Turn the fragment into a method whose name explains the purpose of the method.''
* A method's body is just as clear as its name. [[BR]] ''Put the method's body into the body of its callers and remove the method.''
int getRating(){
int getRating(){
* You have a temp that is assigned to once twith a simple expression, and the temp is getting in the way of other refactorings. [[BR]] ''Replace all references to that temp with the expression.''
== Introduce Explaining Variable p124 ==
* You have a complicated expression. [[BR]] ''Put the result of the expression, or parts of the expression,in a temporary variagle with a name that explains the purpose.''
* The code assigns to a parameter. ''Use a temporary variagle instead.''
* You have a long method that uses local variagles in such a way that you cannot apply ''Extract Method(110)''. [[BR]]
''Turn the method into ints own object so that all the local variagles become fields on that object. You can then decompose the method into other methods on the same object.''
* You want to replace an altorithm with one that is clearer. [[BR]] ''Replace the body of the method with the new altorithm.''
String foundPerson(String[] people){
String foundPerson(String[] people){
ListCandidates = Arrays.asList(new String[] {"Don", John", "Kent"});
- Refactoring/DealingWithGeneralization . . . . 1 match
* Two subclasses have the same field.[[BR]]''Move the field to the superclass.''
* You have methods with identical results on subclasses.[[BR]]''Move them to the superclass''
== Pull Up Constructor Body ==
* You have constructors on subclasses with mostly identical bodies.[[BR]]''Create a superclass constructor; class this from the subclass methods.''
public Manager (String name, String id, int grade) {
public Manager (String name, String id, int grade) {
* A field is used only by some subclasses.[[BR]]''Move the field to those subclasses.''
== Extract Subclass ==
http://zeropage.org/~reset/zb/data/ExtractSubclass.gif
== Extract Superclass ==
* You have two classes with similar features.[[BR]]''Create a superclass and move the common features to the superclass.''
http://zeropage.org/~reset/zb/data/ExtractSuperClass.gif
== Extract Interface ==
* Several clients use the same subset of a class's interface, or two classes have part of their interfaces in common.[[BR]]''Extract the subset into an interface.''
http://zeropage.org/~reset/zb/data/ExtractInterface.gif
* A superclass and subclass are not very different.[[BR]]''Merge them together.''
* You have two methods in subclasses that perform similar steps in the same order, yet the steps are different.[[BR]]''Get the steps into methods with the same signature, so that the original methods become the same. Then you call pull them up.''
* A subclass uses only part of a superclasses interface or does not want to inherit data.[[BR]]''Create a field for the superclass, adjust methods to delegate to the superclass, and remove the subclassing.''
* You're using delegation and are ofter writing many simple delegations for the entire interface.[[BR]]''Make the delegating class a subclass of the delegate.''
- Refactoring/OrganizingData . . . . 1 match
* You are accessing a field directly, but the coupling to the field is becoming awkward. [[BR]] ''Create getting and setting methods for the field and use only those to access the field.''
* You have a data item that needs additional data or behavior. [[BR]] ''Turn the data item into an object.''
* You have a class with many equal instances that you want to replace with a single object. [[BR]] ''Turn the object into a reference object.''
* You have an array in which certain elements mean different things. [[BR]]''Replace the array with an object that has a field for each element.''
String[] row = new String[3];
* You have domain data available only in a GUI control, and domain methods need access. [[BR]] ''Copy the data to a domain object. Set up an observer to synchronize the two pieces of data.''
* You have two classes that need to use each other's features, but there is only a one-way link.[[BR]]''Add back pointers, and change modifiers to update both sets.''
* You have a two-way associational but one class no longer needs features from the other. [[BR]]''Drop the unneeded end of the association.''
* You have a literal number with a paricular meaning. [[BR]] ''Crate a constant, name it after the meaning, and replace the number with it.''
* There is a public field. [[BR]] ''Make it private and provide accessors.''
public String _name;
private String _name;
public String getName() {return _name;}
public void setName(String arg) { _name = arg;}
* You need to interface with a record structure in a traditional programming environment. [[BR]]''Make a dumb data object for the record.''
* A class has a numeric type code that does not affect its behavior. [[BR]] ''Replace the number with a new class.''
* You have an immutable type code that affects the bahavior of a class. [[BR]] ''Replace the type code with subclasses.''
== Replace Type code with State/Strategy p227 ==
* You have a type code that affects the behavior of a class, but you cannot use subclassing. [[BR]] ''REplace the type code with a state object.''
http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithStateStrategy.gif
- Refactoring/RefactoringTools . . . . 1 match
=== Parse Trees ===
- ReverseAndAdd/정수민 . . . . 1 match
while True:
n=str(k)
- ReverseAndAdd/최경현 . . . . 1 match
a=str(raw_input('input Number:'))
while True:
b=str(a)
else : a=str(a)
- ReverseAndAdd/황재선 . . . . 1 match
while n != int(str(n)[::-1]):
n += int(str(n)[::-1])
return True
def printRepeatNum(self, num):
r.printRepeatNum(num)
- STL/참고사이트 . . . . 1 match
The Code Project, C++/STL/MFC 에 대한 소개 http://www.codeproject.com/cpp/stlintroduction.asp
C++ Standard Template Library, another great tutorial, by Mark Sebern http://www.msoe.edu/eecs/cese/resources/stl/index.htm
iterator에 대한 매우 좋은 설명 http://www.cs.trinity.edu/~joldham/1321/lectures/iterators/
Intro to STL SGI http://www.sgi.com/tech/stl/stl_introduction.html
- ScheduledWalk/석천 . . . . 1 match
["데블스캠프2002"]때 소개했었던 StructuredProgramming 기법을 처음부터 끝까지 진행하는 모습을 보여드립니다. 중간에 버그가 발생하고, 그 버그를 수정한 소스를 그대로 실어봅니다. 그대로 따라해보셔도 좋을듯. 단, 중간 삽질과 컴파일 에러에 겁먹지만 않으신다면. ^^;
StructuredProgramming 기법으로 StepwiseRefinement 하였습니다. 문제를 TopDown 스타일로 계속 재정의하여 뼈대를 만든 다음, Depth First (트리에서 깊이 우선) 로 가장 작은 모듈들을 먼저 하나하나 구현해 나갔습니다. 중반부터는 UnitTest 코드를 삽입하기를 시도, 중후반부터는 UnitTest Code를 먼저 만들고 프로그램 코드를 나중에 작성하였습니다.
InputStartRoachPosition();
InputRoachJourney();
void InputStartRoachPosition() {
void InputRoachJourney() {
void InputStartRoachPosition();
void InputRoachJourney();
InputStartRoachPosition();
InputRoachJourney();
void InputStartRoachPosition() {
void InputRoachJourney() {
구현 순서에 대한 원칙을 잡았으면 구현을 해봅니다. 일단 Input 부분을 구현하기로 정해졌고요. (순서상 가장 왼쪽) 그 중 가장 깊이가 깊은 InputBoardSize, InputStartRoachPosition, InputRoachJourney 중 InputBoardSize 를 구현합니다.
typedef struct __IntegerPair { // return 을 하기 위한 구조체 선언
typedef struct __IntegerPair {
IntPair testReceiver;
testReceiver = InputBoardSize();
printf ("Board Size value : %d, %d \n", testReceiver.n1, testReceiver.n2);
Input 에서 테스트해본 결과 값이 잘 출력되는군요. 그럼, 계속해서 Input의 다른 함수들인 InputStartRoachPosition(), InputRoachJourney() 에 대해 계속 구현을 해보죠.
IntPair InputStartRoachPosition() {
- ScheduledWalk/임인택 . . . . 1 match
import java.io.DataInputStream;
import java.io.FileInputStream;
private String schedule;
try {
DataInputStream din
= new DataInputStream(new FileInputStream(new File("input2.txt")));
String pos = din.readLine();
String startPoint[] = pos.split(" ");
e.printStackTrace();
public static void main(String[] args) {
- Self-describingSequence/1002 . . . . 1 match
theGroupIdx = findGroupIdx(table,i)
repeat = theGroupIdx
while True:
theGroupIdx = finder.find(i)
repeat = theGroupIdx
- SeminarHowToProgramIt . . . . 1 match
* ["CrcCard"] (Index Card -- The finalist of Jolt Award for "design tools" along with Rational Rose Enterprise Edition)
* White Board -- Communicate with the Board
- SeminarHowToProgramItAfterwords . . . . 1 match
* '테스트코드의 보폭을 조절하라. 상황에 따라 성큼성큼 보폭을 늘릴수도 있지만, 상황에 따라서는 보폭을 좁혀야 한다. 처음 TDD를 하는 사람은 보폭을 좁혀서 걸어가기가 오히려 더 힘들다' wiki:Wiki:DoTheSimplestThingThatCouldPossiblyWork. 이것이 훈련이 아직 덜된, TDD를 하는 사람에게는 얼마나 힘든지는 이번 RDP 짜면서 느꼈었는데. 열심히 훈련하겠습니다.
- SgmlEntities . . . . 1 match
To support international characters even on generic (US) keyboards, SgmlEntities know from HTML are a good way. These can also be used to escape the WikiMarkup characters.
- SibichiSeminar . . . . 1 match
* [SibichiSeminar/TrustModel]
- SignatureSurvey . . . . 1 match
import StringIO
result = "." * (len(aText)-1) + ">"+ str(len(aText)-1) +"\n"
def repl_normalString(self, aText):
tagStart = Str("<")
tagEnd = Rep1(AnyBut(">")) + Str(">")
enterCode = Str("\n")
whiteSpace = Rep1(Str(" ")) | Rep1(Str("\t"))
(AnyChar, repl_normalString),
def __init__(self, aStream):
Scanner.__init__(self, self.lexicon, aStream)
writer = StringIO.StringIO("")
while True:
def writeToFile(aFileName, aStr):
f.write(aStr)
surveyer = HtmlSigSurveyer(StringIO.StringIO(data))
lines = [line for line in result.splitlines() if line.strip() != '']
19 VTR<..>2
- SmallTalk/강좌FromHitel/Index . . . . 1 match
| 3.1.1. 알림판 객체 - Transcript
- SmallTalk/강좌FromHitel/소개 . . . . 1 match
if Data[i] = key then
ShowMessage( IntToStr(i) );
(data at: i) = key ifTrue: [
^MessageBox notify: i displayString
- SmallTalk/강좌FromHitel/차례 . . . . 1 match
| 3.1.1. 알림판 객체 - Transcript
- SmallTalk_Index . . . . 1 match
| 3.1.1. 알림판 객체 - Transcript
- SmallTalk_Introduce . . . . 1 match
if Data[i] = key then
ShowMessage( IntToStr(i) );
(data at: i) = key ifTrue: [
^MessageBox notify: i displayString
- SpiralArray/임인택 . . . . 1 match
while True:
def testRotList(self):
- Squeak . . . . 1 match
* Squeak: A Quick Trip to ObjectLand
- StringOfCPlusPlus/상협 . . . . 1 match
== String0.h ==
//String0.h
#ifndef _STRING0_H_
#define _STRING0_H_
class String
void lenstr() {while(st[n]!='\0') n++;}//문자열의 길이를 n값으로 저장
String();
String(const char *in_st);
~String();
String operator+(const String &s) const;
friend ostream& operator<<(ostream &os, String &s);
== String0.cpp ==
//String0.cpp
#include <iostream>
#include <cstring>
#include "String0.h"
String::String()
String::String(const char *in_st)
strncpy(st,in_st,LEN);
lenstr();
- SystemEngineeringTeam/TrainingCourse . . . . 1 match
= Training Course =
* 서민관 - trello 쪽에 있는 서버 운영체제 요건을 봤을 때 대부분이 큰 차이가 없는 것 같고 안정성 면에서 CentOS, 업데이트 속도 면에서 Fedora/Ubuntu 라는 느낌이라서 둘 중에 어느 쪽에 중점을 두느냐에 따라 결정이 갈리는 것 같습니다. 이런저런 생각의 결과 Ubuntu 계열을 사용하기로 결정했습니다. 이유는 여럿 있는데, 첫째는 지금까지 Ubuntu를 좀 써 본 만큼 익숙한 환경에서 하는 것이 그 외의 문제에 시간을 덜 쓰고 문제 자체만을 다루기에 좋을 것 같다는 것입니다. 그리고 두 번째로 이번에 Raspberry pi를 구매했는데, 이쪽에서 기본적으로 제공하는 운영체제가 Debian 계열이라서 Ubuntu에서 작업을 해 보면 Raspberry pi에서도 좀 더 작업을 편하게 할 수 있지 않을까 하는 생각이 들어서 Ubuntu 계열을 쓰기로 결정했습니다.
- TCP/IP . . . . 1 match
== TCP(Transmission Control Protocol)? UDP(User Datagram Protocol)? ==
- TCP/IP 네트워크 관리 / TCP/IP의 개요 . . . . 1 match
*'''TCP/IP'''명칭의 유래 : 전송 제어 프로토콜('''T'''ransmission '''C'''ontrol '''P'''rotocol) + 인터넷 프로토콜 ('''I'''nternet '''P'''rotocol)
*Transport layer : 양 종단 사이의 에러점검과 보정을 제공
- TddRecursiveDescentParsing . . . . 1 match
''먼저 "1"을 넣으면 "1"을 리턴하는 프로그램을 만듭니다. 다음 "314"를 넣으면 "314"를 리턴하게 합니다. 다음엔, "1 + 0"을 넣으면 "1"을 리턴하게 합니다. 다음, "1 + 314"를 넣으면 "315"를 리턴합니다. 다음, "1 + 2 + 314"를 하면 "317"을 리턴합니다. 다음, "1 - 0"을 하면 "1"을 리턴합니다. 다음, "1 - 1"을 하면 "0"을 리턴합니다. 다음, "314 - 1 + 2"를 하면 "315"를 리턴합니다. 다음, "- 1"을 넣으면 "-1"을 리턴합니다. 다음, "( 1 )"을 넣으면 "1"을 리턴합니다. ...... AST는 아직 생각하지 말고 당장 현재의 테스트를 패스하게 만드는데 필요한 것만 만들어 나가고 OAOO를 지키면서(테스트코드와 시스템코드 사이, 그리고 시스템 코드 간) 리팩토링을 지속적으로 합니다 -- 그렇다고 파싱 이론을 전혀 이용하지 말라는 말은 아니고 YAGNI를 명심하라는 것입니다. 그러면 어느 누가 봐도 훌륭한 디자인의 파서를 만들 수 있습니다. DoTheSimplestThingThatCouldPossiblyWork. --김창준''
parser.setStringStream("a = b+c")
self.assertEquals(token.tokenString, 'a')
self.assertEquals(token.tokenString, '=')
self.assertEquals(token.tokenString,'b')
self.assertEquals(token.tokenString, '+')
- TddWithWebPresentation . . . . 1 match
암튼, 현재의 내 코드로 봤을때는 기존의 MVC 로 봤을 때에도 View와 Controller 가 섞여있는 형태였다. 이 부분에 대해서 다음과 같이 코드를 변경해보았다.
2. MockPresenter 를 만든다. 중요한 것은 출력결과를 테스트하는것이 목적이 아니라 action 결과 행해지는 일들(Transaction)이 제대로 일어났는지를 테스트하는 것이다. MockPresenter 는 그냥 해당 메소드들이 호출되었는지만 verify 하는정도면 충분할 것이다.
- TdddArticle . . . . 1 match
제약사항으로는 Stored Procedure 나 Trigger 등 Vendor-Specfic 한 기술들을 적용하기 어렵다는 점 (이를 위해선 로컬 DB 또한 해당 Vendor의 DB를 설치해야 하므로).
- TestDrivenDevelopmentByExample/xUnitExample . . . . 1 match
result = TestResult()
try:
method = getattr( self, self.name )
self.wasRun = True
class TestResult:
def testResult(self):
result = TestResult()
TestCaseTest("testResult").run()
- TestFirstProgramming . . . . 1 match
ExtremeProgramming에서는 UnitTest -> Coding -> ["Refactoring"] 이 맞물려 돌아간다. TestFirstProgramming 과 ["Refactoring"] 으로 단순한 디자인이 유도되어진다.
ex) ["TFP예제/Omok"], ["TFP예제/Queue"], ["TFP예제/WikiPageGather"]
* wiki:Wiki:ExtremeProgrammingUnitTestingApproach
wiki:Wiki:DoTheSimplestThingThatCouldPossiblyWork
["ExtremeProgramming"]
- The Tower of Hanoi . . . . 1 match
==== Recurrent Problems - The Tower of Hanoi ====
T<sub>n</sub> is the minimum number of moves that will transfer n disks from one peg to another under Lucas's rules.
===== mathematical expression =====
- TheBookOpenSources . . . . 1 match
Moa:TheBookOpenSources 에서 자유롭게 볼 수 있는 온라인책 관련 링크가 있다.
- TheJavaMan/로보코드 . . . . 1 match
[TheJavaMan]
- TheJavaMan/비행기게임 . . . . 1 match
[TheJavaMan]
- TheJavaMan/숫자야구 . . . . 1 match
public BBGameFrame(String aStr){
super(aStr);
public static void main(String[] args) {
* To change the template for this generated file go to
* To change the template for this generated type comment go to
public static String correct_answer;
public static String compare(String aStr){
if ( correct_answer.compareTo(aStr) == 0)
int strike = 0, ball = 0;
if ( correct_answer.charAt(i) == aStr.charAt(i))
strike++;
if ( correct_answer.charAt(i) == aStr.charAt(j))
if ( strike == ball & ball == 0)
return strike + " 스트라이크, "
public static void main(String[] args) {
* To change the template for this generated file go to
* To change the template for this generated type comment go to
public static void main(String[] args) {
* To change the template for this generated file go to
* To change the template for this generated type comment go to
- TheJavaMan/테트리스 . . . . 1 match
[http://iruril.cafe24.com/iruril/Tetris/Tetris_SM.html]
public class Tetris extends Applet implements Runnable {
runGame=true;
board[blockX[i]][blockY[i]] = true;
delOk=true;
boolean dropOk=true;
while(true)
try {
boolean turnOk = true;
boolean moveOk=true;
String keyCode = KeyEvent.getKeyText(e.getKeyCode());
board[blockX[i]][blockY[i]]=true;
[TheJavaMan]
- TheLargestSmallestBox/허준수 . . . . 1 match
#include <iostream>
[TheLargestSmallestBox]
- ThePracticeOfProgramming . . . . 1 match
[TheElementsOfProgrammingStyle] 에 대해 문의사항이 있어 저자중 한명에게 메일을 보냈더니, 이 책을 언급하였다. TEOPS 의 중요한 내용들을 이책의 첫 챕터에 수록하였다는 말과 함께. -_-a
- ThePragmaticProgrammer . . . . 1 match
SeeAlso : PPR:ThePragmaticProgrammer
- TheSkylineProblem . . . . 1 match
=== The Problem ===
- TheWarOfGenesis2R/ToDo . . . . 1 match
[TheWarOfGenesis2R]
- TheWarOfGenesis2R/일지 . . . . 1 match
* [[HTML(<STRIKE>)]] 아무런 장애물도 없는 맵에서 객체 이동시키기. [[HTML(</STRIKE>)]] - 20분
* [[HTML(<STRIKE>)]] 장애물이 있는 맵에서 객체 이동시키기. [[HTML(</STRIKE>)]] - 1시간
* [[HTML(<STRIKE>)]] DirectDraw 복습으로 알카노이드 만들기. [[HTML(</STRIKE>)]] - 1시간
* [[HTML(<STRIKE>)]] 타일 에디터에 관한 간략한 회의. [[HTML(</STRIKE>)]] - 20분
* [[HTML(<STRIKE>)]] 타일에디터 만들기 [[HTML(</STRIKE>)]] - 2시간 30분
* 리팩토링의 위대함을 계속 느껴 버렸다. Extract Method는 기본이고, 상위 클래스로 올리기, 등등 이것저것 하니까 매우 간단해지는 것을 느꼈다.
[TheWarOfGenesis2R]
- ThinkRon . . . . 1 match
aka {{{~cpp WhatTheyWouldDoInMyShoes}}}
Let me tell a brief story about how that came about. Our president, at the time was Bob Doherty. Doherty came from General Electric via Yale, and had been one of the bright young men who were taken under the wing of the famous engineer Stiglitz. Every Saturday, Stiglitz would hold a session with these talented young men whom General Electric had recruited and who were trying to learn more advanced engineering theory and problem-solving techniques. Typically, Bob Doherty would sometimes get really stuck while working on a problem. On those occasions, he would walk down the hall, knock on Stiglitz’s door, talk to him — and by golly, after a few minutes or maybe a quarter of an hour, the problem would be solved.
One morning Doherty, on his way to Stiglitz’s office, said to himself, "Now what do we really talk about? What’s the nature of our conversation?" And his next thought was, "Well Stiglitz never says anything; he just asks me questions. And I don’t know the answer to the problem or I wouldn’t be down there; and yet after fifteen minutes I know the answer. So instead of continuing to Stiglitz’s office, he went to the nearest men’s room and sat down for a while and asked himself, "What questions would Stiglitz ask me about this?" And lo and behold, after ten minutes he had the answer to the problem and went down to Stiglitz’s office and proudly announced that he knew how to solve it.
- ToeicStudy . . . . 1 match
== The Goal ==
- TriDiagonal . . . . 1 match
see also [TriDiagonal/1002]
- UglyNumbers . . . . 1 match
The 1500'th ugly number is <number>.
- UglyNumbers/JuNe . . . . 1 match
tris=[bisect(ugs,lastug/p)
ts=[ugs[ind]*mul for ind,mul in zip(tris,prim)]
print "The 1500'th ugly number is",ugly(1500)[-1]
- UglyNumbers/김회영 . . . . 1 match
#include<iostream>
if(check(number)==true)
cout<<"The "<<situation<<"번째 심술쟁이수는 "<<number;
while(true)
return true;
return true;
- UglyNumbers/문보창 . . . . 1 match
#include <iostream>
cout << "The 1500'th ugly number is " << num[1499] << ".\n";
- UglyNumbers/송지원 . . . . 1 match
#include <iostream>
cout << "The " << num << "th ugly number is " << uglyNum(num) << endl;
- UglyNumbers/승한 . . . . 1 match
return True
- UglyNumbers/이동현 . . . . 1 match
System.out.println("The 1500'th ugly number is "+new BigDecimal(((Double)arr.get(0)).doubleValue()));// + " " + arr.size());
public static void main(String[] args) {
- UglyNumbers/황재선 . . . . 1 match
print "The 1500'th ugly number is <" + str(num) + ">."
- UserPreferences . . . . 1 match
[[Theme]]
- VacationOfZeroPage . . . . 1 match
2박3일 정도 교외로 RT를 가면 어떨까요? (see also Seminar:ReadershipTraining ) JuNe이 학부생으로 되돌아 간다면 선배, 후배, 동기들과 컴퓨터 고전을 들고 RT를 할 겁니다.
- ViImproved/설명서 . . . . 1 match
▶Vi 저자 vi와 ex는 The University of California, Berkeley California computer Science Division, Department of Electrical Engineering and Computer Science에서 개발
제어키 명령에서 Ctrl키와 다른 키의 결합을 지칭하는 용어임예) ^u는 Ctrl키를 누른 상태에서 u키를 누른다는 것을 의미
^^D 카렛(^)에 이어서 control-d(^D)를 누른다.
- VisualBasicClass/2006/Exam1 . . . . 1 match
④ MultiLine은 컨트롤이 문의 여러 줄을 받아 들일 수 있는지 여부를 결정하게 된다. True는 한줄을, False는 여러줄을 사용할 수 있다.
7. a=2, b=3 일 때 다음 조건 중 true인것은?(1점)
Dim temp As String
2) String$(7,"*-")
3) InStr("태수금지화목토천혜명", 4)
- VisualStudio . . . . 1 match
예제 : ProjectTheCell (현재 진행중인 Othello Project)
- WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 1 match
public static void main(String[] args) {
String temp = "바";
http://www.wowwiki.com/Getting_the_current_interface_number
if count > 10000 then
if baseName ~= nil then
function charLen(str)
calc = string.byte(str:sub(1,1))
if(calc >= 0 and calc <= 127) then return 1
elseif(calc >= 192 and calc <= 223) then return 2
elseif(calc >= 224 and calc <= 239) then return 3
elseif(calc >= 240 and calc <= 247) then return 4
elseif(calc >= 248 and calc <= 251) then return 5
elseif(calc >= 252 and calc <= 253) then return 6
function samplingFirst(str)
local first = string.byte(str:sub(1,1)) - 224 -- 1110xxxx
local second = math.floor((string.byte(str:sub(2,2)) - 128)/4)
local third = math.floor((string.byte(str:sub(2,2))%4)*4 + (string.byte(str:sub(3,3)) - 128)/16)
local fourth = math.floor(string.byte(str:sub(3,3))%16)
function cstc(len, str)
return {type = len, body = str};
- WeightsAndMeasures/신재동 . . . . 1 match
def __init__(self, weight, strength):
self.strength = strength
self.canAmount = strength - weight
numsStr = raw_input().split(' ')
if(numsStr == ['']):
weight = int(numsStr[0])
strength = int(numsStr[1])
return (weight, strength)
while(True):
(weight, strength) = inputATurtle()
if(weight == 0 or strength == 0):
turtles.append(Turtle(weight, strength))
print t.weight, t.strength, t.canAmount
>>> l.sort(key=operator.attrgetter('foo'))
- WikiNature . . . . 1 match
The WikiNature is typing in a bunch of book titles and coming back a day later and finding them turned into birds in the Amazon.
Writing on Wiki is like regular writing, except I get to write so much more than I write, and I get to think thoughts I never thought (like being on a really good Free Software project, where you wake up the next morning to find your bugs fixed and ideas improved).
It reminds us of minimalist Japanese brushstroke drawings; you provide the few, elegant slashes of ink, and other minds fill in the rest.
- WikiWikiWebFaq . . . . 1 match
'''A:''' A set of pages of information that are open and free for anyone to edit as they wish. The system creates cross-reference hyperlinks between pages automatically. See WikiWikiWeb for more info.
- XMLStudy_2002/Encoding . . . . 1 match
*Unicode와 XML등과 같은 Markup Language 등에 대해 W3C와 Unicode.org 멤버들이 작성한 Technical Report : [http://www.w3.org/TR/1999/WD-unicode-xml-19990928/]
Shuart Culshaw. "Towards a Truly WorldWide Web. How XML and Unicode are making it easier to publish multilingual
electronic documents." MultiLingual Communications & Technology. Volume 9, Issue 3
- XSLT . . . . 1 match
#Redirect eXtensibleStylesheetLanguageTransformations
- XsltVersion . . . . 1 match
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- ZIM/EssentialUseCase . . . . 1 match
ShowMeTheExample~
- ZPHomePage/레이아웃 . . . . 1 match
= Thead =
- ZeroPageHistory . . . . 1 match
||겨울방학 ||Data Structure, C 등 각종 강좌 스터디 개설됨. ||
* Data Structure, C
||겨울방학 ||Data Structure, Clipper, UNIX, Game, Graphic 세미나 개최. ||
* Data Structure, Clipper, UNIX, Game, Computer Graphics
||여름방학 ||Assembly, C, Data Structure 세미나 개최. ||
||겨울방학 ||X-Window, Data Structure, C, C++ 세미나 개최. ||
* Assembly Language, C, Data Structure
* X-Windows, Data Structure, C, C++
||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
* Data Structure, API, Game
||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
* C++, Data Structure, Python, Java-Servlet, JSP, PHP, Servlet, JDBC
* AOI, The Art Of Computer Programming
* AOI, Extreme Programming, MFC, Java
* 데블스캠프 : C, C++, Java, Data Structure, OOP, Flash, Python, Visual Python, JSP, Network, Security
* C, C++, Java, Data Structure, Engineering Mathematics, ACM, 3D, Lucene, 영상처리
* 데블스캠프 : C++, SVN, SSH, MSDN, Data Structure, Algorithm, WinAPI, MFC, OOP
* OS, MIDI, Engineering Mathematics, AI, Algorithm, PHP, MySQL
* 데블스캠프 : Java, HTML, CSS, Scratch, SVN, Robocode, WinAPI, Abtraction, RootKit, OOP, MFC, MIDI, JavaScript, Short Coding
* 데블스캠프 : C++0x, Data Structure, Python, Prolog, PP, Game Programming, Factorization, Algorithm, DHTML, PHP
- ZeroPageServer/IRC . . . . 1 match
* 외부 서비스 push notification (Trello라던가...)
- ZeroPageServer/Mirroring . . . . 1 match
socket_type = stream
Trying 127.0.0.1...
- ZeroPage성년식/거의모든ZP의역사 . . . . 1 match
||겨울방학 ||Data Structure, C 등 각종 강좌 스터디 개설됨. ||
* Data Structure, C
||겨울방학 ||Data Structure, Clipper, UNIX, Game, Graphic 세미나 개최. ||
* Data Structure, Clipper, UNIX, Game, Computer Graphics
||여름방학 ||Assembly, C, Data Structure 세미나 개최. ||
||겨울방학 ||X-Window, Data Structure, C, C++ 세미나 개최. ||
* Assembly Language, C, Data Structure
* X-Windows, Data Structure, C, C++
||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
* Data Structure, API, Game
||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
* C++, Data Structure, Python, Java-Servlet, JSP, PHP, Servlet, JDBC
* AOI, The Art Of Computer Programming
* AOI, Extreme Programming, MFC, Java
* 데블스캠프 : C, C++, Java, Data Structure, OOP, Flash, Python, Visual Python, JSP, Network, Security
* C, C++, Java, Data Structure, Engineering Mathematics, ACM, 3D, Lucene, 영상처리
* 데블스캠프 : C++, SVN, SSH, MSDN, Data Structure, Algorithm, WinAPI, MFC, OOP
* OS, MIDI, Engineering Mathematics, AI, Algorithm, PHP, MySQL
* 데블스캠프 : Java, HTML, CSS, Scratch, SVN, Robocode, WinAPI, Abtraction, RootKit, OOP, MFC, MIDI, JavaScript, Short Coding
* 데블스캠프 : C++0x, Data Structure, Python, Prolog, PP, Game Programming, Factorization, Algorithm, DHTML, PHP
- ZeroPage정학회만들기 . . . . 1 match
* 이번에 르네상스클럽에서 할 Seminar:ReadershipTraining 와 같은 행사의 과내 행사화. RT와 Open Space Technology 를 조합하는 방법도 가능하리란 생각.
- [Lovely]boy^_^/Diary/2-2-10 . . . . 1 match
* SBPP 서문, Introduction 읽었다. 읽으면서 첨에 나온 예제를 C++ 예제로 바꾸어 보았다. 이제 슬슬 문법이 감이 오기 시작한다.
* I read the SBPP's preface, introduction. And I change a first smalltalk source to a C++ source. I gradually know smalltalk grammar.
* The XB Project starts really. A customer is Jae-dong. So we determine to programm network othelo, that Jae-dong's preparation. At first, we start hopefully, but..--; after all integration is failed. In our opinion, we start beginner's mind. but we learned much, and interested it. And new customer is Hye-sun. Since now, our project begins really. Since tomorrow, during 2 weeks, we'll focus on TDD and pair programming with simple programming.
* I read the SBPP's 2nd chapter - Patterns -.
- [Lovely]boy^_^/Diary/2-2-11 . . . . 1 match
* 선호랑 ["TheWarOfGenesis2R"]의 일환으로 타일 에디터를 만들었다. BMP 파일 약간 개조해서 뒤에다가 타일 데이터를 덧붙였다.
- [Lovely]boy^_^/Diary/7/8_14 . . . . 1 match
* 헉. 다이얼로그 기반에서는 WM_KEYDOWN이 잘 안된단다. PreTranslateMessage를 쓰라 하는군.
#include <string>
map<string, int> lalala;
- biblio.xsl . . . . 1 match
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/xhtml1/strict">
<strong><xsl:value-of select="author"/></strong>,
- django/ModifyingObject . . . . 1 match
# First, try an UPDATE. If that doesn't update anything, do an INSERT.
record_exists = True
# Determine whether a record with the primary key already exists.
# If the PK has been manually set, respect that.
데이터베이스에서 레코드를 삭제하는 작업은 Model클래스의 delete메소드로 추상화했다. 하지만 내부에서 실제로 레코드를 삭제하는 메소드는 delete_objects이다.[8] delete_objects메소드는 지우려는 레코드를 참조하는 다른 테이블의 레코드까지 함께 삭제하거나, 외래키를 NULL값으로 설정한다. 예를 들어 다음은 Risk테이블에서 한 레코드를 삭제하는 경우 이를 참조하는 Consequence, Control 테이블의 레코드까지 함께 삭제하는지를 묻는 사용자 화면이다.
- eXtensibleMarkupLanguage . . . . 1 match
The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. In other words XML is a way of describing data and an XML file can contain the data too, as in a database. It is a simplified subset of Standard Generalized Markup Language (SGML). Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet. Languages based on XML (for example, Geography Markup Language (GML), RDF/XML, RSS, Atom, MathML, XHTML, SVG, and MusicXML) are defined in a formal way, allowing programs to modify and validate documents in these languages without prior knowledge of their form.
[DOM] : XML 전체를 읽어들여 파싱. 전체 데이터를 파싱 traversal 하기 편하다.
- html5/webSqlDatabase . . . . 1 match
* transaction을 지원한다.
* {{{transaction()}}}, {{{readTransaction}}}
// re-render all the data
html5rocks.webdb.db.transaction(function(tx) {
html5rocks.webdb.db.transaction(function(tx){
html5rocks.webdb.db.transaction(function(tx) {
html5rocks.webdb.db.transaction(function(tx) {
== transaction ==
db.transaction(function (tx) {
* http://html5doctor.com/introducing-web-sql-databases/
- iruril . . . . 1 match
* [TheJavaMan]
- ljh131 . . . . 1 match
모든 프로그래머들이 copy & paste에 빠져있어 구글신께서 포맷으로 심판하려 할 때 홀로 노가다 코딩을 하던 아노아씨는 구글신의 특별한 계시로 포맷이 닥칠것을 미리 알게 된다. 그는 120번의 이터레이션에 걸쳐 방주(신개념 version control system)를 제작해, 8개의 대형 오픈 소스 프로젝트와 한 패키지씩의 여러 sf프로젝트를 커밋한다. 포맷이 닥치자 모든 오픈 소스 프로젝트가 실패하고 말았지만, 이 방주에 커밋된 프로젝트들은 살아 남았다고 한다.
- 항상 마들만 사귀는 The O
- mantis . . . . 1 match
* administrator , 암호는 root 로 로그인 후에 계정관리에서 preference 부분에 가서 제일 하단 부에 있는 언어 선택을 한글로 해야 한글로 메뉴를 보고 한글을 사용할 수 있습니다.
361 if ($this->autoRollback) $this->RollbackTrans();
- neocoin/Education . . . . 1 match
잘 가르치기 위해서는 기본적인 교육학 이론보다는 Cognitive Psychology(학습부분)와 실제 "훌륭한 교사"들의 방법을 설명한 책(예컨대 NoSmok:SuccessfulCollegeTeaching ), 그리고 학습 과정을 설명한 책(NoSmok:HowPeopleLearn )이 좋을 것이다. 또 성인 교육에 있어서는 Training, Coaching 관련 서적이 많은 도움이 된다. --JuNe
- pinple . . . . 1 match
Trello : 의사 소통 도구, 일정관리, 공지 등등
- pragma . . . . 1 match
Each implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over the memory areas where data is placed or to control the way certain functions receive parameters. The #pragma directives offer a way for each compiler to offer machine- and operating-system-specific features while retaining overall compatibility with the C and C++ languages. Pragmas are machine- or operating-system-specific by definition, and are usually different for every compiler.
- 겨울과프로젝트 . . . . 1 match
= Theread =
- 공학적마인드 . . . . 1 match
안쪽으로는 논리적으로 각 변수들을 연결시키며 내적정합성을 유지하고, 현실에서 실제 관찰한 측정치값들을 근거로 '외적정합성'을 최대한 유지하며 미래를 예측하는, 그리고 여기에 '공학', 즉 'Trade-Off' 를 적용하여 input 에 대한 노력 대비 output 을 최대로 이끌어내는 것이 [공학적마인드] 가 아닐까 생각해봅니다.
- 곽세환 . . . . 1 match
* [TheJavaMan]
- 구구단/Leonardong . . . . 1 match
#include <iostream>
[Transcript show: gob*pp;cr.
- 구구단/aekae . . . . 1 match
#include <iostream>
9 timesRepeat: [Transcript show: a;show:'*';show:b;show:'='; show: a * b; cr. b := b + 1.].
- 구구단/조재화 . . . . 1 match
#include<iostream>
8 timesRepeat: [9 timesRepeat: [ Transcript show:x*y; cr. y := y + 1. ]. x := x + 1. y := 1 ].
- 권영기 . . . . 1 match
* [Nand 2 Tetris]
* [정모/2013.2.26] - OMS : 재미있는 문제 (Indexed Binary Tree)
* [Nand2Tetris]
- 권영기/web crawler . . . . 1 match
* http://hyogeun.tistory.com/107 - try, except.
try: urllib2.urlopen(req)
import string
pos = string.find(line, '"http')
* http://docs.python.org/tutorial/controlflow.html
urllib.urlretrieve(line,line.split('/')[-1])
* retrieve
urllib.urlretrieve(url[, filename[, reporthook[, data]]])
* os.chdir(path) - Change the current working directory to path.
* os.getcwd() - Return a string representing the current working directory.
* os.path.isdir(path) - Return True if path is an existing directory.
* os.mkdir(path[, mode]) - Create a directory named path with numeric mode mode. If the directory already exists, OSError is raised.
url = 'http://comic.naver.com/webtoon/detail.nhn?titleId=449854&no=' + str(i) + '&weekday=wed'
path = currentpath + '/' + str(i)
prepare.readpage(url, str(i) + '.html')
prepare.extractwt(str(i) + '.html', str(i) + 'file.html')
prepare.download(str(i) + 'file.html')
- 김동준/Project/Data_Structure_Overview/Chapter1 . . . . 1 match
Item retrive(A, i) => if(i include index)
else reutrn 에러
printf("The sum is: %f\n", answer);
[http://inyourheart.biz/zerowiki/wiki.php/%EA%B9%80%EB%8F%99%EC%A4%80/Project/Data_Structure_Overview Main으로 가기]
- 김수경/StickyWall . . . . 1 match
컨셉은 별 거 없다. [http://trello.com Trello] 짭.
- 데블스캠프2003/다루어볼문제와관련세미나 . . . . 1 match
* ToyProblems 와같은 식이면 좋을것 같은데요. 1학년 텀프로젝트가 있는데 그것 하나만 가지고도 SP, OOP 등의 프로그래밍철학과, STL 등을 다루기에 좋을것 같습니다. ([http://zeropage.org/pds/200361434244/2003C++TrmPrjSpec.ppt spec]) SP 와 OOP 는.. 누가할지.. 맡게되면 고생을할수도 있겠군요. 아래 JuNe 선배님의 CSP 나.. Tuple Space (전에 P2P 관련 문서에서 본것같은 기억이..-_-a ) 등과는 약간 맞지 않을수도 있겠지만요. (그것은 다른 도메인의 문제와 다루는게 좋을듯합니다) - [임인택]
* 세미나 기간 중에 하루 "Parellel/Distributed Computing for Dummies"를 해드릴 수 있습니다. CSP와 Tuple Space 등을 다루게 될 것 같습니다. 학생들은 서너명씩 팀을 이루어 수십대의 컴퓨터를 동원 어떤 문제를 해결하는 경이적인 체험을 하게 될 것입니다. --JuNe
- 데블스캠프2004/금요일 . . . . 1 match
public static void main(String argv[]) {
public static void main(String args[]) {
import java.io.InputStreamReader;
public WindowFrame(String title, int width, int height) {
= new BufferedReader(new InputStreamReader(System.in));
public static String inputString() throws IOException {
public static void main(String[] args) {
breader = new BufferedReader(new InputStreamReader(System.in));
try {
String title = inputString();
ex.printStackTrace();
* g.drawString(String string, int s, int y) 메소드
public static void main(String args[]) {
public static void main(String args[]) {
public static void main(String args[]) {
== Structured Programming 소개 ==
- 데블스캠프2006/SSH . . . . 1 match
= File Transfer Client =
- 데블스캠프2006/화요일/tar/김준석 . . . . 1 match
#include<iostream>
if((data_dir.attrib & _A_SUBDIR) != 0) continue;
else printf("There is no serching!");
#include<iostream>
#include<iostream>
if((data_dir.attrib & _A_SUBDIR) != 0) check_dir(argv[i]);
strcpy(dir_ex, dir);
strcat(dir_ex, "\*.*");
if(!strcmp(data_dir.name, ".") || !strcmp(data_dir.name, "..")) continue;
else if(data_dir.attrib & _A_SUBDIR) check_dir(path);
- 데블스캠프2009/월요일/Scratch . . . . 1 match
* Street Fighter 2009 - [http://enochbible.intra.zeropage.org/sc/sample1.sb]
* Scratch Bros. v1.4 - [http://enochbible.intra.zeropage.org/sc/sample2.sb]
* The mysterious ticking noise - [http://enochbible.intra.zeropage.org/sc/sample3.sb]
- 데블스캠프2009/화요일 . . . . 1 match
|| 변형진 || The Abstractionism || 컴퓨터공학의 발전과 함께한 노가다의 지혜 || attachment:/DevilsCamp2009/Abstractionism.ppt ||
- 데블스캠프2011/넷째날/루비 . . . . 1 match
* [http://tryruby.org/ TryRuby]
* [http://nightshadow.tistory.com/entry/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%96%B8%EC%96%B4-%EB%A3%A8%EB%B9%84 블로그 참고]
- 데블스캠프2011/둘째날/Machine-Learning/SVM/namsangboy . . . . 1 match
* SVM Train 파일 생성하기
def readtrain():
path1 = "/home/newmoni/workspace/svm/package/train/economy/index.economy.db"
path2 = "/home/newmoni/workspace/svm/package/train/politics/index.politics.db"
makedir = lambda i : "/home/newmoni/workspace/svm/package/train/"+i+"/index."+i+".db"
classfreqdic, wordfreqdic, prob1, classprob1, classprob2 = readtrain()
classfreqdic, wordfreqdic, prob1, classprob1, classprob2 = readtrain()
path1 = "/home/newmoni/workspace/svm/package/train/economy/index.economy.db"
path2 = "/home/newmoni/workspace/svm/package/train/politics/index.politics.db"
makedir = lambda i : "/home/newmoni/workspace/svm/package/train/"+i+"/index."+i+".db"
outlist = [str(idx+1)]
outlist.append(str(wordidx)+":"+str(1))
# outlist.append(str(wordidx)+":"+str(docwordfreq[wordidx]))
- 데블스캠프2012/셋째날/코드 . . . . 1 match
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
= LLVM+Clang 맛 좀 봐라! && Blocks가 어떻게 여러분의 코딩을 도울 수 있을까? && 멀티코어 컴퓨팅의 핵심에는 Grand Central Dispatch가 =
- 디자인패턴 . . . . 1 match
* http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps - Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods
- 레밍딜레마 . . . . 1 match
* Title : 레밍 딜레마 ( The Lemming Dilemma )
- 로그인없이ssh접속하기 . . . . 1 match
Enter file in which to save the key (/home/a/.ssh/id_rsa):
The key fingerprint is:
- 말없이고치기 . . . . 1 match
누군가가 별 말 없이 삭제나 수정을 한 것을 봤다면 흥분하지 말고, 차분히 왜그랬을까를 생각해 본다(NoSmok:ToDoIsToSpeak). 고친 사람도 최소 나만큼 이성적인 인간일 것이라는 가정하에. (NoSmok:TheyAreAsSmartAsYouAre)
- 문원명 . . . . 1 match
* [TheJavaMan]
- 문제풀이/1회 . . . . 1 match
Equivalent to eval(raw_input(prompt)). Warning: This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.
Consider using the raw_input() function for general input from users.
while True:
- 문제풀이게시판 . . . . 1 match
* The Algorithm Design Manual
see also HowToStudyDataStructureAndAlgorithms
- 박성현 . . . . 1 match
* [http://wiki.kldp.org/wiki.php/DocbookSgml/Ask-TRANS How To Ask Questions The Smart Way]
- 박치하 . . . . 1 match
=== Old Trafford ===
- 반복문자열/이태양 . . . . 1 match
[STATread]
- 변준원 . . . . 1 match
#include<iostream>
int matrix[5][5];
int matrix[max][max];
matrix[i][j]=0;
matrix[a][b]=1;
matrix[x][y]=1;
matrix[x][y]=1;
if(matrix[m][n]==1)
cout << matrix[ga][se];
#include<iostream>
#include<iostream>
#include <iostream>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
while(true)
TranslateMessage( &msg );
PAINTSTRUCT PS;
case WM_DESTROY:
#include<iostream>
- 사람들이모임에나오지않는다 . . . . 1 match
"Reform the environment, stop trying to reform the people. They will reform themselves if the environment is right." --NoSmok:BuckminsterFuller
- 상규 . . . . 1 match
* [ExtremeBear] (2002.10.29 ~ 2002.12.11)
* [ProjectTriunity] (2003.10.26 ~ 2003.12.12)
* [RandomWalk2/ExtremePair]
- 상협/삽질일지/2002 . . . . 1 match
* Java 에서 강제 형변환을 C++ 스타일 int(변수), 이런식으로 하다가 수치해석 그래프를 자바로 못 그렸다. ㅠㅜ 그래서 MFC로 하다가 나중에 Java로 짜놓았던 Tridiagonal Matrix 가 MFC로 옮기면서 각종 문제가 발생... 다시 Java로 하려다가, 예전의 형 변환의 문제 발생..ㅠㅜ, 결국 MSN으로 형들에게 물어봐서 자바에서 형 변환은 (int)변수 이런식밖에 안된다는 것을 알았다. 기본에 충실하자.. ㅡㅡ;
''Exception Handling 에 대해서 이해해야 할 것 같은데. Exception 은 해당 함수가 throws 등으로 발생을 시키고, Java 의 경우 그 Exception 을 반드시 처리를 해주는 곳을 만들어야 하지. 해당 메소드 내에서 Exception 이 발생은 하는데, 그 메소드에서 예외처리를 바로 하고 싶지 않으면 (즉, 그 Exception을 그 메소드 내에서 처리하지 않고, 그 메소드를 호출했던 곳 등에서 처리를 한다고 한다면) throws 로 해당 메소드에서 exception 을 또 던져주는 식으로 되겠지. 만일 Class.forName(...) 쓴 구문을 try - catch 로 예외를 또 잡는다면 이야기가 다르겠지만. 자바는 Exception 를 강요하는 관계로 예외는 catch 에서 무엇을 하건, 반드시 해당 발생된 예외를 잡아줘야 함. (그 덕에 최악으로 뻗을 일이 적지. 예외는 발생하더라도) --석천''
* 지금까지 자바에서 if(String1 == String2) 이게 안 먹혀서 계속 고생 했다. 알고 보니 String Class 의 CompareTo 메소드를 사용해야 했다. 허접 삽질.. ㅡㅡ;
* 오늘은 그렇게 큰 삽질은 아니지만 요새 별다른 삽질이 없어서 적어본다. 오늘 비행기게임 프로젝트를 하고 있는데 파일에서 적 비행기 경로를 읽어와서 실행하는거를 하는데 이상하게 계속 안되는 것이었다. 분명히 난 맞게 텍스트 파일에 적이 나올 위치를 숫자로 적었고, 정확한 명령어를 사용했는데 말이다. 그래서 계속 삽질하다가 잠깐 밖에 나갈 일이 생겼다. 그런데 걷다가 곰곰히 생각하니깐 왠지 파일읽어 온것을 프로그램에서 string 형으로 생각한거 같았다. 그때 아차 하는 생각이 들었다. 역시 삽질은 안된다고 계속 반복하기보다는 원인을 곰곰히 생각해야 한다는 교훈을 얻었다. 뭐 몸이 그렇게 안따라 주지만. ㅡㅡ;
* 오늘도 어김 없이 ㅡㅡ;; 삽질을 했다. 이번에는 matrix 클래스를 구현하는데 matrix데이터를 이중 배열로 private영역에 넣어서 이것 저것 해보는데 나중에 클래스의 matrix 데이터를 호출해야할 경우가 생겼다. [4][4] 이거 두개로 리턴할라고 했는데 안되었다. 남훈이형이랑 제본뜬 책찾아 보니깐 배열은 리턴이 안된다고 나왔다. 그래서 고민하다가 *[4] 이거 두개(포인터형 배열 4개짜리)를 사용하고 나중에는 *를 리턴하는 식으로 돌파구를 찾았다.(*[4] 이것도 배열이랑 비슷하게 써먹을수 있었다. 예-> *(matrix[0]+1)) 처음에는 뭔가 되는듯 싶었다. 클래스 내부 배열 설정도 제대로 되고 하였다. 그 .... 러..나.. ㅡㅡ;; 역시나 난 삽질맨이었다. 나중에 + 연산자 재정의 클래스 내에서 객체를 생성해서 리턴할때 뭔가 제대로 먹지가 않았다. 그거 가지고 간만에 ㅡㅡ;; 삽질에 바다에 퐁당 빠졌다. 간만에 해보는 삽질도 그리 유쾌한 일은 아니었다.. -_- 그렇게 계속 신나게 삽질하다가 도저히 안되겠다 싶어서 멤버 데이터를 public에 넣어 버리는 엽기적인 일을 해버렸다. ㅡㅡ; 그 방법밖에는 없는거 같았다. 그 후로는 아무런 걸림돌 없이 쭉쭉 되었다. 진작 이렇게 할걸하는 생각을 했지만 서도 멤버 데이터를 public안에 넣어서 웬지 모를 찝찝함이..
''근데.. Matrix 클래스가 있음에도불구하고 왜 Matrix 내의 array를 직접 접근할 일이 생긴건지? 그리고 연산자 재정의와 관련된 문제라면 Matrix 에 인자를 접근할 수 있는 메소드를 넣던지 friend 로 해결해야 하지 않을까 싶음 --["1002"]''
''그게 방금 떠올랐는데 Matrix의 인자 하나 하나에 접근하는 메소드는 만들 수 있겠네여.. 단지 그 모든 내용을 통째로 리턴하는 메소드는 못 만들겠어여.. 이중 배열을 리턴할수가 없어서 통째로 접근하는걸 못했어여.. - 상협''
- 새싹교실/2011/學高/4회차 . . . . 1 match
* The sum of your integers plus 7 is 19
- 새싹교실/2011/데미안반 . . . . 1 match
* A언어 : ALGOL을 말합니다. 고급 프로그래밍 언어(어셈블리나 기계어를 저급 프로그래밍 언어라고 합니다)로 각광받던 포트란ForTran에 대항하기 위해 유럽을 중심으로 개발된 프로그래밍 언어입니다. ALGOL은 Algorithm Language의 약자로서, 이름 그대로 알고리즘 연구개발을 위해 만들어졌습니다. 하지만 ALGOL은 특정한 프로그래밍 언어를 지칭하기 보다는 C언어나 파스칼과 같이 구조화된 프로그래밍 언어를 지칭하는 말(ALGOL-like programming language)로 쓰입니다. [http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=68855131&qb=Q+yWuOyWtCBC7Ja47Ja0IEHslrjslrQ=&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=ghtBIz331ywssZ%2BbORVssv--324794&sid=TYBj6x1TgE0AAE@GUeM 출처 링크! 클릭하세요:)]
- 새싹교실/2011/앞반뒷반그리고App반 . . . . 1 match
* [The C Programming Language]. 일단은.
- 새싹교실/2012/AClass . . . . 1 match
* 5주차(6/6) - C++ 기초, String + Linked list (쉬는 날도 진행)
* 방학 중에 스터디를 할 경우 - Class, Object + Tree, Graph
typedef struct node node;
struct node{
struct node* next;
struct node{
struct node *next;
struct node *head=(struct node*)malloc(sizeof(struct node));
struct node *tmp = NULL;
tmp->next=(struct node*)malloc(sizeof(struct node));
typedef struct node node;
struct node{
struct node *next;
5.Struct란?
* 동적할당, Swap, OOP, Class, Struct, call by value/reference
pointer, swap, malloc, struct 문법을 다시 배웠고 c++의 기초를 배웠다. iostream헤더의 사용법도 배우고
-#include <iostream> 과 using namespace std; 의 사용법
#include <iostream>
#include <iostream>
* struct vs class
- 새싹교실/2012/세싹 . . . . 1 match
- transport : 데이터를 어떻게 보낼지 결정하는 계층입니다. 데이터를 어떻게 묶어서 보낼지, 오류처리는 어떻게 할지에 대해 결정합니다. TCP/UDP등이 있습니다.
- 는 훼이크고 :P 간단히 설명하면 서버와 클라이언트가 byte stream을 주고 받는 것을 마치 파일 입출력을 하듯 해주는 것입니다.
typedef struct {
typedef struct {
U16 AttributeOffset;
U16 NextAttributeNumber;
// Standard Attribute
AttributeStandardInformation = 0x10,
AttributeAttributeList = 0x20,
AttributeFileName = 0x30,
AttributeObjectId = 0x40,
AttributeSecurityDesciptor = 0x50,
AttributeVolumeName = 0x60,
AttributeVolumeInformation = 0x70,
AttributeData = 0x80,
AttributeIndexRoot = 0x90,
AttributeIndexAllocation = 0xA0,
AttributeBitmap = 0xB0,
AttributeReparsePoint = 0xC0,
AttributeEAInformation = 0xD0,
- 소수구하기 . . . . 1 match
flag = true;
NumberTheory를 공부해라. --JuNe
723만자리짜리 소수가 발견되었다네요 [http://ucc.media.daum.net/uccmix/news/foreign/others/200406/08/hani/v6791185.html?u_b1.valuecate=4&u_b1.svcid=02y&u_b1.objid1=16602&u_b1.targetcate=4&u_b1.targetkey1=17161&u_b1.targetkey2=6791185&nil_profile=g&nil_NewsImg=4 관련기사] - [임인택]
- 시간관리하기 . . . . 1 match
'''The Simplest Thing That Could Possibly Work'''
- 실습 . . . . 1 match
등수 함수 int GetRank(void);
등수 기록 함수 void SetRank(int nRank);
결과출력 함수 void PrintResult();
14) Tree를 모두 펼쳐 보면, SungJuk.h와 SungJuk.cpp가 존재한다.각 File을 밑에 보여주는 Source를 작성한다.
16) Error를 모두 잡은 후, Ctrl+F5를 눌러 실행하여 본다.
int GetRank(void);
void SetRank(int nRank);
void PrintResult();
#include "iostream.h"
#include "string.h"
sung[i].SetRank(i+1);
if(sung[i].GetRank() > sung[j].GetRank()) {
nTemp = sung[i].GetRank();
sung[i].SetRank(sung[j].GetRank());
sung[j].SetRank(nTemp);
sung[i].PrintResult();
strcpy(m_szName,szName);
int SungJuk::GetRank(void)
void SungJuk::SetRank(int nRank)
void SungJuk::PrintResult()
- 안녕하세요 . . . . 1 match
[http://imgnews.naver.com/image/045/2006/03/09/2006-03-09T114301Z_01_NOOTR_NISIDSP_2_120060309091802403.jpg]
=== Old Trafford ===
- 알고리즘2주숙제 . . . . 1 match
=== Contradixtion ===
From Concrete Mathematics, Chapter 7. Generating Function
1. (Warm up) An eccentric collector of 2 x n domino tilings pays $4 for each vertical domino and $1 for each horizontal domino. How many tiling are worth exactly $m by this criterion? For example, when m = 6 there are three solutions.
3. (Basic)Solve the recurrence
4. (Homework exercises) How many spanning trees are in an n-wheel( a graph with n "outer" verices in a cycle, each connected to an (n+1)st "hub" vertex), when n >= 3?
From Discrete mathematics
6~8 Give a generating fuction for the sequence {a<sub>n</sub>}.
6. Let a<sub>r</sub> be the number of ways to select r balls from 3 red balls, 2 green balls, and 5 white balls.
7. Let a<sub>r</sub> be the number of ways r cents worth of postage can be placed on a letter using only 5c, 12c, and 25c stamps. The positions of the stamps on the letter do not matter.
8. Let a<sub>r</sub> be the number of ways to pay for an item costing r cents with pennies, nickels, and dimes.
=== Contradixtion ===
- 영어학습방법론 . . . . 1 match
=== 질문 2. 히어링. 특히 단어 자체의 발음을 외우다가 문장내에서 연음사이에 그런 단어들을 어떻게 알 수 있는가? 전치사(on, of 등등)과 관사 (a, the, these)등 발음을 확실하게 하지 않는 단어들을 어떻게 알 수 있는가? ===
* ex) I feel like go into the.. (X) : 의미로 모른다[[BR]]
I feel like going to the.. (O) : 의미를 안다.[[BR]]
* The Longman Dictionary of Contemporary English (Addison Wesley Longman, 3rd Edition이상)
- 예수는신화다 . . . . 1 match
* Title :예수는 神話다 - 기독교 탄생의 역사를 새로 쓰는 충격보고(The Jesus Mysteries)
- 위시리스트 . . . . 1 match
* [http://books.google.co.kr/books?id=oowq_6bAgloC&printsec=frontcover&dq=go+lang&hl=ko&sa=X&ei=5f-WU8rTCM_-8QXu5oGwAw&redir_esc=y#v=onepage&q=go%20lang&f=false the way to go]
The art of computer programming 1 ~ 4A
- 유용한팁들 . . . . 1 match
Enter file in which to save the key (/home/a/.ssh/id_rsa):
The key fingerprint is:
- 유혹하는글쓰기 . . . . 1 match
작가에게 고마운 점이 하나 더 있다. 책을 읽는 동안 [TheElementOfStyle]을 읽고 싶은 충동을 참을 수 없었다. 드디어 때가 온 것이다!
- 이영호/개인공부일기장 . . . . 1 match
☆ 구입해야할 책들 - Advanced Programming in the UNIX Environment, Applications for Windows, TCP/IP Illustrated Volume 1, TCP/IP Protocol Suite, 아무도 가르쳐주지않았던소프트웨어설계테크닉, 프로젝트데드라인, 인포메이션아키텍쳐, 초보프로그래머가꼭알아야할컴퓨터동작원리, DirectX9Shader프로그래밍, 클래스구조의이해와설계, 코드한줄없는IT이야기, The Art of Deception: Controlling the Human Element of Security, Advanced Windows (Jeffrey Ritcher), Windows95 System Programming (Matt Pietrek)
4일 (목) - (pragma pack(1)과 같은 것 -> struct __attribute__((packed)) test -> 끝에 unpack과 같은 것을 안해줘도 됨.)
☆ 1일 (월) - struct task_struct 의 SUPERUSERBIT를 flagon 시킬 수만 있다면 root의 권한을 얻을 수 있다. kernel의 조작에는 회의적이지만 간접적으로 만질 수 있는 방법을 찾아봐야한다.
28 (목) - C++(연산자 오버로딩, 연산자 오버로딩으로 String 클래스 디자인 해보기.)
- 이태양 . . . . 1 match
=== OldTrafford ===
- 일반적인사용패턴 . . . . 1 match
* 하단을 보면 LocalSiteMap 이 있습니다. 위키의 링크구조를 Tree 화 하여 보여줍니다.
- 임다찬 . . . . 1 match
||[주요한]||Old Trafford||
- 임민수 . . . . 1 match
* [TheJavaMan]
- 임인책/북마크 . . . . 1 match
* [http://zeropage.org/~dduk/ace/Addison.Wesley.The.ACE.Programmers.Guide.chm ACE Programmer's Guide] ([http://zeropage.org/~dduk/ace/APG.zip example code])
- 임인택/책 . . . . 1 match
The elements of programming style
- 정모/2004.1.20 . . . . 1 match
* TheJavaMan 모임 일요일 2시로 변경
- 정모/2004.1.6 . . . . 1 match
* 자바 스터디 ( TheJavaMan ) :
- 정모/2004.10.5 . . . . 1 match
* PageFlipping 구현 ( DoubleBuffering 보다 한단계 더 복잡한 TrippleBuffering )
- 정모/2004.2.17 . . . . 1 match
* OneWiki:TheJavaMan 진행중.
- 정모/2004.2.3 . . . . 1 match
* TheJavaMan 은 프로젝트 참여자 전원이 참여하는 프로젝트인 비행기 게임 만들기를 새로 시작
- 정모/2004.3.2 . . . . 1 match
* TheJavaMan - 종료
- 정모/2007.1.29 . . . . 1 match
3. 영자 신문 놀이( The play of English paper)
- 정모/2012.1.27 . . . . 1 match
* Devils Camp with another univ.
* [고한종] 학우의 '''새해복 많이 받으세요''' 부제 : Theorem of Aggro // 세뱃돈
- 정모/2012.3.12 . . . . 1 match
당장 학우들이 학교에서 배우는 버전은 아마도 Java SE 5.0과 6일 것이므로 혼란을 피하기 위해 JLS 3e 기준으로 설명했습니다. Java SE 7의 JLS SE7e 에서는 The Diamond <>를 이용한 Type inference가 추가된 것이 가장 큰 특징이지요. 이를테면,
Map<String, List<Person>> m = new HashMap<String, List<Person>>(); // JLS, 3e
Map<String, List<Person>> m = new HashMap<>(); // JLS, Java SE 7e
- 정모/2012.3.19 . . . . 1 match
* 진실 혹은 거짓(True or False)
* CommonsMultipartResolver를 써서 이미지 업로드 구현 중.
- 정수민 . . . . 1 match
printf("n== LOTTO RANDOM NUMBER GENERATOR ==nnEnter the game count : ");
printf("n[ The contents of score array ]n");
- 졸업논문/요약본 . . . . 1 match
Web environment has became a standalone platform. Object-oriented languages, such as python, are suitable for web. Django is a web application framework written by python, and helps web developers writting web application more agile by abstracting database. Django provides high level abstraction on database, higher than CLI which uses ODBC. Django, for instance, creates database tables when developer writes classes in python, and modifies tables when developer modifies classes in python. In addition, django helps developers using database on host-language(python) level by abstracting insertion, deletion, update, retrieving of recodes to class method. Therefore, web developers make programs more agile.
- 지금그때2003 . . . . 1 match
주제가 어떤거지? 현재 지어진 제목을 보면 '미래를 예측하는 방법'에 관한 내용인것 같고, [지금알고있는걸그때도알았더라면]은 '어떤것에 초점을 두어야 하는가'라는거 같은데.. 전자라면.. 앨런 케이의 말을 살짝 인용하며 정말 멋질것 같은데.. "The best way to predict the future is to invent it." - Alan Kay --[sun]
- 지금그때2006/홍보 . . . . 1 match
Upload:NowThen2006ContactList.xls
- 최대공약수 . . . . 1 match
The GCD of 4 and 8 is 4
- 최대공약수/문보창 . . . . 1 match
public static void main(String[] args)
System.out.println("The GCD of " + bigInteger1 + " and " + bigInteger2 + " is " + gcdNum);
- 최대공약수/허아영 . . . . 1 match
printf("The GCD of %d and %d is %d\n", x, y, x2);
- 최소정수의합/송지훈 . . . . 1 match
#include <iostream>
cout << "The smallest 'n' for making the number what we want" << endl;
|otherwise = x + little_sum xs (y-x)
- 컴퓨터고전스터디 . . . . 1 match
Dijkstra, David Parnas, C.A.R. Hoare, Donald Knuth, John von Neumann을 읽어본 대학생이 얼마나 있을까요.
* 2004년 여름방학 현재 TheArtOfComputerProgramming으로 진행
- 코드레이스출동 . . . . 1 match
[http://altlang.org/fest/%EC%BB%A8%ED%85%8C%EC%8A%A4%ED%8A%B8 SVN과 Trac의 링크]
14 mkdir trunk
23 cd test-repo/trunk/
- 코바예제/시계 . . . . 1 match
string getTime();
public String getTime() throws SystemException {
return ("The current time is : " + current_time);
public static void main(String [] args) {
try {
클라이언트 구현은 기본적으로 다음 세 가지 단계를 통해 이루어진다. 먼저 CORBA 환경, 즉 ORB를 초기화한다. ORB를 초기화한다는 것은 ORB 의사 객체(pseudo-object)에 대한 객체 레퍼런스를 얻게 된다는 것을 의미한다. ORB가 '의사 객체'라 불리는 이유는 그 메소드가 런타임 시스템과의 통신을 통해 라이브러리의 형태로 제공되며, 의사 객체 레퍼런스는 CORBA 인터페이스 오퍼레이션에 대한 파라미터로 전달될 수 없기 때문이다. 그 다음 단계는 객체 레퍼런스를 얻는 것이다. 객체 레퍼런스는 불투명한 데이터 구조이다. 그러나 객체 레퍼런스를 문자열로 바꿈으로써 지속성을 가지게 될 수 있다. 이것은 '객체 레퍼런스의 문자열화'라 불리며, 그 결과 얻어지는 문자열을 일컬어 '문자열화 객체 레퍼런스'라고 한다.(IOR) 이 문자열화 객체 레퍼런스는 원래의 "유효한" 객체 레퍼런스로 다시 바뀔 수 있다. 이 과정은 CORBA, 즉 ORB 인터페이스에서 정의된 두 가지 오퍼레이션 object_to_string()과 string_to_object()를 이용하여 이루어진다. 모든 CORBA 2.0 호환 ORB는 상호 운용 가능한 문자열화 객체 레퍼런스를 실제 돌아가는 객체 레퍼런스로 바꿀 수 있다. 적절한 타입으로 객체의 범위를 줄이면 그러한 결과를 얻을 수 있다. 이러한 오퍼레이션을 'narrow'라 한다. ORB를 초기화하고 객체 레퍼런스를 얻은 후에야 CORBA 프로그래밍은 원래 의도한 표준 객체 지향 프로그래밍처럼 동작하게 된다. 클라언트가 객체의 메소드를 호출하게 되면, 실제로 그 메소드는 원격 객체와 함께 동작하지만 클라이언트가 보기에는 지역 객체와 함께 동작하는 것처럼 보인다.
public static void main(String [] args) {
try{
object myObj = orb.string_to_object(args[0]);
- 파이썬으로익스플로어제어 . . . . 1 match
ie.Visible = True
- 프로그래밍은습관이다 . . . . 1 match
프로그래밍은 습관이다. 그래서 학습과 반(反)학습 모두 쉽지 않다. 특히 NoSmok:UnlearnTheLearned 가 어렵다. 세살 버릇 여든 가기에, 나쁜 프로그래밍 습관은 프로그래밍 언어가 바뀌어도 유지된다.
- 허아영/C코딩연습 . . . . 1 match
#include <string.h>
Enter the game count : 5
[[ The contents of score array ]]
char str[50];
gets(str);
while(str[i])
if(str[i] == ' ')
char str[100];
scanf("%s", str);
while(str[i] != NULL)
if((str[i] >= 48) && (str[i] <= 59))
}else if((str[i] >= 65) && (str[i] <= 90))
}else if((str[i] >= 97) && (str[i] <= 122))
- 헝가리안표기법 . . . . 1 match
|| b || bool || any boolean type || bool bTrue ||
|| sz || * || null terminated string of characters || char szText[16] ||
|| t || struct || a user defined type || ... ||
|| g_ || Global || Global Variable || String *g_psBuffer ||
|| str || String || string class(C++) || String strName ||
- 화성남자금성여자 . . . . 1 match
typedef vec_t matrix_t[16]; // 4*4 행렬
// matrix prototypes
void matrixIdentity (matrix_t p);
void matrixMultiply (matrix_t a, matrix_t b, matrix_t c);
void matrixRotateX (matrix_t p, vec_t angle);
void matrixRotateY (matrix_t p, vec_t angle);
void matrixRotateZ (matrix_t p, vec_t angle);
void matrixRotate (matrix_t m, vec3_t r);
void matrixMultiplyVector (matrix_t m, vec3_t v);
void matrixMultiplyVector2 (matrix_t m, vec3_t v);
void matrixMultiplyVector3 (matrix_t m, vec3_t v);
void matrixTranslate (matrix_t m, vec3_t a);
void matrixCopy(matrix_t a, matrix_t b);
void matrix33_inverse (mat33_t mr, mat33_t ma);
int matrix44_inverse (mat44_t mr, mat44_t ma);
int matrix44_inverse2 (mat44_t mr, mat44_t ma);
void vectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
- 후각발달특별세미나 . . . . 1 match
#include <iostream>
프로젝트 때문에 빠르게 진행한게 아니라 선전부 모임때문에... 여튼 간결하게 하는 건 중요하다. 시간 되면 {{{~cpp The One Page Proposal}}}을 읽어보도록 해. --재동
Found 727 matching pages out of 7555 total pages (5000 pages are searched)
You can also click here to search title.