ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 27/10/2009 - 10:21
נושא ההודעה: טולקיט שלי זקוק לעזרה

הלו כל הלינוקסאים שם בחוץ~

כמו שחלק מכם אולי זוכרים, התחלתי לפתח ספריית טולקיט~ (סתם תחביב, לא יהיה גדול ומקצועי כמו qt...)

בשעה טובה הפרוייקט הגיע למצב שמאפשר גם לאנשים אחרים לעזור ולתרום לו, ואני אשמח לקבל עזרה מהקהילה כי אין לי כרגע הרבה זמן לעבוד עליו בעצמי~ (אני עושה את זה בעיקר לפנות בוקר לפני עבודה~)

אם אתם מתכנתים טובים, אתם יכולים לעזור ב:
- כתיבת תיעוד
- איתור וניפוי שגיאות מה"קרנל"
- שיפור הקרנל, מבחינת ביצועים או כל דבר אחר
- הוספת פיצרים לתוכנית הריצה
- כתיבת מודולים
- הצעות לשיפור ה-API וכו~
- ביצוע מטלות מה-todo list

אם אתם מתכנתים קצת פחות טובים, אתם יכולים לעזור ב:
- כתיבת תיעוד
- כתיבת מודולים ושיפור מודולים קיימים
- הצעות לשיפור ה-API או שיפורים עבור משתמשים

אם אתם לא מתכנתים, אתם יכולים לעזור ב:
- כתיבת תיעוד
- העלאת המורל~ Smile
- הפצת הבשורה~
- בהמשך אני מקווה שהספריה תהיה שמישה מספיק כדי שגם לא מתכנתים יוכלו להתנסות ולמצוא בעיות, להציע שיפורים וכו~

אם אתם אריה, אתם יכולים לעזור ב:
- כתיבת תיעוד
- פתיחת סניף בדיזנגוף (קרוב לשדרות נורדאו~ תודה~)

ה-snapshot האחרון זמין מפה:
git://jc-kit.git.sourceforge.net/gitroot/jc-kit/jc-kit

כמו שאמרתי, אני מאוד אשמח לכל עזרה שלא תהיה~
אפשר לפנות אליי אישית בהודעה פרטית או באימל פה למטה, אבל כנראה ייקח לי קצת זמן לענות אז נא להיות סבלניים~
תודה~ Wink
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
shlomi-lלא בפורום כעת ת.הצטרפות: 04/05/2003 · הודעות: 1399 ·
 

הודעה פורסם: 27/10/2009 - 13:00
נושא ההודעה:

אין לי זמן לכתוב קוד בשבילך או כל דבר אחר,
אבל מעניין אותי לדעת - מי זה האריה הזה, איך הוא קשור לטולקיט שלך והאם הבורגר שלו שווה משהו?

_________________
________________________________
http://shlomil.blogspot.com/
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם MSN Messenger  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
shlomi-lלא בפורום כעת ת.הצטרפות: 04/05/2003 · הודעות: 1399 ·
 

הודעה פורסם: 27/10/2009 - 13:02
נושא ההודעה:

בעעע ... צימחונים! איכס.

_________________
________________________________
http://shlomil.blogspot.com/
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם MSN Messenger  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 27/10/2009 - 13:31
נושא ההודעה:

הקרנל הזה לא יהיה מקצועי יתמוך רק ב־ATA ויעבוד רק על מעבדי i386? Smile

בכל מקרה, לא ברור לי מה הספריה הזו אמורה לעשות. תוכנית הדגמה לא תזיק.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 27/10/2009 - 18:45
נושא ההודעה:

לא סתם צמחונים, טבעונים~
בטח שווה~ בורגר טופו שולתת~

אין דבר כזה "תוכנית", יש מודולים~ מודולים משתמשים אחד בשני כדי ליצור היררכיה של אובייקטים שיכולים לתקשר אחד עם השני באמצעות הודעות~ בקיצור מערכת מבוססת אירועים אמיתית, פשוטה, מודולרית ויעילה~
מודולים בסיסיים לדוגמה אפשר למצוא תחת הספרייה modules בקוד המקור~
כרגע היחיד שבאמת אפשר לעשות איתו משהו נקרא echo server שהוא, ממ, שרת פשוט ששולח בחזרה כל מה ששולחים אליו~ כדי להריץ, נותנים לתוכנית הריצה את שם המודול, למשל:
קוד:
/path/to/jc echo_server

זה מחפש את המודול שנקרא echo_server בתוך רשימה של תיקיות, טוען אותו ואומר לו ליצור אובייקט, שבמקרה הזה הוא האובייקט הראשי~ האובייקט הזה יוצר לעצמו תת-אובייקטים אם צריך ומקבל ושולח הודעות אליהם ולמשתמש עד שמתקבלת ממנו אחת מרשימה של הודעות שהמשתמש הגדיר עם האפשרות --exit-msg... למשל אם הרצנו ככה:
קוד:
/path/to/jc --exit-msg=accepted echo_server

אז התוכנה תהרוג את האובייקט הראשי כשתתקבל ממנו הודעה "accepted" ותצא~ אם אין הודעות היציאה התוכנה רצה עד שעוצרים אותה עם איזה סיגנל או משהו~
אפשר גם להעביר פרמטרים לאובייקט הראשי דרך שורת הפקודה (כמו למשל על איזה פורט הוא צריך להקשיב) ולשנות את רשימת התיקיות שהקרנל מחפש בהם מודולים (ועוד כל מיני דברים כמו loaders וקבצי העדפות)...

אני גרועה בלהסביר~ Sad
באופן כללי הספרייה נועדה לפשט עד כמה שאפשר פיתוח מבוסס אירועים, ולאפשר למתכנתים לשתף קוד ולמשתמשים לשנות תוכנות בקלות~
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 27/10/2009 - 21:04
נושא ההודעה:

