2009-01-10 6 views
10

मैं सिर्फ आपके और आपके अंतिम समाधान के बीच मिली सभी छोटी समस्याओं को जानना चाहता हूं जब आप एरलांग के लिए नए थे।एरलांग सीखना? स्पीडबंप थ्रेड, सामान्य, छोटी समस्याएं

  1. उपयोग controlling_process (सॉकेट, पीआईडी) यदि आप एक से अधिक थ्रेड में बंद अंडे: उदाहरण के लिए

    , यहाँ पहली बार द स्पीडबंप्स मैं था कर रहे हैं। दाहिने धागे पर दायां पैकेट।

  2. आप किसी अन्य सर्वर से बात करना शुरू करने जा रहे हैं? Net_adm को याद रखें: पिंग ('कार @ बीएसडी-सर्वर')। खोल में अन्यथा कोई संचार नहीं होगा।
  3. टाइमर: नींद (10), अगर आप कुछ भी नहीं करना चाहते हैं। डिबगिंग करते समय हमेशा उपयोगी।
+0

अच्छा सवाल जो, लेकिन आपको या तो जवाब के रूप में आपकी प्रतिक्रियाएं होनी चाहिए या दोनों को अपने प्रश्न में नहीं रखना चाहिए। पसंदीदा रूप से, वे जवाब होना चाहिए। – ryeguy

उत्तर

1

controlling_process()

उपयोग controlling_process (सॉकेट, पीआईडी) यदि आप एक से अधिक थ्रेड में बंद अंडे। दाहिने धागे पर दायां पैकेट।

1

net_adm: पिंग()

आप किसी अन्य सर्वर से बात कर रही शुरू करने के लिए जा रहे हैं? Net_adm को याद रखें: पिंग ('कार @ बीएसडी-सर्वर')। खोल में अन्यथा कोई संचार नहीं होगा।

0

टाइमर: नींद() एक्स एमएस के लिए

रोकें।

0

जिस चीज ने मुझे अपना सिर पाने के लिए सबसे अधिक समय लगाया, वह केवल मेरे कोड को पूरी तरह से फ़ंक्शन कॉल और संदेश पास करने के बारे में सोचने का विचार था। बाकी बाकी या तो वहां से बाहर निकल गए (स्पॉन्गिंग, रिमोट नोड्स) या किसी भी नई भाषा (वाक्यविन्यास, stdlib) में सीखने के लिए सामान्य सामान की तरह महसूस किया।

2

इसे एमएसवीसी 6 में एकीकृत करना, इसलिए मैं संपादक का उपयोग कर सकता हूं, और आउटपुट विंडो में परिणाम देख सकता हूं। + Debug_info $ (फ़ाइल का नाम) $ (FileExt)

प्रारंभिक निर्देशिका - - $ (

तर्क erlc करने के लिए पथ -

मैं

आदेश के साथ एक उपकरण बनाया, fileDir)

चेक आउटपुट विंडो का उपयोग करें।

