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

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
צפריראורח · ·
 

הודעה פורסם: 03/11/2013 - 10:23
נושא ההודעה: Node.js

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

הודעה פורסם: 03/11/2013 - 11:24
נושא ההודעה:

נדמה לי שהסרטון הזה הפיל לי האסימון לגבי הזיפת החדש שהוכנס ל- yahoo mail , ושאילץ אותי לבטל javascript עם התוסף Noscript.

האם הבנתי נכון? Smile
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 03/11/2013 - 11:32
נושא ההודעה:

מה הקשר? Node.js מריץ את קוד ה־ג'אווהסקריפט על השרת. הדפדפן שלך לא חייב לתמוך בג'אווהסקריפט.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 03/11/2013 - 11:38
נושא ההודעה:

אז מה זה הזיפת החדש שהוכנס ליאהו? אין קשר Node.js?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 03/11/2013 - 13:20
נושא ההודעה:

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

הודעה פורסם: 03/11/2013 - 20:34
נושא ההודעה:

צפריר :
node.js מונע שימוש בג'אווהסקריפט רק באתרים גרמניים, ואילו דואר יאהו הוא אתר אמריקאי.


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

הודעה פורסם: 03/11/2013 - 21:23
נושא ההודעה:

elcuco :
צפריר :
node.js מונע שימוש בג'אווהסקריפט רק באתרים גרמניים, ואילו דואר יאהו הוא אתר אמריקאי.


הגיוני.

לפי המאמר לא רק אתרים גרמנים, גם חלק מרומניה ואסטוניה.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
confiqלא בפורום כעת ת.הצטרפות: 22/12/2007 · הודעות: 827 · מיקום: ♫♪♥♪♫
 

הודעה פורסם: 03/11/2013 - 22:28
נושא ההודעה:

איזה מאמר?
ניסיתי למצוא אותו פה...
ד"א, הסרטון שמבקר node.js הוא טיפשי כמו בן-אדם שיצר אותו...

_________________
Computers are incredibly fast, accurate and stupid. Human beings are incredibly slow, inaccurate and brilliant. Together they are powerful beyond imagination.
unknown --
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 03/11/2013 - 22:53
נושא ההודעה:

confiq :
איזה מאמר?
ניסיתי למצוא אותו פה...
ד"א, הסרטון שמבקר node.js הוא טיפשי כמו בן-אדם שיצר אותו...


זה כי אתה טועה לחלוטין. הינה הוכחה מוצקת לכך שגם אתה, גם node.js מפגרים.

http://www.youtube.com/watch?v=bzkRVzciAZg

לינוס צודק, ו־node.js מסובב את אפאצ'י על האצבע. כי זה נתן לי שליטה אסינכרונית על המחשב, ואפאצ'י זה דבר איטי, כי הוא סינכרוני. איטי כמו כלב. non-blocking זה הסוד שבעזרתו אתה עושה תוכנות מהר - ובלעדיו אתה כותב איטי.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 03/11/2013 - 23:15
נושא ההודעה:

זה טעות נפוצה, async לא אומר בהכרח מהירות גבוהה אלא concurrency גבוה.

כמובן ש-node לא המציאה את הגלגל, בפייתון יש twisted ו-tornado, ברובי (ושפות נוספות) יש את EventMachine וכו'.

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
2אורח · ·
 

הודעה פורסם: 03/11/2013 - 23:18
נושא ההודעה:

elcuco :
confiq :
איזה מאמר?
ניסיתי למצוא אותו פה...
ד"א, הסרטון שמבקר node.js הוא טיפשי כמו בן-אדם שיצר אותו...


זה כי אתה טועה לחלוטין. הינה הוכחה מוצקת לכך שגם אתה, גם node.js מפגרים.

http://www.youtube.com/watch?v=bzkRVzciAZg

לינוס צודק, ו־node.js מסובב את אפאצ'י על האצבע. כי זה נתן לי שליטה אסינכרונית על המחשב, ואפאצ'י זה דבר איטי, כי הוא סינכרוני. איטי כמו כלב. non-blocking זה הסוד שבעזרתו אתה עושה תוכנות מהר - ובלעדיו אתה כותב איטי.


