לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #3  
ישן 11-01-2016, 12:06
צלמית המשתמש של קוביבי
  משתמש זכר קוביבי קוביבי אינו מחובר  
מנהל פורום מערכות הפעלה - הרובע המייקרוסופטי.
 
חבר מתאריך: 07.10.04
הודעות: 13,777
LinkedIn profile
בתגובה להודעה מספר 1 שנכתבה על ידי maorhag שמתחילה ב "הקצאות דינמיות ופוינטרים בC"

אתה מדבר בגדול על רשימה מקושרת בתרגיל שלך (אני מניח שלמדת את הקונספט של רשימה מקושרת)
המטרה של התרגיל היא שתכתוב ספריה שמנהלת רשימה מקושרת.
https://en.wikipedia.org/wiki/Linked_list
רשימה מקושרת היא בבסיסה מערך דינמי (שמוקצה בזמן-ריצה) שכול תא(ייקרא node) בו מכיל 2 חלקים.
חלק אחד (השמאלי) - המידע (ייקרא node->data).
חלק 2 (הימני) - מצביע לתא הבא (ייקרא node->next).

המידע שלך יהיה struct שמחזיק את הנתונים על הספר (כותרת, הוצאה, תאריך השאלה וכו').

דוגמאות לפעולות שאתה צריך לממש:
האתחול של הרשימה המקושרת יהיה יצירת מצביע בשם head שיצביע לכתובת ריקה בזכרון.
הוספת איבר לסוף הרשימה יהיה מעבר על כל הרשימה המקושרת (head->next->next ... ) עד שתמצא את התא שמצביע על null, בשלב זה תיצור (malloc) תא (node) חדש, תדאג שהתא האחרון יצביע עליו והוא יצביע על null.

הפעולות שתצטרך לממש (אם אני זוכר נכון) הן:
init
add
delete/deletehead (לא חייב להפריד)
clear
find
המימוש הוא לא כזה מסובך, החלק החשוב הוא לא לאבד פוינטרים, כי אם אתה מאבד הצבעה לתא שהקצית בלי למחוק - גרמת לזליגת זיכרון ובגלל זה מלאך נוסף מאבד כנפיים.


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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 11-01-2016, 12:33
צלמית המשתמש של קוביבי
  משתמש זכר קוביבי קוביבי אינו מחובר  
מנהל פורום מערכות הפעלה - הרובע המייקרוסופטי.
 
חבר מתאריך: 07.10.04
הודעות: 13,777
LinkedIn profile
בתגובה להודעה מספר 4 שנכתבה על ידי maorhag שמתחילה ב "תודה רבה,הערות:"

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

ולכן כנראה שרוצים שתשמש ב malloc/calloc (לא זוכר את הפקודות כלכך, היום הן לא באמת בשימוש וחבל שלא משקיעים את זמן הלימוד שלכם בדברים אחרים כמו DP)
אני לא רואה איך תוכל להימנע מ structs ולא מבין למה אסור לך, הרי לא מתכננים שתממש בסיס נתונים בc עכשיו, זה "רק" תרגיל
אבל כן - אפשר ליצור מערך דו מימדי דינמי בc, בסופו של דבר הוא ממוממש "מאחורי הקלעים" כמערך חד מימדי ארוך, אז תתייחס אליו ככזה (כלומר: arr[x][y]=arr[nx+y]q, תתעלם מה q, זה לשם עימוד בלבד) כאשר n זה אורך המטריצה, חשוב ש x ו y יהיו קטנים מ n
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 11-01-2016, 14:02
צלמית המשתמש של maorhag
  maorhag maorhag אינו מחובר  
 
חבר מתאריך: 09.01.06
הודעות: 3,979
שלח הודעה דרך MSN אל maorhag
בודאי,זה העניין נראה לי.
בתגובה להודעה מספר 7 שנכתבה על ידי ai22 שמתחילה ב "מותר לך להשתמש בREALLOC?"

בלי רילוק אני בכלל לא מכיר דרך לשנות מחדש גודל של מערך.
החומר הנלמד (בערך,כי לא ממש הייתי) זה מערכים,פוינטרים,הקצאות דינמיות (לא לימד רשימות מקושרות עד כמה שאמרו לי) וזהו. אסור מבנים ואפילו בstring.h יש כמה פונקציות מסוימות שהוא לימד ומותר להשתמש וברוב לא (למשל רציתי להשתמש בstdrdup והמתרגל אמר לי שאסור והוא לא לימד)
השיטה של הלפרוסט (מה לעשות,פעם הלפרוסט תמיד הלפרוסט)-אתה מתכוון שאני אצור מערך אחד דינמי של ספרים ומערך דינמי של מנויים ואז איך אני מקשר בין משתמש לספר? איך אני מסמן השאלה?
_____________________________________
ציטוט:
במקור נכתב על ידי eshely77
אני בוחר לסכן את חיי חיילי צהל.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 11-01-2016, 15:00
צלמית המשתמש של ai22
  משתמש זכר ai22 ai22 אינו מחובר  
 
חבר מתאריך: 29.09.09
הודעות: 12,907
בשיטה הזאת, אתה צריך רק הקצאה דינמית של מערך והבנה מהו מצביע
בתגובה להודעה מספר 9 שנכתבה על ידי maorhag שמתחילה ב "בודאי,זה העניין נראה לי."

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

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

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

עכשיו:
אתה יכול לקחת את מיקום הערך שלך במערך הקטן - כאינדקס
למשל אם יש לך מספר ספר למשל 15) ומזהה מנוי (למשל 28) - אז מספר הספר החמישי יהיה בתא הראשון (book[5][0]=15), ומזהה הלוקח בשני (book[5][1]=28)
אם לכל ערך יש גודל אחר, תצטרך לעשות הסבות בין גדלים, או להחזיק מערך לכל שדה כמו שהלפרוסט הציע.

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