5
  • लर्निंग मानक प्रलेखन

    ब्राउज़ करने के लिए एक बार जब आप सीखें कि कैसे OTP प्रलेखन आयोजित किया जाता है यह आप के लिए क्या देख रहे हैं खोजने के लिए बहुत आसान हो जाता है (यदि आप को जानने के लिए जो आवेदन पत्र जो मॉड्यूल प्रदान करते हैं की जरूरत के लिए करते हैं या मॉड्यूल के प्रकार)।

    इसके अलावा सिर्फ ब्राउज़ कर अनुप्रयोगों के लिए प्रलेखन अक्सर काफी फायदेमंद है - मैं वास्तव में उपयोगी कोड इस तरह के बहुत सारे की खोज की है - sys, dbg, toolbar, आदि

  • खोल erlang और मॉड्यूल erlang के बीच का अंतर

    शैल erlang erlang मॉड्यूल एक अलग बोली है। आप मॉड्यूल फ़ंक्शन (केवल मज़ेदार) को परिभाषित नहीं कर सकते हैं, आपको रिकॉर्ड्स (rr/1) के साथ काम करने के लिए रिकॉर्ड परिभाषाएं लोड करने की आवश्यकता है। अनाम कार्यों के संदर्भ में एरलांग कोड लिखना सीखना कुछ मुश्किल है, लेकिन रिमोट शैल के साथ उत्पादन प्रणालियों पर काम करने के लिए आवश्यक है।

    खोल और {स्टार्ट, स्पॉन} _ लिंक एड प्रक्रियाओं के बीच बातचीत सीखना - जब आप कुछ शेल कोड चलाते हैं जो क्रैश (अपवाद उठाता है) चलाता है, तो खोल प्रक्रिया निकलती है और आपके द्वारा लिंक की गई किसी भी चीज़ से निकास संकेतों को प्रसारित करेगी। यह बदले में उस नए gen_server को बंद कर देगा जिस पर आप काम कर रहे हैं। ("क्यों अपने सर्वर प्रक्रिया गायब रखता है?")

  • erlang भाव और गार्ड भाव के बीच का अंतर

    गार्ड भाव (जब खंड) Erlang भाव नहीं हैं। वे समान दिख सकते हैं, लेकिन वे काफी अलग हैं। गार्ड मनमाने ढंग से erlang कार्यों को कॉल नहीं कर सकते हैं, केवल गार्ड फ़ंक्शंस (length/1, प्रकार परीक्षण, element/2 और ओटीपी दस्तावेज़ में निर्दिष्ट कुछ अन्य)। गार्ड सफल होते हैं या असफल होते हैं और साइड इफेक्ट्स नहीं होते हैं। दूसरी ओर Erlang अभिव्यक्ति वे क्या कर सकते हैं कर सकते हैं।

  • कोड लोड हो रहा है

    बाहर कब और कैसे कोड उन्नयन काम काम करते हुए, जादू एक कॉलबैक मॉड्यूल (code:load(Mod), sys:suspend(Pid), sys:change_code(Pid, Mod, undefined, undefined), sys:resume(Pid).) के नवीनतम संस्करण में नवीनीकृत करने के लिए एक gen_server मिलता है।

    कोड सर्वर पथ (code:get_path/0) - मैं गिनती नहीं कर सकता कि कितनी बार मैं अपरिभाषित फ़ंक्शन त्रुटियों में भाग गया जो मुझे कोड खोज पथ में एक ईबिन निर्देशिका जोड़ने के लिए भूल गया।

  • बिल्डिंग erlang कोड

    emake (make:all/0 और erl -make) और GNU मेकअप का एक उपयोगी संयोजन बाहर कार्य करना (के बारे में तीन साल अब तक :) काफी समय ले लिया।

    मेरे वर्तमान पसंदीदा makefiles सही क्रम net_adm:ping/1 अन्य नोड के लिए सक्षम होने के लिए में http://github.com/archaelus/esmtp/tree/master

  • Erlang वितरण

    नोड नाम हो रही है, डीएनएस, कुकीज़ और सब आराम से देखा जा सकता है। यह अभ्यास लेता है।

  • रिमोट खोल आईओ पेचीदगियों

    group_leader()io:format के लिए कॉल पारित करने के लिए याद रखना ताकि उत्पादन रहस्यमय तरीके से गायब (की अपेक्षा अपनी खोल में प्रकट होता है दूरस्थ नोड पर चलने मुझे लगता है कि SASL रिपोर्ट ब्राउज़र rb अभी भी एक समस्या है जब एक दूरस्थ खोल कनेक्शन से अधिक प्रयोग किया जाता) गलत नोड के लिए इसके उत्पादन में से कुछ भेजने के साथ

2
  • डिबगिंग मुश्किल है। मुझे बस इतना करना है कि मेरे कोड में "error_logger: info_msg" पर कॉल करना है।
  • डॉक्स स्पॉटी रहे हैं - वे सही हैं, लेकिन बहुत ही कम है।
  • यह मेरी खुद की गलती है, लेकिन: मैंने ईनीट को समझने से पहले कोडिंग शुरू कर दी, इसलिए मेरे बहुत सारे कोड की तुलना में परीक्षण करना कठिन है।