לא יודע בדיוק איך זה הגיע הסיפור הזה של non-blocking אבל אם אני מבין נכון זה בדיוק להיפך. כלומר אם אתה עושה פעולה שתוקעת את ה- event loop אתה תוקע את כל שאר ה- events (למשל אם אתה עושה פעולה IO שלוקחת הרבה זמן). לעומת זאת שרת שמבוסס על threading יכול לעשות את זה ב- thread אחר ולא לתקוע את כל שאר הבקשות.

בקיצור (אלא אם לא הבנתי משהו) זה הפוך שרת מבוסס threads הוא non-blocking. אבל זה נכון גם לכל שאר השרתי שעובדים ככה למשל מישהו הזכיר פה טורנדו שמבוסס פיתון, אותה בעיה
http://stackoverflow.com/questions/3638844/is-tornado-really-non-blocking
אם אני לא טועה זה ככה עובד גם ב- rails.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
2אורח · ·
 

הודעה פורסם: 03/11/2013 - 23:22
נושא ההודעה:

ומה זה בדיוק אומר concurrency גבוה?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
confiqלא בפורום כעת ת.הצטרפות: 22/12/2007 · הודעות: 827 · מיקום: ♫♪♥♪♫
 

הודעה פורסם: 03/11/2013 - 23:23
נושא ההודעה:

אני כנראה לא מבין את סרקזם שלך...

הסרטון של הבחור קצת מוגזם. קודם כל js יכול להיות יותר מהיר משפות סקריפטיות אחרות בהרבה.
הוא יכול להיות יותר מהיר java EE וnode.js יכול להיות יותר מהיר מאפצ'י.

זו לא שפה שכדאי לזלזל בה כמו בחור החמוד.

_________________
Computers are incredibly fast, accurate and stupid. Human beings are incredibly slow, inaccurate and brilliant. Together they are powerful beyond imagination.
unknown --
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 03/11/2013 - 23:27
נושא ההודעה:

threads ו-non-blocking async או concurrency זה לא בדיוק אותו הדבר, אולי ההרצאה הבאה תעזור לך להבין:
http://vimeo.com/49718712

גם לגבי השאלה שהדבקת - הוא לא עבד נכון, יש מספר דרכים לעשות זאת לדוגמא: ל-psycopg יש תמיכה מובנית ב-async, יש את txpostgres, txmongo וכו', עבור tornado יש את mongotor, asyncmongo ו-Motor וכן הלאה.

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ik_5לא בפורום כעת ת.הצטרפות: 16/04/2002 · הודעות: 3027 · מיקום: ישראל
 

הודעה פורסם: 03/11/2013 - 23:36
נושא ההודעה:

mksoft :
threads ו-non-blocking async או concurrency זה לא בדיוק אותו הדבר, אולי ההרצאה הבאה תעזור לך להבין:
http://vimeo.com/49718712

גם לגבי השאלה שהדבקת - הוא לא עבד נכון, יש מספר דרכים לעשות זאת לדוגמא: ל-psycopg יש תמיכה מובנית ב-async, יש את txpostgres, txmongo וכו', עבור tornado יש את mongotor, asyncmongo ו-Motor וכן הלאה.


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

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

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

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

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

הודעה פורסם: 03/11/2013 - 23:43
נושא ההודעה:

ציטוט:

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


זה בדיוק הענין לא כל דבר ניתן לעשות בצורה אסינכרונית. לעומת זאת בשימוש ב- threading אתה יכול לעשות הכל בצורה אסינכרונית (וגם מקבילה). נניח למשל שאני רוצה להזרים קובץ מדיה גדול דרך השרת שלי בכל מקרה השרת non-blocking שלי יתקע את כל שאר הבקשות (אפילו שאף אחת מהן לא ממש קשורה להזרמה של הקובץ). בקיצור זה טוב במצבים מאוד מסויימים.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 03/11/2013 - 23:56
נושא ההודעה:

זה לא מדוייק, ב-node לדוגמא משתמשים ב-streams, ה-event loop לא חסום.

threads לא כל כך מתאימים לטיפול בבעיית C10K ומעלה ־ העלות שלהם גבוהה מאוד בהשוואה ל-event loop בודד (צריכת זכרון לדוגמא עבור stack של כל אחד מהם שלא קטן בברירת מחדל, סביר להניח שצריך לקסטם את max pids, max files, max user processes וכו').

שלא לדבר על כך ש-event loop מונע את כל החרא הכרוך בעבודה עם threads (סינכרוניזציה וכו') ־ במחיר של תכנות מסורבל כמובן ב-callbacks.

זו אחת הסיבות שאני פוזל לעבר Go, הצורה שהיא מטפלת בזה חוסכת את גועל ה-threads (כמו שהבנתם, אני לא אוהב אותם).

בכל מקרה, כדאי לצפות בהרצאה של רוב פייק שקישרתי למעלה, היא תסביר את ההבדל בצורה טובה.

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

הודעה פורסם: 04/11/2013 - 08:13
נושא ההודעה:

2 :
ציטוט:

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


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


להפך: לולאת אירועים עובדת היטב בדיוק במקרים דומים לאילו שתיארת: כשיש פעולות קלט/פלט. מה שיכול לתקוע אותה היא שימוש במשאב המוגבל שלה: המעבד.

כאשר הפעולה הארוכה חייבת להתבצע לפני פעולה אחרת מבצעים אותה, מקבלים בסיומה הודעה (call back) וממשיכים לרוץ משם. מי שדואג שהבקשה הזו לא תתקע בקשות אחרות היא מערכת ההפעלה (שמסתירה בתוכה טיפול בכל מיני בקשות במקביל. דרך אגב: במימושים מסויימים טיפול בבקשה אסינכרונית יוצר thread ברמת הקרנל: http://lwn.net/Articles/316806/ ).
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
2אורח · ·
 

הודעה פורסם: 04/11/2013 - 09:01
נושא ההודעה:

צפריר מה שאתה אומר בתאוריה נכון אבל לפחות בשרתים מבוססי פיתון ה- io.loop תוקע את כל הבקשות אם יש לו פעולת IO ארוכה לבצע. למעשה גם פעולת על sockets. לעומת זאת בשרתים מובססי thread כמו lighthttpd זה לא תוקע את השרת (בכל מקרה נראה שצריך שימוש ב- trhreads אם אתה עושה את זה בקרנל מה טוב).
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
2אורח · ·
 

הודעה פורסם: 04/11/2013 - 09:30
נושא ההודעה:

אישית אני גם לא מת על threads....
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 04/11/2013 - 16:11
נושא ההודעה:

2 :
צפריר מה שאתה אומר בתאוריה נכון אבל לפחות בשרתים מבוססי פיתון ה- io.loop תוקע את כל הבקשות אם יש לו פעולת IO ארוכה לבצע. למעשה גם פעולת על sockets. לעומת זאת בשרתים מובססי thread כמו lighthttpd זה לא תוקע את השרת (בכל מקרה נראה שצריך שימוש ב- trhreads אם אתה עושה את זה בקרנל מה טוב).


lighttpd הוא גם async ככל הזכור לי, single loop, single thread. צריך להבין שבהקפים גדולים ה־threads ומערכת ההפעלה עצמה הם הרבה פעמים הבעיה ולא הפתרון. אם רוצים להתעמק בנושא, יש מאמר מצויין בנושא:
The Secret to 10 Million Concurrent Connections -The Kernel is the Problem, Not the Solution

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [צפריר]
  2. אורח
  3. אורח [צפריר]
  4. אורח
  5. אורח [צפריר]
  6. elcuco
  7. אורח
  8. confiq
  9. elcuco
  10. mksoft
  11. אורח [2]
  12. אורח [2]
  13. confiq
  14. mksoft
  15. ik_5
  16. אורח [2]
  17. mksoft
  18. אורח [צפריר]
  19. אורח [2]
  20. אורח [2]
  21. mksoft