בשדה המנוי של ספר שלא הושאל - תוכל לכתוב 1- למשל.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #28  
ישן 22-01-2016, 00:30
צלמית המשתמש של פסטן
  פסטן פסטן אינו מחובר  
 
חבר מתאריך: 14.12.09
הודעות: 9,751
בתגובה להודעה מספר 27 שנכתבה על ידי Benjamin Willard שמתחילה ב "לכל מי שזה נראה הגיוני ללמד..."

ציטוט:
במקור נכתב על ידי Benjamin Willard
לכל מי שזה נראה הגיוני ללמד קורס מבוא ב C ....
או יותר גרוע c++

לכל מי שלא מפגר ומשתמש בקומפיילר לא מפגר אין בעיה כזאת. clang מזהיר על זה. מי שמשתמש בכל קומפיילר שהוא לא clang (ואין לו את ההצדקה שהוא מקמפל לפלפורמה נדירה שעבורה יש רק gcc backend או סיבה דומה שבגללה הוא צריך את ה-VC frontend וכד') יכול להאשים רק את עצמו.

קוד:
#include <cstdio> #include <new> int main() { int *pI = new(std::nothrow) int; if (pI = NULL) { printf("Hello!\n"); } delete pI; return 0; }

קוד:
7 : warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if (pI = NULL) { ~~~^~~~~~ 7 : note: place parentheses around the assignment to silence this warning if (pI = NULL) { ^ ( ) 7 : note: use '==' to turn this assignment into an equality comparison if (pI = NULL) { ^ == 1 warning generated.


גם אינטל מתריע, אגב:
קוד:
/tmp/gcc-explorer-compiler116021-36-9nxnah/example.cpp(7): warning #187: use of "=" where "==" may have been intended if (pI = NULL) { ^
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה(קרדיט למרשי)
אמר לה ינאי מלכא לדביתיה אל תתיראי מן הפרושין ולא ממי שאינן פרושין אלא מן הצבועין שדומין לפרושין שמעשיהן כמעשה זמרי ומבקשין שכר כפנחס

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #30  
ישן 22-01-2016, 09:00
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 29 שנכתבה על ידי Benjamin Willard שמתחילה ב "אתה צודק, אבל שים לב לתאריכים..."

יש אזהרה, אבל היא לא מאכילה בכפית שאולי בעצם התכוונת לשים שם שני סימני שווה:
קוד:
$ g++ -Wall bleh2.c -o bleh2 bleh2.c: In function 'int main()': bleh2.c:7:15: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (pI = NULL) {


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

אני משער שעכשיו יבוא פסטן ויגיד שצריך להגדיר את ה job ב Jenkins כך שיקמפל עם Werror- ...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #33  
ישן 22-01-2016, 09:58
צלמית המשתמש של Benjamin Willard
  משתמש זכר Benjamin Willard Benjamin Willard אינו מחובר  
 
חבר מתאריך: 25.04.11
הודעות: 9,931
בתגובה להודעה מספר 32 שנכתבה על ידי שימי שמתחילה ב "אני כנראה מכיר הרבה אנשים לא..."

מה אתה רוצה?

אני בעד מה שהצעת! כל מי שכותב ככה, וזה עוזר לו, בכיף.

אני רק אומר:
1. זה לא טבעי לדבר ככה. רוב האנשים מדברים נושא-נשוא-מושא (לא הפוך), ולכן קשה לזכור את זה...
2. זה לא רלוונטי לחלק גדול (רוב?) ההשוואות. וגם יש לולאות while וכאלה...

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

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

לגבי טסטים...
Unit tests מיועדים בדיוק לדברים כאלה...
אם כתבת טסטים נורמאליים, ביחוד אם השקעת בבדיקות אינטגרציה, ופספסת דבר כזה, אז כנראה יש בעיה בקוד (זה יכול להיות גם תנאי מיותר או unreachable code), אבל זה לא באג פונקציונלי, ולא שווה להתעסק איתו.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #34  
ישן 22-01-2016, 10:09
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 33 שנכתבה על ידי Benjamin Willard שמתחילה ב "מה אתה רוצה? [B]אני בעד מה..."

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

אני בעד שכולם יכתבו ככה בין אם הם חושבים שזה עוזר להם ובין אם לאו...

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

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

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #35  
ישן 23-01-2016, 23:54
צלמית המשתמש של פסטן
  פסטן פסטן אינו מחובר  
 
חבר מתאריך: 14.12.09
הודעות: 9,751
בתגובה להודעה מספר 30 שנכתבה על ידי שימי שמתחילה ב "יש אזהרה, אבל היא לא מאכילה..."

ציטוט:
במקור נכתב על ידי שימי
יש אזהרה, אבל היא לא מאכילה בכפית שאולי בעצם התכוונת לשים שם שני סימני שווה:
קוד:
$ g++ -Wall bleh2.c -o bleh2 bleh2.c: In function 'int main()': bleh2.c:7:15: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (pI = NULL) {

אדוני שם פה Wall. אני לא צריך Wall ב-clang כדי שיגיד לי שהקוד ההוא בעייתי:

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

אתה מוזמן לנסות בעצמך פה: http://gcc.godbolt.org

ציטוט:
במקור נכתב על ידי שימי
בכל מקרה, זו עדיין אזהרה. שיהיה בהצלחה בעולם האמיתי, היכן שאתה דוחף commit ל git, ה jenkins עושה בילד כמה דקות אחר כך, והקוד הנפלא של פסטן נכנס למוצר (כי מי קורא לוגים של jenkins?). בשיטה שהצעתי, הבילד ייפול, ומי שעשה את ה commit הזה מקבל מיד מייל שאומר לו שיש לו בעייה באחד המקשים במקלדת שלא נלחץ טוב.
בעולם האמיתי זה שעשית push לא אומר שזה נכנס למוצר. זה אפילו לא אומר שבונים את זה. בונים רק branch-ים מסוימים, ונהוג גם לבדוק אותם לפני שהופכים אותם למוצר.

ציטוט:
במקור נכתב על ידי שימי
אני משער שעכשיו יבוא פסטן ויגיד שצריך להגדיר את ה job ב Jenkins כך שיקמפל עם Werror- ...
אני משער שההשערות שלך מוצלחות כמו שיטות התכנות שלך...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה(קרדיט למרשי)
אמר לה ינאי מלכא לדביתיה אל תתיראי מן הפרושין ולא ממי שאינן פרושין אלא מן הצבועין שדומין לפרושין שמעשיהן כמעשה זמרי ומבקשין שכר כפנחס

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #36  
ישן 24-01-2016, 00:06
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 35 שנכתבה על ידי פסטן שמתחילה ב "[QUOTE=שימי]יש אזהרה, אבל היא..."

כן, קומפיילרים שונים עושים דברים שונים.

שמתי שם Wall- כי אני תמיד מקמפל עם Wall- זה יוצא לי אוטומטית מהאצבעות אחרי שאני מקליד gcc או ++g.

אין, אני פשוט מציע שתלך לעבוד במיקרוסופט ומהר! הם ישלמו לך מליון דולר בחודש, כי אתה מצליח ליצור קוד שהבאגים שלו תמיד מתגלים בשלב ה QA! אלא אם כן אתה טוען שלמיקרוסופט אין מחלקת QA. חמור מאוד הטענות שלך. כך או כך, הם ישמחו לקבל אותך כעובד (אפילו שאתה משתמש במק המתחרה) בעולם האמיתי, ואז סוף סוף אפשר יהיה להוציא Windows פסטן Edition, מערכת שתהיה יציבה לפחות כמו לינוקס! בעצם יותר, כי הרי בלינוקס יש באגים שעוברים לא רק דרך code review/signoff אלא אפילו דרך מליוני משתמשים (!) מבלי להתגלות - ואילו בקוד של פסטן - לא.

כן, נכון, אם זה ב private branch אז לא בהכרח יעשו לזה בילד. בסדר נודניק, בשבילך נוסיף שלב "אחרי שעושים merge ל trunk" - ולמה שלא נעשה, הקוד הרי לא נפל בגלל ששגיאות מהסוג הזה לא תמיד יוצרות תקלה ולא נדיר למצוא לוג של בילד בגודל של מספר MB בפרוייקטים גדולים. כאילו שלא הבנת שעל זה מדובר.

אלו הן לא שיטות התכנות שלי, אלא איך שאני רואה שמתכנתים (אחרים) עובדים. אני מן הסתם כן משתדל להיות בסדר, אבל אני מודע לזה שיש אחרים שלא מתים על קריאת warnings. עולם אמיתי וזה. אני בטוח שגם לך Postel's Law עבר פעם ליד האוזן.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #41  
ישן 26-01-2016, 11:25
צלמית המשתמש של קוביבי
  משתמש זכר קוביבי קוביבי אינו מחובר  
מנהל פורום מערכות הפעלה - הרובע המייקרוסופטי.
 
חבר מתאריך: 07.10.04
הודעות: 13,777
LinkedIn profile
בתגובה להודעה מספר 40 שנכתבה על ידי שימי שמתחילה ב "לי? שום דבר, המוצרים שלהם..."

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #42  
ישן 26-01-2016, 11:35
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 41 שנכתבה על ידי קוביבי שמתחילה ב "נו באמת... חוזרים לזה? גם..."

לא ידוע לי שלמערכת ההפעלה שבה אני משתמש יש אנטי וירוסים. גם אינני חושב שיצא לי לראות וירוס (כנראה שכדי שדבר כזה יקרה, צריך משהו כזה: http://forumsgallery.tapuz.co.il/Fo...llery_46292.jpg - או באג חמור יחסית - שבשנייה שידעו על קיומו - תוך יום יהיה תיקון. אלו באגים, לא fundamental design flaws. יש הבדל...)

אשר ל"היה להם זמן" - קונספט יפה - אני לא בטוח שהבנתי נכון - אתה טוען שברגע שיוצאת גירסה חדשה של מערכת הפעלה - כל חברות התוכנה בעולם (מה עם אלה שפשטו בינתיים רגל?) - צריכות לעמוד דום - לעצור את כל הפיתוח, ולגלות איזה API-ים מיקרוסופט שברה הפעם? אתה יודע מה ההגדרה של API שמיועד למשתמשי קצה? מה זה API Versioning?

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

יש הבדל "קטן" בין מערכת הפעלה לבין מוצר ספציפי שאתה משתמש בו - קודם כל - זה שהוא "קוד פתוח" לא אומר שהמתכנתים שלו טובים[*] (מי יודע כמה פעמים אמרתי באשכול הזה - לא להניח שמתכנתים אחרים הם טובים!). אם אתה "מפיל" את זה על "עולם" הקוד הפתוח, אז אתה חייב, באותה צורה, עבור כל בעייה שיש בכל מוצר סגור באשר הוא להגיד שכל עולם הקוד הסגור הוא אותו דבר. יש לי הרגשה שלא תעשה זאת, נכון? אז אנא ממך, בלי הכללות.

דיברנו על מערכות הפעלה. והאמת היא שלא ממש זכור לי בהסטוריה הקצרה שלי עם לינוקס (מתקרב ל 20 שנה) שיש תוכנה שאני נוהג להשתמש בה ויום אחד נאלצתי להפסיק להשתמש בה... אבל אולי אני מזדקן וזוכר רק דברים שקרו בחצי שנה האחרונה - כששדרגתי לאנשים מ 7 ל 10.

נ.ב. אם יש לך אפשרות להשתמש במשהו מבוסס פיית'ון מול משהו שלא - אני ממליץ לך לבחור במשהו שלא. כנ"ל ג'אווה. הם בהגדרה שוברים תאימות אחורנית - וזה לא ממש קשור להיות הקוד פתוח או לא... (ג'אווה של אורקל זה לא קוד פתוח, נכון? אתה יודע כמה דברים נשברו מ 1.6 ל 1.7, ואז שוב מ 1.7 ל 1.8?)

[*] אתה יכול להגיד שמוצר קוד פתוח שהוא מאוד פופולארי - יש עליו הרבה עיניים, ולכן הסבירות לבאגים פונקציונליים חמורים היא נמוכה למדי, וכך גם לבאגי אבטחה. העובדה שכל מה שרץ היום על הענן משתמש במוצרים כאלה, למרות שמדובר בחברות שיש להן את הכסף לקנות מוצרים מסחריים, היא כנראה הראייה הטובה ביותר לכך... שאתה רוצה מערכת אמינה, אתה הולך היום ללינוקס.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #43  
ישן 27-01-2016, 19:07
צלמית המשתמש של קוביבי
  משתמש זכר קוביבי קוביבי אינו מחובר  
מנהל פורום מערכות הפעלה - הרובע המייקרוסופטי.
 
חבר מתאריך: 07.10.04
הודעות: 13,777
LinkedIn profile
בתגובה להודעה מספר 42 שנכתבה על ידי שימי שמתחילה ב "לא ידוע לי שלמערכת ההפעלה שבה..."

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

אם היה להם זמן להוציא תיקון כשלקוחות התלוננו, אז למה לא היה להם זמן להוציא תיקון בתקופת הזמן שלפני? ואתה אומר שאני עושה הכללות?
כן, אני יודע מה זה api למשתמשי קצה ומה זה api versioning, ובכול מקרה - מה שנשבר *כנראה* לא היה אחד מהדברים האלו כי ה .net לא השתנה, וגם מרבית הAPIים של מערכת ההפעלה לא (כי עובדה שאלפי תוכנות אחרות כן רצות כמו שהן רצו על ויסטא ו-7, זה לא אומר שלא צריך לעשות להן עדכונים, אני מקווה שאתה יודע שעדיין חייב לעדכן אותן)

כמה גירסאות ספרייה? כמו java ו ,net שמריצות כמה גרסאות ספרייה במקביל? אני לא מבין את הטענה שלך.

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

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

תודה על הטיפ, אנצל אותו כשאמצא חלופה חזקה מספיק לכלים שאני משתמש בהם, לצערי אין עדיין.
[*] אני לא יכול להגיד גם את זה, אין קוד בלי באגים - אתה יודע את זה טוב כמו כולם פה, העובדה היא שבהאקאטון הלפני אחרון (או זה שלפניו) לא פרצו שום מערכת הפעלה עד שהתקינו תוכנות צד 3 (flash + java), וגם אז חלונות לא הייתה הראשונה ליפול, לגבי השרתים שמריצים לינוקס - הם יותר וותיקים מחלונות, זולים יותר, יש יותר אנשים שמכירים את הכלים שלהם וחברות גדולות בתחום הוירטואליזציה תומכות בהם יותר, ברור שיהיה להם כוח על חלונות, זה לא בהכרח אומר שהן טובות יותר כמו מספיק דוגמאות ל-2 הכיוונים שתוכל להוציא.

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #44  
ישן 27-01-2016, 22:18
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 43 שנכתבה על ידי קוביבי שמתחילה ב "קיימים גם קיימים אנטי..."

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

האם עם יד על הלב אתה יכול להגיד שאין לך מזיקים בחלונות? יש לך איזושהי דרך לדעת את זה בוודאות? (לפני שתשאל - כן - במערכות אחרות אפשר בקלות...)

נראה לי שלא הבנת, או שאולי אתה לא רוצה להבין. שחברה מוציאה מוצר חדש, משאירה אותו עם אותו שם, וטוענת שהוא "שדרוג", הציפיה של המשתמשים הוא שדברים ימשיכו לעבוד. כשזה לא המצב, זה אומר ששברו משהו. כששוברים, יש סבירות גבוהה שיודעים שעושים את זה - אתה משנה ממשק כלשהו - יכול להיות שמישהו משתמש בו! גם אם לא חשבת שיש מישהו שעושה את זה - אין דרך להבטיח את זה. לכן, אם אתה *חייב* לתמוך במשהו אחר ש"דורש שינוי", אפשר לעשות פתרון "עוקף", ממשק חדש, לממש מחדש באמצעות מתודה חדשה מה שצריך, עד איזה רמה שצריך, ולהשתמש במתודה החדשה. שברת את הישנה? משהו, איפשהו, ישבר. ברגע שאתה עושה החלטה מודעת לעשות דבר כזה, אתה בעצם אומר: "לא ממש איכפת לי מהמשתמשים שלי. שחברות אחרות ישברו עכשיו את הראש מה אנחנו שינינו ועל איזה מקרי קצה זה משפיע / כמה נדפקים הביצועים של המערכת - זו בעייה שלהם שהם השתמשו בקוד שלנו...". ואם יצרן התוכנה/חומרה כבר לא קיים? אה, מה הבעייה, שמשתמש הקצה יקנה תוכנה/חומרה חדשה רק כי הוא "שדרג"... (האם שמשהו עובד פחות טוב זה נחשב "שדרוג"? מעניין.)

זה שחברה מסויימת עושה את הביזנס שלה מלמכור מוצרים דווקא למערכת ההפעלה שלך בגלל שהיא השולטת בשוק (בצדק או שלא כל כך...) - לא אומר שהיא חייבת לך משהו. אתה ממשיך למכור את המערכת בשם "חלונות", ואנשים מצפים שדברים ימשיכו לעבוד. אם אתה מתכנן את זה אחרת, שים אזהרה על האריזה: "שים לב! ייתכן שתוכנות/התקנים מסויימים שיש ברשותך היום יפסיקו לעבוד! אנא וודא מראש שאתה מוכן להחליף כל חומרה/תוכנה [על חשבונך] כשאתה קונה מוצר זה! ולא, אנחנו לא יכולים לספק רשימה של דברים שיפסיקו לעבוד, כי אין לנו מושג..."

אני לא אמרתי בשום מקום שכל ה API-ים ישתנו. ברור שזה לא מה שקרה. אם זה היה קורה, זו כבר לא הייתה חלונות, שום דבר לא היה רץ, ומיקרוסופט לא הייתה יכולה להוציא את הגירסה בכלל. חלק, אולי אפילו מאוד קטן (מה שגורם לך לתהות למה לא השקיעו בבניין v2 של ה API במקום לשבור את v1, אם אין הרבה כאלה) הוא זה שנשבר, וגרם לזה שלא מעט תוכנות נאלצו אחר כך להוציא גירסה חדשה ולכתוב "NOW compatible with Windows 10"...

אני לא יכול להסביר "כמה גירסאות ספריה" יותר טוב מ"כמה גירסאות ספריה". ספריה אחת שמותקנת בכמה גירסאות - כל אחת עם API משלה, עובדות במקביל, ולא שוברות תוכנות, כל תוכנה יכולה להשתמש במה שהיא רוצה (או ליתר דיוק, במה שהיא לונקג'ה מולו)
קוד:
$ locate libssl | grep .so. /usr/lib32/libssl.so.1.0.0 /usr/lib32/libssl.so.0.9.8 /usr/lib64/libssl.so.1.0.0


אז אל תדבר. לא נפלתי על חלונות. בסה"כ שלחתי את פסטן, שמטרתו (יחד עם חברו בנג'מין) כאן בפורום להציק לי (סתם, לא רק לי, לכולם), שטוען ליכולת ליצור קוד מושלם שכזה שאם הוא עבר את הבילד בלי בעיות, אז הכל בסדר, לחברה שיש לה המון משאבים כלכליים ובכל זאת לא מצליחה כבר 20 שנה לעשות מערכת שעובדת בצורה אמינה לאורך זמן (בסדר, אצלך זה עובד מעולה. הבנתי.). אם לא הבנת את הרעיון מאחורי זה, הוא בא לומר שכנראה יש דברים שבכל זאת לא נתפסים גם אם תדליק את כל האזהרות, תהפוך כל אזהרה לפטאלית, תעשה UT ותעשה QA ידני ואוטומטי, גם אם יש, כביכול, coverage של 100% - שהרי זה לא באמת מכסה כל E2E אפשרי. ולכן כל הטיעון אינו שווה את הפורום שהוא כתוב עליו.

אני לא אמרתי שאין קוד בלי באגים, למעשה, אני אשכול שלם מנסה לומר שאי אפשר להמנע מזה - לא ברור לי איך הבנת ההפך. שרתי לינוקס יותר ותיקים מחלונות זו בהחלט טענה מעניינת. כיוון שאני זוכר את ההתחלה של שתיהן (חלונות NT Server ולינוקס), אני יודע שזה לא בדיוק נכון. NT Server יצאה כמערכת שלמה ב 27 ליולי 1993. הפצות הלינוקס הראשונות אמנם התחילו ב 1992, אבל להגיד שמישהו השתמש בהן אז לדברים רציניים בכמות משמעותית, זה... לא בדיוק נכון. לינוקס לא תמכה ב SMP עד 1996 (!). ת'אכלס, NT Server הייתה עדיפה מבחינת רוב האנשים, בגלל שהם כבר הכירו את חלונות ועבדו שם הדברים שהם הכירו (ת'אכלס, אותה סיבה עיקרית שבגללה אנשים משתמשים במערכת הזו עד היום). אממה, קצב ההתקדמות של שתיהן לא היה בדיוק אותו דבר, והמגבלות, התקלות, הוירוסים, ה malware, וכל שאר הרעות החולות בסוף ניצחו את אנשי הסיסטם הטובים ביותר (לא אותך, אני יודע ), והם החליטו לעבור למערכת שנותנת קצת יותר שקט נפשי, ומאפשרת לך לעבוד, במקום לעבוד נגדך. על הביצועים אין מה להרחיב. אם בכל זאת תרצה הרחבה, אני מקווה שהטבלה הקצרצרה הזו תספק אותה: https://en.wikipedia.org/wiki/Linux...#Supercomputers - אם לא, אני חסר מילים.

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

ולבסוף, אם ממש כואב לך לראות את המילה "מיקרוסופט" מוזכרת בהודעות של מאן דהוא, אני יכול לעזור לך לכתוב סקריפט greasemonkey שיסיר את המילה הזו מכל תוכן שאתה קורא...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #50  
ישן 25-01-2016, 11:21
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 49 שנכתבה על ידי Benjamin Willard שמתחילה ב "1. Unit testing זה לא qa, אלא..."

1. באמת? ואני חשבתי שאנשי QA מריצים unit testing! (איפה אמרתי ש UT זה QA?)

2. אז אתה שוב מחזק את הטענה שעדיף לכתוב קוד שיכשל בכוח אם פספסת... לא?

3. אני מסכים שחלונות 10 יציבה יחסית (אם כי לפעמים מתנהגת בצורה מאוד מוזרה בכל הקשור ל start menu. מהמר שזה קשור ל Cortana) - לא יודע אם יותר מ 7 (ואל תזכיר את 8, פליז!) - אבל העובדה שתכנון המערכת הוא fundamentally flawed מכל כך הרבה אספקטים, לא השתנתה, מן הסתם. הרבה יותר דברים היו צריכים להישבר אם היו עושים את זה (ולא רק אנטי וירוסים למיניהם שמחטטים בקרנל...)

4. נחתה עלי מוזה של אנשי object oriented :-)
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 01:20

הדף נוצר ב 0.11 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר