>> 사용자가 거울에서 보여줄 정보를 미리 지정해놓는 작업을 수행하는 프로그램.
다양한 선택의 폭으로 기호를 만족시킴.

>> socket 통신으로 서버에서 xml 파일을 읽어와 UI에 올린다.
     MFC의 소켓 통신은 <afxsocket.h>의 함수를 이용한다.

>> 다이얼로그 소멸과 동시에 새로운 다이얼로그를 띄어 설정을 할 수 있다.
 struct module
247 {
248         enum module_state state;
249
250         /* Member of list of modules */
251         struct list_head list;
252
253         /* Unique handle for this module */
254         char name[MODULE_NAME_LEN];
255
256         /* Sysfs stuff. */
257         struct module_kobject mkobj;
258         struct module_param_attrs *param_attrs;
259         struct module_attribute *modinfo_attrs;
260         const char *version;
261         const char *srcversion;
262
263         /* Exported symbols */
264         const struct kernel_symbol *syms;
265         unsigned int num_syms;
266 const unsigned long *crcs; 267
268         /* GPL-only exported symbols. */
269         const struct kernel_symbol *gpl_syms;
270         unsigned int num_gpl_syms;
271         const unsigned long *gpl_crcs;
272
273         /* unused exported symbols. */
274         const struct kernel_symbol *unused_syms;
275         unsigned int num_unused_syms;
276         const unsigned long *unused_crcs;
277         /* GPL-only, unused exported symbols. */
278         const struct kernel_symbol *unused_gpl_syms;
279         unsigned int num_unused_gpl_syms;
280         const unsigned long *unused_gpl_crcs;
281
282         /* symbols that will be GPL-only in the near future. */
283         const struct kernel_symbol *gpl_future_syms;
284         unsigned int num_gpl_future_syms;
285         const unsigned long *gpl_future_crcs;
286
287         /* Exception table */
288         unsigned int num_exentries;
289         const struct exception_table_entry *extable;
290
291         /* Startup function. */
292         int (*init)(void);
293
294         /* If this is non-NULL, vfree after init() returns */
295         void *module_init;
296
297         /* Here is the actual code + data, vfree'd on unload. */
298         void *module_core;
299
300         /* Here are the sizes of the init and core sections */
301         unsigned long init_size, core_size;
302
303         /* The size of the executable code in each section.  */
304         unsigned long init_text_size, core_text_size;
305
306         /* The handle returned from unwind_add_table. */
307         void *unwind_info;
308
309         /* Arch-specific module values */
310         struct mod_arch_specific arch;
311
312         /* Am I unsafe to unload? */
313         int unsafe;
314
315         /* Am I GPL-compatible */
316         int license_gplok;
317
318 #ifdef CONFIG_MODULE_UNLOAD
319         /* Reference counts */
320         struct module_ref ref[NR_CPUS];
321
322         /* What modules depend on me? */
323         struct list_head modules_which_use_me;
324
325         /* Who is waiting for us to be unloaded */
326         struct task_struct *waiter;
327
328         /* Destruction function. */
329         void (*exit)(void);
330 #endif
331
332 #ifdef CONFIG_KALLSYMS
333         /* We keep the symbol and string tables for kallsyms. */
334         Elf_Sym *symtab;
335         unsigned long num_symtab;
336         char *strtab;
337
338         /* Section attributes */
339         struct module_sect_attrs *sect_attrs;
340 #endif
341
342         /* Per-cpu data. */
343         void *percpu;
344
345         /* The command line arguments (may be mangled).  People like
346            keeping pointers to this stuff */
347         char *args;
348 };

C는 보다 자세히 배웠지만 C++은 프로젝트를 진행하며 활용에 치중했기 때문에
문법에 관해 모르는 부분이 간혹 나타난다.

바로 오늘!!
하나가 내 머리를 또 쿵~ 때리고 도망갔다.

C에서는 구조체 내부에 함수를 정의하여 사용할 수 없었지만 C++에서는 가능하다.