קוד:

[elcuco@pinky ~/src/jc-kit] find .  -name \*.c | xargs cat | wc -l
3780

יש לך סדר גודל של 5000 שורות קוד נקי (בלי הערות, או תיעוד) שהם מנוע למשהו... ואתה מספק דוגמה... וכשהתסכלתי עליה, ראיתי המון קוד חשוב למנוע, אבל לא לתוכנה עצמה. יש יותר מדי דבק, בתוכנית שלך, ופחות מדי "קוד פעיל".

סליחה שאני מבקר מבלי לתת עיצות חכמות מדי... אבל אתה כבר חושב באובייקטים, למה להינעל אל C ולא אל שפת מונחית עצמים? מה המטרה שלך, למעט ללמוד לתכנת ? (נראה שאת זה אתה עושה מצויין, יש המון קוד ואני בטוח שלמדת מזה המון).

בכל מיקרה, הכי חשוב שתכתוב קוד, ותהנה מזה. אם תשחרר תחת רישיון חופשי (כרגע אתה לא מספק רשיון בכלל, מומלץ שתוסיף). כל הכבוד על ההשקעה, ותודה שאתה נותן לנו להסתכל!

אני לא חושב שהפרוייקט שאני בונה הוא מספיק טוב, והתיעוד שלו לא הכי טוב (למעט qmdilib שהוא כמעט מספק אותי), אבל תסתכל על איך הקוד שלי בנוי, תיעוד של doxygen, דוגמאות וכו'. אולי תלמד משהו, ואלי תעיר לי על משהו שאני יכול לשפר. הקוד שלי זמין כאן: http://code.google.com/p/qtedit4/
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 28/10/2009 - 02:53
נושא ההודעה:

elcuco :
יש לך סדר גודל של 5000 שורות קוד נקי (בלי הערות, או תיעוד) שהם מנוע למשהו~ ואתה מספק דוגמה~ וכשהתסכלתי עליה, ראיתי המון קוד חשוב למנוע, אבל לא לתוכנה עצמה. יש יותר מדי דבק, בתוכנית שלך, ופחות מדי "קוד פעיל".

זאת באמת בעייה כרגע, אבל בהמשך רוב המודולים ייכתבו בשפת סקריפטים ייעודית ואז לא תהיה הבעייה הזאת~
אם זה מעודד איכשהו, בהתחלה זה היה הרבה יותר גרוע, אז כנראה שזה לפחות מתקדם בכיוון הנכון~
elcuco :
סליחה שאני מבקר מבלי לתת עיצות חכמות מדי~ אבל אתה כבר חושב באובייקטים, למה להינעל אל C ולא אל שפת מונחית עצמים? מה המטרה שלך, למעט ללמוד לתכנת ? (נראה שאת זה אתה עושה מצויין, יש המון קוד ואני בטוח שלמדת מזה המון).

קודם כל אין שום דבר רע ב-C...
דבר שני זה לא מונחה עצמים, זה מונחה אירועים~ יש הבדל מאוד מהותי בין השניים, ואני מאוד בספק ש-C++ היתה נותנת לי יותר מ-C טהור מהבחינה הזאת~ (שפות כמו java או שפות סקריפטים לא באות בחשבון בכלל, כי הביצועים מאוד קריטיים בשבילי, לפחות עבור המודולים הבסיסיים~)
דבר שלישי, אני לא ננעל על שפה אחת~ הוספת תמיכה בשפה חדשה היא מאוד פשוטה יחסית ל-frameworkים אחרים, ודורשת רק לכתוב ספרייה שמממשת מספר די קטן של פונקציות, לקמפל ולשים באחת מהתיקיות שהספריה מחפשת בהן~ זה למשל מה שאני אעשה בקרוב כשאני אוסיף תמיכה בשפה הייעודית~
elcuco :
בכל מיקרה, הכי חשוב שתכתוב קוד, ותהנה מזה. אם תשחרר תחת רישיון חופשי (כרגע אתה לא מספק רשיון בכלל, מומלץ שתוסיף). כל הכבוד על ההשקעה, ותודה שאתה נותן לנו להסתכל!

נהנים, נהנים~ למדתי מזה המון, בעיקר מהעבודה על התכנון של המערכת~
אני אוסיף רישיון כשזה יהיה שמיש, כרגע זה בעיקר מאפשר לכתוב שרתים יעילים בקלות יחסית, וזאת בכלל לא המטרה של הספרייה הזאת~
elcuco :
אני לא חושב שהפרוייקט שאני בונה הוא מספיק טוב, והתיעוד שלו לא הכי טוב (למעט qmdilib שהוא כמעט מספק אותי), אבל תסתכל על איך הקוד שלי בנוי, תיעוד של doxygen, דוגמאות וכו'. אולי תלמד משהו, ואלי תעיר לי על משהו שאני יכול לשפר. הקוד שלי זמין כאן: http://code.google.com/p/qtedit4/

הסתכלתי~ אגב דבק שקשור למנוע, יש לך קובץ ui של 170 שורות, שזה בערך סדר גודל של "תוכנה" אצלי, וגם בשאר הקוד לא חסר~ (לא אשמתך, אשמת qt...)
אני לא יודעת לעבוד עם qt אז אין לי משהו חכם להגיד~

תודה על ההערות~
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 28/10/2009 - 08:58
נושא ההודעה:

די לשים ~ בסוף כל שורה!!!
בשביל זה המציאו את הנקודה, הסימן הזה שנמצא על הכפתור של הצדיק הסופית או על הסימן שאלה, תלוי באיזו שפה אתה כותב.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
__LemonLime__אורח · ·
 