구조체의 정의가 C와는 다른것 같다.
다시 찾아봐야지~!!
시험 기간이 지나고 프로젝트 시작한지 2주가 훨 넘었다.
DD의 개념도 잡히고 어떤 함수를 써야하는지도 알겠는데
이번엔 리눅스 설치에서 시간을 잡아먹고 있다.

CentOS(안정판)을 설치하려고 몇일을 헤맸는데...
왠지 모르게 부팅에서 문제가 발생한다.

USB도 안먹히고.. DVD도 방금 한장 날려먹었다.

꽤 까다롭네...

네가 밉다~ 미치도록 네가 밉다~ ㅋㅋㅋㅋ

밤 새서라도 DK TEST 좀 가보자!!
USB로 부팅이 안되는데다 CD는 새 버전이 없어서 결국...
페도라6를 깔았더랬다...
11이 나온 판국에 6이라니...
그래서 yum을 이용해서 업데이트나 좀 할랬더니 이런~!
에러가 또 나주셨다(에러 여왕의 실력 슬슬 나오는구나)

원인은 간단했다.
yum으로 불러올 파일이 존재하는 사이트가 .... 사이트가... 없다는 것 ㅠ.ㅠ

그래서 몇 개의 파일에서 url을 수정해줘야 했다.
파일은 총 3개 : /etc/yum.repos.d/폴더에서 fedora-core.repo , fedora-updates.repo , fedora-extras.repo
이 파일 안에는 두 가지의 url이 있다. baseurl과 mirrorurl.
mirrorurl을 수정하면 되겠지만 baseurl를 활성화시키면 더 빨라진다는 말에 baseurl 주석 처리 돼있는 것을 풀어주고 mirrorurl을 주석 처리 시켰다.
각 파일 당 2~3개의 항목이 있는데 각각 baseurl, mirrorurl을 모두 포함하고 있으며 이것을 모두! 수정해야 한다.

결과는?

당연 perfectly completed!!

20년이 넘는 시간 동안 시리얼 통신에 주력했고 앞으로는 칩셋까지 자사기술을 확보할 예정이라는 시스템 베이스. 그곳에 10월 10일 24시가 떴다!! (단지 에디 모듈 교육을 받으러 갔을 뿐...오버하지마!퍽! )

2008년 대회보다 사람이 많아서 깜짝 놀랬다... 후아~
항공기 팀이 엄청 많았고 (7팀? 9팀?) 여자로만 구성된 팀도 있어서 신기했다+_+(나도 여잔뎅 ㅠ)

우선 대표자 분의 기업 소개와 취지를 간단히 듣고
대회 1회때부터 교육을 맡아오셨고
첫 여성 팀의 출현을 반가워하시는 모 개발자님께서(나는 참 사람 이름을 못외운다;;)
Device Driver의 범위와 동작에 대해 설명해주셨다.

오랜만에 듣는 시스템 강의라 그런지 보통 잠에 빠지는 내가
눈을 초롱초롱 뜨고 고개를 심하게 끄덕거리면서 집중해버렸다... 왜 이러지?

무튼 본의아니게 복습의 장을 펼쳐 내 기억 저 편에 숨겨져있던 지식을 끄집어내 주어
무한 감사할 따름이다 움하하하하하

이번 프로젝트는 약 45일(한달만에 끝내야 한다...) 동안 수행되고
상은 지난번과 달리 단 3팀에게만 돌아가게 된다.

더군다나 이번대회에선 블로그 컨테스트를 추가해서 이벤트를 확장시켰기 때문에
작품도 작품이지만 블로그 활동에도 최선을 다해야 한다-ㅁ-

평소 블로그 관리를 안하던 나는 앞날이 약~~~간 아주 야~~~악~~~~~간 캄캄했으나
이번 기회로 내 블로그를 활성화시키고 프로젝트 DB를 구축해나갈 생각이다.

우훗... DK를 받았을 때 떨림이란....
남자가 못 잊는 첫사랑을 오랜만에 만났을 때보다 더했으리라 생각된다...(아, 아님 말고~ 난 모른다~)

처음이다... 개발키트한테 설레여보기는... 아놔 ~

울엄마는 내가 집에만 가면 넌 남친도 없냐며 온갖 구박을 하시는데
난 H/W와 사랑에 빠져 24/7 함께 할 생각뿐이라니....                                 엄마 미안요...

여하튼!! 오늘 안에 모든 계획을 구체화시키고 본격적인 폐인 작업에 들어가야할 것이다.

아자아자아자!! 미쳐보는거야~!!


1. XML Library 설치
2. XML 파일 작성
3. XML 파일 저장

>>> import recommendations
>>> recommendations.topMatches(recommendations.critics,'Toby',n=3)

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    recommendations.topMatches(recommendations.critics,'Toby',n=3)
  File "C:\Python26\recommendations.py", line 71, in topMatches
    for other in prefs if other!=person]
  File "C:\Python26\recommendations.py", line 61, in sim_pearson
    den=sqrt((sum1Sq-pow(sum1,2)/n)*sum2Sq-pow(sum2,2)/n)
ValueError: math domain error



아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ
궁금해 ㅠ.ㅠ


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

헐...

강의실 컴에서는 안됐는데 내 랩탑에서는 실행되는 소스...

뭐 빼먹었나?

오타 있나?

아 놔 ㅠ.ㅠ

critics={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,
'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5,
'The Night Listener': 3.0},
'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5,
'Just My Luck': 1.5, 'Superman Returns': 5.0, 'The Night Listener': 3.0,
'You, Me and Dupree': 3.5},
'Michael Phillips': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.0,
'Superman Returns': 3.5, 'The Night Listener': 4.0},
'Claudia Puig': {'Snakes on a Plane': 3.5, 'Just My Luck': 3.0,
'The Night Listener': 4.5, 'Superman Returns': 4.0,
'You, Me and Dupree': 2.5},
'Mick LaSalle': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0,
'Just My Luck': 2.0, 'Superman Returns': 3.0, 'The Night Listener': 3.0,
'You, Me and Dupree': 2.0},
'Jack Matthews': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0,
'The Night Listener': 3.0, 'Superman Returns': 5.0, 'You, Me and Dupree': 3.5},
'Toby': {'Snakes on a Plane':4.5,'You, Me and Dupree':1.0,'Superman Returns':4.0}}

#from recommendations import *
#import recommendations

from math import sqrt

def sim_distance(prefs, person1, person2):
    si={}
    #condition : pick a movie as same
    for item in prefs[person1]:
        if item in prefs[person2]: si[item]=1


    if len(si)==0: return 0


    #if satisfied item under condition exist, excute this function
    #number = > figure to sum
    sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)
                        for item in prefs[person1] if item in prefs[person2]])
    #normalization
    return 1/(1+sqrt(sum_of_squares))

def sim_pearson(prefs, p1, p2):
    si={}
    for item in prefs[p1]:
        if item in prefs[p2]: si[item]=1


    if len(si)==0: return 0

    n=len(si)

    sum1=sum([prefs[p1][it] for it in si])
    sum2=sum([prefs[p2][it] for it in si])


    sum1Sq=sum([pow(prefs[p1][it],2) for it in si])
    sum2Sq=sum([pow(prefs[p2][it],2) for it in si])

    pSum=sum([prefs[p1][it]*prefs[p2][it] for it in si])

    num=pSum-(sum1*sum2/n)
    den=sqrt((sum1Sq-pow(sum1,2)/n)*sum2Sq-pow(sum2,2)/n)
    if den==0: return 0

    r=num/den

    return r
          

파이썬은 사용하기는 쉬운데... 오류 찾기가 까다롭다...

아 놔 ... 리눅스와 맞먹는데? 

+ Recent posts