הודעה פורסם: 28/10/2009 - 11:30
נושא ההודעה:

נקודה קטנה אחת
לא רצתה להיות לבד
אז היא הזמינה עוד שתי נקודות קטנות
לחגיגות חג המולד

שלוש נקודות קטנות עמדו בסוף משפט
התלוננו יושבי הפורום, ברחה מהם אחת
שתי נקודות קטנות נותרו ללא מחסה
בא צפריר, שילח דברו, וזה סוף המעשה

אחת בשביל כולן, כולן בשביל אחת
כשנקודה אחת תלך, דבר לא יפחת
לכולם אותו גורל, אל תכעס אחי
ככה זה בחיים, אתה או אני

נקודה קטנה אחת
לא רצתה להיות בודדה
אז היא הזמינה עוד שתי נקודות קטנות
לחגיגות עדלאידע

Smile

( http://www.youtube.com/watch?v=Pqp8WhieV0o )
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 28/10/2009 - 11:56
נושא ההודעה:

__LemonLime__ :


שתי נקודות קטנות נותרו ללא מחסה
בא צפריר, שילח דברו, וזה סוף המעשה

גם שתי נקודות בסוף משפט זאת לא עברית!
וגם שלוש נקודות בסוף כל משפט זה לא נכון, יש שימוש לשלוש נקודות, ויש כלל מתי משתמשים מהם (מעצבנים אותי האנשים שמשתמשים בשלוש נקודות במקום נקודותיים)
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 28/10/2009 - 17:52
נושא ההודעה:

לא ניסיתי להשכנע אותך להשתמש ב-Qt4, זה לא מתאים לכל פרוייקט או מתכנת.

תסתכל על מבנה של הפרוייקט שלי:
* כל קובץ יש לו header קבוע, שם הקובץ ומה הוא מכיל
* אחרי זה system includes
* אחרי זה local includes
* לפני כל פונקציה יש תיעוד מדוייק של מה היא עושה, עם מי היא מדברת, ומה המשמעות של כל פרמטר.
* יש עמודי תיעוד כללים לפרוייקט, כולל דוגמאות.
* בכמה קבצים יש לי kate lines (כמו vim mode lines).

אתה עשית חלק גדול מהדברים, בהקוד שלך באמת מסודר, אבל לא ממש ברור לי, מישהו שמסתכל מהצד.

בקשר לקבצי ui - מה אכפת לי. זה לא קבצים בשבילי, אלא קבצי מכונה, מי שחושב שקבצי xml זה משהו human readable, הוא טועה בגדול.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 28/10/2009 - 18:11
נושא ההודעה:

הערה קטנה לגבי רשיון: זה חשוב. בעקרון מי שמוריד את הפרוייקט, בונה אותו ומריץ אותו חשוף כרגע לתביעה על הפרת זכויות יוצרים מצידך (אבל רק מצידך). זה מכיוון שאין על התוכנה רשיון שימוש מפורש.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 28/10/2009 - 18:56
נושא ההודעה:

elcuco :
לא ניסיתי להשכנע אותך להשתמש ב-Qt4, זה לא מתאים לכל פרוייקט או מתכנת.

תסתכל על מבנה של הפרוייקט שלי:
* כל קובץ יש לו header קבוע, שם הקובץ ומה הוא מכיל
* אחרי זה system includes
* אחרי זה local includes
* לפני כל פונקציה יש תיעוד מדוייק של מה היא עושה, עם מי היא מדברת, ומה המשמעות של כל פרמטר.
* יש עמודי תיעוד כללים לפרוייקט, כולל דוגמאות.
* בכמה קבצים יש לי kate lines (כמו vim mode lines).

אתה עשית חלק גדול מהדברים, בהקוד שלך באמת מסודר, אבל לא ממש ברור לי, מישהו שמסתכל מהצד.

בקשר לקבצי ui - מה אכפת לי. זה לא קבצים בשבילי, אלא קבצי מכונה, מי שחושב שקבצי xml זה משהו human readable, הוא טועה בגדול.


הבנתי~
אני יודע שהפרוייקט לא קרוב בכלל לאיזשהו סטנדרט של כתיבה, ולמרות שיש הערות מדי פעם הוא לא ממש ברור למי שמסתכל מהצד~ הבעייה היא שאני לא יודע לכתוב תיעוד (או להסביר באופן כללי, אבל זה פחות נורא פנים מול פנים~) ואם אני אכתוב תיעוד, סביר להניח שהוא יהיה מובן לי ורק לי, וגם יהיה ממש משעמם~ בגלל זה כל מי שמוכן לעזור בכתיבת תיעוד מוזמן בברכה (ואם אריה מהבורגר יכול אז כל אחד יכול~ Razz )
אני אשתדל בסוף שבוע לכתוב כמה פסקאות כלליות על המודל שתכננתי ומימשתי ואיך זה בדיוק עובד, אני מקווה שאחר כך זה יהיה יותר ברור גם על מה הפרוייקט מבוסס וגם למה לדעתי הוא טוב יותר ובנוי "נכון" יותר מספריות קיימות~

בקשר לקבצים שנוצרים אוטומטית, זה נכון במידה מסויימת, אבל עבור ממשק משתמש (או כל דבר אחר שמשפיע על חווית השימוש בתוכנה), זה לא מתאים לדעתי כי זה הופך את השינויים בתוכנה ללא נגישים עבור משתמשים פשוטים~
לדעתי~

טוב, אני אוסיף עותק של GPL לפרוייקט ובתחילת כל קובץ~
ואם כבר רישיון, יש לי שאלה~
אני רוצה לקחת את הקוד מהקרנל שמממש rbtree, לעשות בו כמה שינויים כדי שיעבוד גם עם ערכים כפולים ולהשתמש בו אצלי~ מה צריך לעשות עם זה מבחינת רישיון וזכויות יוצרים~? אם אני פשוט מעתיק את ההערה בהתחלה עם הרישיון והזכויות זה מספיק~? (הפרוייקט שלי הוא גם GPL...)

וחוץ מזה, כמה תיקונים קלים~
ציטוט:
אחת בשביל כולן, כולן בשביל אחת
כשנקודה אחת הולכת, לאףחד לא אכפת
כולם גומרים אותו דבר, אל תהיה לי עצבני
ככה זה בחיים, או אתה או אני

(נוסף למחרוזת השירים ההזויים שלי~)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 28/10/2009 - 19:06
נושא ההודעה:

אם אתה לוקח קוד מהקרנל, הפרוייקט שלך הוא GPLv2 בלבד. שים לב.

אתה לא צריך לעשות כלום חוץ מלהגיד "הפרוייקט שלי הוא GPLv2".
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 28/10/2009 - 19:12
נושא ההודעה:

תיעוד זה דבר חשוב.

הוא נועד לחסוך את הזמן שבו עונים לשאלות של נודניקים כדי שיהיה אפשר לכתוב קוד.

בתור התחלה אפשר לקחת את ההסברים שלך מכאן (עדיף לתרגם לאנגלית, אבל גם בעברית זה יותר טוב מכלום. בעיקר אם רוב הנודניקים של הספריה קוראים עברית).
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 28/10/2009 - 19:23
נושא ההודעה:

עדיף לי לרשום סימן מסחרי על הטילדה או לכתוב תוסף גריזמונקי שמוחק אותה מאשר לנסות לקרוא את ההודעה ככה Idea
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 28/10/2009 - 19:49
נושא ההודעה:

אה~ אז רגע~ אם אני רוצה GPL3 אסור לי לקחת קוד שנכתב תחת GPL2...?
ואם קראתי את הקוד שבקרנל, הבנתי בערך איך הוא עובד ועכשיו אני מממש באותה צורה, זה אסור~?

אני יודעת שזה חשוב, ואני דווקא אשמח לענות על שאלות ספציפיות, הבעייה היא שכנראה אף אחד לא יודע אפילו מאיפה להתחיל לשאול כי אין אפילו תיאור בסיסי של הפרוייקט (מה הוא עושה, למה, איך, בשביל מה זה טוב~)
אני מקווה שההסבר שאני אשתדל לכתוב ולשים פה בימים הקרובים יעזור~

תיזהר בסקריפט לא למחוק גם טילדות חשובות~
למשל תנסה למחוק רק טילדות שבאות אחרי אות עברית~ (זה עדיין לא מושלם, אבל ככה הסקריפט שלי עובד~)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 28/10/2009 - 20:16
נושא ההודעה:

רישיונות GPL2 ו־GPL3 לא תואמים. קרא כאן:
http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

בעיקרון, אם אתה מסתכל על הקוד של לינוקס, ואתה לומד מה האלגוריתם עושה, ואז משכתב אל GPL2 ומעלה ייתכן כי אתה נמצא בצרות אם מישהו ירצה לתבוע אותך (זה מה שקורה עם פרוייקט ReactOS). בעיקרון, אתה אמור ללמוד את הקוד, לכתוב על נייר מה הוא עושה, ולתת אותו למישהו אחר שלא ראה את הקוד המקורי, כדי שעל סמך ההנחיות שלך הוא יכתוב קוד חדש תחת רישיון חדש.

זה לפי ה"חוקים היבשים".

כיוון שמדובר בתוכנה חופשית (כזאת או אחרת...) פשוט תסתכל על הקוד, תלמד אותו טוב טוב ותכתוב אותו מחדש, ואז תשחרר תחת GPL3. אף אחד לא יעשה לך שום דבר.

אם ינסו לתבוע אותך ייתכן ואתה תפסיד במשפט... אבל ייתכן שלא, כי אתה תמממש מחדש אלגוריתמים מוכרים, so fucking what? אז הסתכלת על מימוש בתור reference? אין לא משהו trade-markable...

לך תכתוב קוד כבר... Rolling Eyes Rolling Eyes Crying or Very sad Crying or Very sad Crying or Very sad Laughing Laughing Laughing Laughing Crying or Very sad Shocked Very Happy Very Happy Very Happy Smile Smile Sad Rolling Eyes Twisted Evil Twisted Evil Twisted Evil Evil or Very Mad Exclamation Question Idea Laughing Laughing Embarassed Embarassed Rolling Eyes Rolling Eyes Rolling Eyes Rolling Eyes Rolling Eyes Rolling Eyes Rolling Eyes Rolling Eyes Laughing Laughing
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 28/10/2009 - 22:39
נושא ההודעה:

בוא לעזור לי~ Confused

כתבתי הסבר קצר וממצה כמו שהבטחתי~ לקח לי שניים וחצי עמודים שכתבתי ברצף, כנראה היה לי הרבה מה להוציא~
במיוחד בשביל האורח כתבתי עם נקודות ופסיקים וכל זה, ממש כמו בנאדם רציני~

הסבר כללי

תוכנה מסורתית היא רצף של פקודות שהמעבד מבצע אחת אחרי השנייה. לעומת זאת, תוכנות מודרניות, ובמיוחד תוכנות גרפיות, לא מתאימות למודל הזה: אלה לא תהליכים שמבצעים פעולות מסויימות ויוצאים, אלא תהליכים שרצים "ברקע" ומגיבים לאירועים שהתקבלו מהמשתמש (או ממקורות אחרים). למשל: המשתמש לחץ על בפתור, והתוכנה מבצעת איזושהי פעולה בתגובה; המשתמש סימן משהו עם העכבר, והתוכנה מגיבה לאירוע בצורה המתאימה.

במילים אחרות, אפשר להגדיר תוכנה "מסורתית" בתור תהליך שמקבל כקלט רצף של בתים, מבצע עיבוד כלשהו, ומוציא כפלט רצף של בתים. תוכנה גרפית לעומת זאת, היא תהליך שמקבל כקלט רצף של אירועים, מבצע עיבוד כלשהו, ומוציא כפלט רצף של אירועים (שמתבטאים בדרך כלל בשינויים בתצוגה). לתהליך כזה אנחנו קוראים "אובייקט". כמובן שלאובייקט יכולים להיות גם תת-אובייקטים, שגם הם מתקשרים עם העולם באמצעות אירועים, וגם להם יכולים להיות תת-אובייקטים, וככה הלאה. כך, יש לנו היררכיה של אובייקטים, שכל אחד מהם מתקשר עם האובייקט שיצר אותו (ה"הורה" שלו - parent) באמצעות אירועים, ועם האובייקטים שהוא יצר בעצמו (ה"ילדים" שלו - children) באמצעות אירועים מסוג אחר. חשוב לשים לב שיש כאן שני סוגים של אירועים ששונים מהותית זה מזה: סוג אחד מאובייקט להורה שלו (אירועים מהסוג הזה נקראים notify messages), וסוג אחר מאובייקט לילדים שלו (אירועים מהסוג הזה נקראים send messages). הודעות מהסוג הראשון הן בדרך כלל הודעות שאומרות "קרה משהו", למשל: התקבלה פקטה, המשתמש לחץ על תיבת טקסט, זוהתה חומרה חדשה. באופן כללי, אלה הודעות שמועברות באופן א-סינכרוני ושלא משפיעות ישירות על האובייקט ששלח אותן. למשל, לאובייקט שמייצג תיבת טקסט לא אכפת מה קורה עם ההודעה שהוא שלח, או אם ההורה שלו בכלל יגיב לאירוע הזה או יתעלם ממנו. בזה שהוא שלח את ההודעה שקרה משהו, הוא סיים את תפקידו והאחריות להגיב לאירוע היא של ההורה. לעומת זאת, הודעות מהסוג השני הן בדרך כלל הודעות שמבקשות מאובייקט היעד "לעשות משהו": לשנות צבע, להציג משהו על המסך, להחזיר לאובייקט השולח ערך מסויים וכו. אלה הודעות שכן מעניינות את האובייקט שמייצר אותן: אם, למשל, ביקשתי לקבל דיווח כלשהו על המצב הנוכחי של אובייקט היעד, אני רוצה לדעת את זה עכשיו כדי להגיב למצב הזה בהתאם. אם ביקשתי ליצור קובץ והפעולה נכשלה מסיבה כלשהי, אני מעוניין (אני=האובייקט השולח, אם זה לא היה ברור עד עכשיו) לדעת מזה באופן מיידי כדי שאני אדע להגיב בהתאם, למשל על ידי ניסיון ליצור קובץ בשם אחר או דיווח להורה על שגיאה.

אם לסכם: יש לנו היררכיה של אובייקטים, כשלכל אובייקט (פרט לאובייקט הראשי - root object) יש הורה, ואפס או יותר ילדים. כל אובייקט יכול ליצור לעצמו ילדים חדשים ולהרוג ילדים קיימים, אבל אין לו שליטה על ההורה שלו (הוא אפילו לא יודע מי הוא ולמה הוא יצר אותו). אובייקט מדווח להורה שלו על אירועים שקרו עם הודעות notify שמועברות באופן א-סינכרוני. אובייקט שולט בילדים שלו באמצעות הודעות send, שמועברות באופן סינכרוני, ועל ידי יצירה והריגה של ילדים.

אפשר להוסיף בהקשר הזה שאובייקט השורש, שאין לו הורה, מתקשר עם המשתמש במקום: נוטיפיקציות ממנו מודפסות לטרמינל, והמשתמש יכול לשלוח לו הודעות send (למשל, אם רץ אובייקט של שרת http, אפשר לשלוח לו הודעה reload-config או משהו דומה שתורה לו לטעון מחדש את קובץ ההגדרות, או הודעה stats שתחזיר סטטיסטיקות, זמן ריצה וכו).
המנגנון הזה יכול לאפשר בעתיד להריץ תוכנות עם pipe סטנדרטי ככה שהודעות מאחת יגיעו לשנייה או כל מיני משחקים כאלה, אבל זה עוד רחוק~

אופן פעולת הספרייה

אובייקטים נוצרים על ידי קטעי קוד שנקראים "מודולים" (modules). כל מודול יודע לטפל באובייקטים מסוג מסויים - למשל, מודול dns_client שמטפל בשאילתות dns באופן א-סינכרוני, או מודול textbox שיודע לטפל בתיבות טקסט.

הפורמט של מודולים נקבע על ידי "טוענים" (loaders) - ספריות מיוחדות שתפקידן הוא לתווך בין הקרנל למודולים. כשצריך לטעון מודול, הקרנל עובר על רשימת ה-loaderים שיש לו ומורה לכל אחד מהם לנסות לטעון את המודול, עד שאחד מצליח (או מחזיר שגיאה שונה מ-JC_ENOEXEC...) מאותו רגע ה-loader מקבל הוראות להעביר למודול, הוראות כמו "צור אובייקט חדש" או "טפל בהודעה הזאת".
כרגע קיים רק ה-loader הבינארי, שנקרא bin, ויודע להריץ מודולים שקומפלו כ-shared objects ומכילים פונקציות מסויימות שנקראות בעת הצורך וכמה מבני נתונים שמוגדרים בדרך כלל באמצעות מקרואים (הגדרות של כל אלה נמצאות ב-include/module.h).

לכל מודול יש קובץ הגדרות שמועבר לו בזמן הטעינה. אפשר להגדיר בו, למשל, קונפיגורציה לשרת, או צבעי ברירת מחדל של widgetים, או כל סוג אחר של הגדרות שהמודול הספציפי מכיר.

את קבצי ההגדרות, המודולים וה-loaderים הקרנל מחפש ברשימה של תיקיות, בסדר הבא:
1. ערך הארגומנט --user-path שהועבר בשורת הפקודה (או ליתר דיוק, הפרמטר ל-jc_init(), שהוא בתורו נקרא משורת הפקודה ומועבר לקרנל על ידי תוכנית הריצה).
2. משתנה הסביבה JC_PATH, שמכיל רשימה של תיקיות מופרדות בנקודתיים.
3. תיקיית ברירת המחדל, שהיא תת-תיקייה בשם jc שנמצאת בתוך התיקייה שבה הותקנה הספרייה (או במילים אחרות, pkglibdir).
תחת כל אחת מהתיקיות האלה, הקרנל מחפש תיקייה בשם loaders, modules, או prefs (תלוי מה מחפשים), ובתוכה את הקובץ הרצוי. אם הקובץ נמצא הקרנל משתמש בו, ואם לא - עובר לתיקייה הבאה ברשימה.

קצת על ממשק הקרנל

jc_init() - איתחול משתנים, בעיקר רשימת התיקיות וטעינת ה-loaderים.
jc_uninit() - שיחרור משאבים וכו~
jc_load() - טעינה של מודול
jc_unload() - שיחרור מודול
jc_exec() - יצירת אובייקט חדש
jc_kill() - הריגה של אובייקט
jc_send() - שליחת הודעה (סינכרונית) לאחד הילדים
jc_notify() - שליחת הודעה (א-סינכרונית) להורה

כל אלה מוגדרים בקובץ include/jc.h.

זהו, אני מקווה שעכשיו יותר ברור~ היתה פה עוד פיסקה על היתרונות של כל זה על פני מה שיש בספריות אחרות, אבל אני עייפה מדי בשביל לדבג אותה~
אם יש עוד שאלות אני אשמח לענות~
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 28/10/2009 - 22:53
נושא ההודעה:

שיט, יצא לי נורא ארוך~
רואים שאני עושה את הדברים האלה ב-4 בבוקר~
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 28/10/2009 - 22:57
נושא ההודעה:

הנה שאלה: איך אני מגיע להסבר הזה מקוד המקור של ה־toolkit?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 29/10/2009 - 05:01
נושא ההודעה:

הוספתי קובץ "קראוני", אני עושה פה עוד כמה דברים ואז אני אדחוף את השינויים ל-sf...
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
kzamirלא בפורום כעת ת.הצטרפות: 25/12/2004 · הודעות: 76 ·
 

הודעה פורסם: 29/10/2009 - 06:33
נושא ההודעה:

הי,

ניסיתי לקרוא את הקוד ... בשלושת הקבצים שניסיתי לקרוא לא היתה שורה אחת של הערות.

קראתי את ההסברים הארוכים בעברית, או לפחות את השורות הראשונות של כל הסבר, ולא הבנתי מה הקוד עושה.

טול-קיט, קרנל ... הן מילות שצריך לתת להן משמעות. לדוגמה: טול-קיט גרפי לציור כפתורים בסביבת פריים-בפר, או מודול קרנל שמכיל פונקציות שעוטפות פקודות לשליטה על מדפסת.

צפריר, דיאגו: האם אתם יכולים להסביר בחמישה משפטים או פחות, בצרוף תכנית הדגמה פשוטה, מה הקוד הזה עושה ?
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 29/10/2009 - 07:38
נושא ההודעה:

זה נכון שאין הערות~
יש לזה שתי סיבות עיקריות:
1. אני עצלן ברמות קיצוניות
2. עד לאחרונה הממשק השתנה בערך כל יומיים, ככה שלא היה טעם להסביר בהערות איך הדברים עובדים לפני שאני יודע איך הם עובדים~

אני לא כל כך יודעת מה לא היה ברור לך, אבל זאת רשימה של הקבצים והתפקיד של כל אחד מהם:

בתיקייה include
container_of.h - מכיל את המאקרו container_of, אני מקווה שברור מה הוא עושה~
jc.h - הגדרות ומבני נתונים כלליים (כמו jc_value, מקרואים להחזרת שגיאות); פרוטוטייפים של הפונקציות הבסיסיות (מה שאני קורא לו "קרנל"); פרוטוטייפים של פונקציות שממומשות על ידי ה-loaderים~
list.h - מימוש פשוט של רשימות מקושרות~
module.h - הממשק בין ה-loader הבינארי למודולים הבינאריים, מכיל 2 פונקציות שמתרגמות בין מבנה הנתונים שמייצג אובייקט אצל ה-loader (שנקרא jc_object) לבין מבנה הנתונים שמייצג אובייקט אצל המודול (שנקרא jc_state); פרוטוטייפים של הפונקציות שממומשות על ידי המודולים; הרבה מקרואים ומבני נתונים לשימוש במודולים כדי להקל את העבודה של כותבי המודולים (כלומר עליי~)
תת התיקייה modules מכילה קבצי הגדרות ספציפיים למודולים, כרגע יש שם רק tcp_server.h שמכיל הגדרה של מבנה נתונים שנמצא בשימוש במודול tcp_server ובמודולים שמשתמשים בו~

בתיקייה jc
זאת התיקייה של תוכנית הריצה, יש פה כרגע רק jc.c שמכילה גרסה בסיסית של התוכנית שיודעת לקבל משורת הפקודה user-path (ראה הסבר למעלה), רשימה של exit-msg (רשימה של הודעות שהתוכנית צריכה לצאת כשהן מתקבלות מהאובייקט הראשי), ופרמטרים להעביר לאובייקט הראשי כשיוצרים אותו (מה שנקרא exec_args...)

דרך אגב, שכחתי לציין קודם את האופן שבו מטפלים בהודעות בין המודולים~
לכל הודעה יש id, שהוא מספר שלם שמוגדר על ידי המודול (הודעות send מוגדרות על ידי המודול שמקבל אותן, הודעות notify מוגדרות על ידי המודול ששולח אותן~)
בתחילת הריצה כשכל המודולים נטענות המחרוזות שמייצגות שמות של הודעות נפתרות ל-id שלהן ובמהלך כל הריצה משתמשים ב-id במקום בשם~
עם ארגומנטים להודעות נעשה דבר דומה: ארגומנטים מועברים בתור מערך בגודל קבוע שכל איבר בו הוא הארגומנט שה-id שלו זהה לאינדקס של האיבר במערך~
השיטה הזאת מאפשרת מצד אחד גמישות בהגדרת הודעות וארגומנטים, ככה שאפשר לשנות ממשק של מודול בלי להפריע למודולים האחרים, ומצד שני יעילות מירבית (כי כל התהליך של תרגום מחרוזות ל-id נעשה בתחילת הריצה, ושליחה של הודעות נעשית באמצעות אינדקס במערך, שזאת הדרך הכי מהירה שיש~)

בתיקייה kernel
inthash.{h,c} - קשקוש שכתבתי כשרציתי לממש משהו בקרנל ועדיין לא היה לי רעיון איך לעשות את זה בצורה נורמלית~ (עכשיו אני עובד על אותו דבר בעזרת שילוב של rbtrees עם רשימה מקושרת, הרבה יותר יעיל ואלגנטי~)
jc.c - הקובץ העיקרי של הספרייה, מכיל מימוש של כל הפונקציות הבסיסיות שהוגדרו ב-jc.h
path.{h,c} - יצירה והריסה של רשימת התיקיות שבהן הקרנל מחפש את מה שאמרתי למעלה~
prefs.{h,c} - טעינה ושיחרור של הגדרות פר-מודול, גם על זה אמרתי למעלה~

בתיקייה loaders
זאת התיקייה שבה נמצאים ה-loaderים, בינתיים יש רק bin.c, שהוא מימוש של loader בינארי שפשוט מעביר הודעות מהקרנל למודולים שהוא טוען~
כשתהיה השפה הייעודית יהיה פה גם jc.c שיכיל את המימוש שלה~

בתיקייה modules
זאת התיקייה שבה נמצאים המודולים~ כרגע יש:
aio: קלט-פלט א-סינכרוני
apoll: יdemuxer של בקשות poll על קבצים, אף אחד לא אמור להשתמש בזה לדעתי חוץ מ-aio...
echo_server, echo_server_connection: שרת echo, שפשוט מחזיר כל מה ששולחים לו~ echo_server_connection מטפל בחיבור ספציפי, echo_server הוא השרת עצמו~
tcp_client: מימוש גנרי של לקוח tcp, אפשר להשתמש בו כדי ליצור לקוחות לפרוטוקולים ספציפיים
tcp_connection: הפשטה של חיבור tcp, בעיקרון רק wrapper מעל aio עם התאמות~
tcp_server: שרת tcp גנרי, אפשר להשתמש בו כדי ליצור שרתים לפרוטוקולים ספציפיים~
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 29/10/2009 - 10:11
נושא ההודעה:

התאור הזה של כל קובץ צריך להופיע כהרות של שורה אחת בראש כל קובץ.

אפשר להעזר ב־doxygen ודומיו יותר מאוחר כדי ליצור מהכל תיעוד מרוכז. השורה הזו תהיה הערת ‎\file .
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 07/01/2010 - 04:35
נושא ההודעה:

טוב, זה רחוק משלמות כרחוק השמש מקצה היקום, אבל בגלל שאני ילד מתלהב שחררתי גרסה ראשונה:
http://sourceforge.net/projects/jc-kit/

רוב השטויות שנכתבו למעלה כבר לא תקפות (לצערי חלקן עדיין כן, אבל אין לי כרגע אפשרות לתקן את זה...)
העניין די פשוט, יש לכם פונקציה שאתם מעבירים ל-jc_init ואתם יוצרים אובייקטים שקוראים לפונקציה הזאת כשקורה אירוע שביקשתם לדעת עליו... (בערך...)
אם אתם רוצים ליצור אובייקט חדש זה קצת יותר מסובך, אבל לא הרבה, רק יש כמה דברים שצריך לשים לב אליהם ומן הסתם צריך להבין איך המערכת עובדת...
דוגמאות לאובייקטים יש בתיקייה objects ודוגמאות שימוש בתיקייה examples...

עיקר העבודה כרגע היא כתיבת אובייקטים, אז אם מישהו בכל זאת רוצה לעזור זה יהיה נחמד...

(נ.ב. ממש נורא העבודה הזה...
איך אנשים חיים ככה...?)

(נ.ב.ב. המ... מי המליץ עליי ב-sourceforge...?)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 23/04/2010 - 15:25
נושא ההודעה:

בא לי עוד גרסה...
(אז מה אם אין תגובה, העיקר שאני נהנה...)

אם מישהו הוריד את הגרסה הקודמת והזדעזע, מומלץ להוריד את הגרסה החדשה... יש הרבה שינויים רעננים וטעימים...
יש גם מדריך יחסית מסודר שמסביר בערך איך הכל עובד וכל מיני מושגים בסיסיים, פה:
http://jc-kit.git.sourceforge.net/git/gitweb.cgi?p=jc-kit/jc-kit;a=blob;f=doc/new_object.txt
(או בקובץ doc/new_object.txt בעץ של הקוד...)

בגלל שיש כבר לקוח איקס עשיתי השוואת ביצועים מול xlib הסטנדרטי, וזאת התוצאה:
קוד:
lemonlime@debian:~$ time ~/test4

real   0m9.870s
user   0m2.016s
sys   0m2.916s
lemonlime@debian:~$ time progs/jc/examples/x11

real   0m3.011s
user   0m0.940s
sys   0m1.420s


כל אחת מהתוכניות פותחת וסוגרת 40000 חיבורים לשרת איקס המקומי... כמו שאתם רואים xlib איטי בערך פי 3 מהספרייה שלי...
לא הצלחתי לחשוב על דרך למדוד את הביצועים של חיבור פעיל, אם יש למישהו רעיון אני אשמח לשמוע ולבדוק (ולשפר, כי זה בטח גרוע...)
לפי ואלגרינד התוכנית של xlib מקצה בערך פי 5 וחצי יותר זיכרון מהתוכנית שלי, אבל יכול להיות שזה סתם זיכרון שמשוחרר כמעט מיד ולא משמש את החיבור, ואין לי איך לבדוק את זה...

בכל מקרה זה הקישור להורדה:
http://sourceforge.net/projects/jc-kit/files/v0.2/jc-0.2.tar.bz2/download

לילה טוב...
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
axleelxaלא בפורום כעת ת.הצטרפות: 30/08/2009 · הודעות: 130 ·
 

הודעה פורסם: 23/04/2010 - 21:46
נושא ההודעה: erlang

אני לא מתכנת
אך מתעניין בנושא בתור תחביב
ו מתלבט מה ללמוד לעומק C PASCAL ERLANG
נירא לי שאתה מממש את ERLANG בתור סיפרית C
או מה שהוא בסגנון אם אני לא טועה
ראיון נחמד Exclamation Exclamation Exclamation
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 24/04/2010 - 05:40
נושא ההודעה:

לא בדיוק... הרעיון אולי דומה, אבל לפי מה שראיתי מודל ה-concurrency שונה לחלוטין...
עם jc, כשאתה מממש אובייקט אתה בכלל לא מודע לזה שהוא והאובייקטים שהוא משתמש בהם רצים במקביל בכמה threadים ואתה לא שולט על הדברים האלה... אתה יוצר אובייקטים, אומר להם לעשות כל מיני דברים ומחכה להודעות מהם - הכל נעשה מאחורי הקלעים בלי התערבות שלך בכלל... ב-erlang (אם לא פספסתי משהו) אתה צריך להגיד במפורש לפתוח thread נפרד עבור משימה מסויימת, או לפחות להגיד במפורש לבצע משהו בצורה אסינכרונית...

בנוסף לפי מה שראיתי erlang לא כופה עליך חלוקה נכונה לאובייקטים שמבצעים כל אחד דבר בסיסי ומוגדר היטב... עם jc, לממש אובייקט שעושה יותר מדי דברים זה כאב ראש רציני, מספיק בשביל שלא תרצה לעשות את זה בלי סיבה ממש טובה... לעומת זאת מימוש של אובייקט קטן ופשוט הולך ונהיה דבר מאוד קל לביצוע, למעשה ה"שלד" הבסיסי שמעליו בונים אובייקט הוא כרגע לדעתי לא יותר מ-100 שורות בערך... (שזה עדיין יחסית הרבה, אבל כמו שאמרתי זה משתפר לאט לאט, ובכל מקרה רוב הקוד כבר עכשיו קשור יותר למה שהאובייקט עושה מאשר לפעולה של המנוע שמעליו הוא פועל...)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
TAsnלא בפורום כעת ת.הצטרפות: 10/10/2006 · הודעות: 892 ·
 

הודעה פורסם: 24/04/2010 - 12:32
נושא ההודעה:

LemonLime :

בגלל שיש כבר לקוח איקס עשיתי השוואת ביצועים מול xlib הסטנדרטי, וזאת התוצאה:
קוד:
lemonlime@debian:~$ time ~/test4

real   0m9.870s
user   0m2.016s
sys   0m2.916s
lemonlime@debian:~$ time progs/jc/examples/x11

real   0m3.011s
user   0m0.940s
sys   0m1.420s


כל אחת מהתוכניות פותחת וסוגרת 40000 חיבורים לשרת איקס המקומי... כמו שאתם רואים xlib איטי בערך פי 3 מהספרייה שלי...


את הספריה שלך לא כתבת עם שימוש ב xlib? לי זה נשמע כאילו סתם כתבת קוד גרוע עבור x וקוד טוב עבור לך. (מבחינת שימוש ב xlib).
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. LemonLime
  2. shlomi-l
  3. shlomi-l
  4. אורח [צפריר]
  5. LemonLime
  6. elcuco
  7. LemonLime
  8. אורח
  9. אורח [__LemonLime__]
  10. אורח
  11. elcuco
  12. אורח [צפריר]
  13. LemonLime
  14. elcuco
  15. אורח [צפריר]
  16. אורח
  17. LemonLime
  18. elcuco
  19. LemonLime
  20. LemonLime
  21. אורח [צפריר]
  22. LemonLime
  23. kzamir
  24. LemonLime
  25. אורח [צפריר]
  26. LemonLime
  27. LemonLime
  28. axleelxa
  29. LemonLime
  30. TAsn
  31. LemonLime
  32. ik_5
  33. LemonLime