Ουρά καλώντας σε Java και C #;




Διάβαζα για Clojure και βρήκε μια συζήτηση για Java δεν υποστηρίζουν κλήσεις ουράς, στην τρέχουσα έκδοση, και ότι οι άνθρωποι ρίχνουν εξαιρέσεις για την προσομοίωση ουρά καλώντας στο JVM, ούτως ή άλλως ακούγεται σαν άνθρωποι κάνουν κάποια τρελά πράγματα εκεί έξω. Έτσι, αυτό με πήρε αναρωτιούνται για την ουρά κλήση C # 's, ίδια θέματα;
Κωδικός CLR θα καλέσει την ουρά σε ορισμένες περιπτώσεις, αλλά όχι τους άλλους - αυτό εξαρτάται από την ΚΟΕ.


Δείτε [την είσοδο blog David Broman του](http://blogs.msdn.com/davbr/pages/tail-call-jit-conditions.aspx) και [ένα Shri Borde είναι](http://blogs.msdn.com/shrib/archive/2005/01/25/360370.aspx) πάρα πολύ.


Η C # compiler δεν εκπέμπει σήμερα ουρά IL κλήση, αλλά μερικές φορές η ΚΟΕ θα το κάνει ούτως ή άλλως.
<p>το <strong>server</strong> (που αποστέλλεται το αίτημα post) πρέπει να περιλαμβάνει την κεφαλίδα <code>access-control-allow-headers</code> (κλπ) <strong>στην απάντησή του</strong>. η τοποθέτησή τους στο αίτημά σας από τον πελάτη δεν έχει καμία επίδραση.</p><p>αυτό οφείλεται στο γεγονός ότι εναπόκειται στον διακομιστή να καθορίσει ότι δέχεται αιτήσεις διασταυρούμενης προέλευσης (και ότι επιτρέπει την κεφαλίδα <code>content-type</code> αίτησης και ούτω καθεξής) - ο πελάτης δεν μπορεί να αποφασίσει για τον εαυτό του ότι ένας δεδομένος διακομιστής πρέπει να επιτρέπει την cors.</p> Από τα περαιτέρω σχόλια που έγιναν από τον συγγραφέα, που ψάχνουν για ένα Node.js ORM που λειτουργεί με δύο οδηγούς MySQL και Oracle.


Εκεί δεν φαίνεται να είναι πολλά ΝΤΥΠΑ που ταιριάζει η περιγραφή και είναι επίσης υποστηρίζονται (προειδοποίηση - βασίζονται αποκλειστικά σε λίγες αναζητήσεις του Google).


Υπάρχει μία διαπίστωσα ότι ταιριάζει με την περιγραφή αν και ακόμα φαίνεται να υποστηρίζεται ενεργά και ότι είναι knex (βλ <https://knexjs.org> ). [εικόνα] petrosmpam:

πιθανολογώ οτι φταίει το nemo άρα.

τώρα που το λες έχω ξανακούσει παλιότερα για προβλήματα στις αντιγραφές με τον nemo (δεν είχα εγώ τέτοια για τον απλό λόγο ότι δεν χρησιμοποιώ mint/cinnamon/nemo). αν υπάρχει τέτοιο bug η κοινότητα τού mint/cinnamon θα έπρεπε να το έχει … το πρόβλημα μάλλον είναι ότι δεν κλείνει ουσιαστικά η εφαρμογή. είχα παρόμοιο θέμα πριν αρκετό καιρό(νομίζω κάποια στιγμή είχα απαντήσει εδώ σε ανάλογο θέμα). αυτό που έκανα εγώ και διόρθωσε το πρόβλημα ήταν η τροποποίηση της συντόμευσης για το άνοιγμα της εφαρμογής και η αλλαγή της γραμμής που ανοί… Όταν άρχισα με `$ nohup storm dev-zookeper`,


**Μέθοδος1:** χρήση `jobs`,



```
[[email protected]](/cdn-cgi/l/email-protection):/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &

```

**Method2:**  **χρησιμοποιώντας `ps`την εντολή.** 



```
$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv] 

```

Στήλη TTY με `?`=> `nohup`προγράμματα που εκτελούνται.


**Περιγραφή**


* στήλη TTY = το τερματικό συνδέεται με τη διαδικασία
* στήλη STAT = κατάσταση μιας διαδικασίας
	+ S = διακοπτόμενη ύπνου (αναμονή για ένα γεγονός για να ολοκληρωθεί)
	+ l = είναι multi-threaded (χρησιμοποιώντας CLONE\_THREAD, όπως NPTL Pthreads κάνουμε)


**Αναφορά**


`$ man ps` # Στη συνέχεια αναζήτηση `/PROCESS STATE CODES` παίζει να έχεις κανένα firewall rule που να σε κόβει; Καλησπέρα. 
Νομίζω οτι το "speaking" υποστηρίζεται μόνο στην εφαρμογή. Καταλήγω σε αυτο επειδή και εγώ τις περισσότερες φορες εξασκούμαι on line στο [duolingo.com](http://duolingo.com) δεν έχω συναντήσει κανένα παράδειγμα ομιλίας. Επίσης άλλες επιλογές έχεις όταν κάνεις είσοδο από pc και άλλες απο το τηλέφωνο.
Τσεκαρισε το. <p>είχα το ίδιο πρόβλημα χρησιμοποιώντας asp.net mvc και <a href="http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/">βρήκα τη λύση εδώ</a> </p><blockquote> <p>υπάρχει μεγάλη σύγχυση μεταξύ των νεοεισερχομένων στο <strong> angularjs </strong> για το γιατί οι <code>$http</code> λειτουργίες στενογραφίας της υπηρεσίας (<code>$http.post()</code>, κλπ.) δεν φαίνονται να είναι εναλλάξιμες με το <strong> ισοδύναμα jquery </strong> (<code>jquery.post()</code>, κ.λπ.)</p> <p>η διαφορά είναι στον τρόπο <strong> jquery </strong> και <strong> angularjs </strong> σειριοποίηση και μετάδοση των δεδομένων. βασικά, το πρόβλημα έγκειται στη γλώσσα του server σας που δεν είναι σε θέση να καταλάβει τη μετάδοση του angularjs με εγγενή ... από προεπιλογή, <strong> jquery </strong> μεταδίδει δεδομένα χρησιμοποιώντας</p> <pre><code>content-type: x-www-form-urlencoded </code></pre> <p>και την εξοικειωμένη σειριοποίηση <code>foo=bar&amp;baz=moe</code>.</p> <p><strong> το angularjs </strong>, ωστόσο, μεταδίδει δεδομένα χρησιμοποιώντας</p> <pre><code>content-type: application/json </code></pre> <p>και <code>{ "foo": "bar", "baz": "moe" }</code></p> <p>η σειριοποίηση json, η οποία, δυστυχώς, μερικές γλώσσες διακομιστή web - <em> και συγκεκριμένα η php </em> - δεν απομακρύνονται εγγενώς.</p> </blockquote><p>δουλεύει άψογα.</p><p><b>κωδικας</b></p><pre><code>// your app's root module... angular.module('mymodule', [], function($httpprovider) { // use x-www-form-urlencoded content-type $httpprovider.defaults.headers.post['content-type'] = 'application/x-www-form-urlencoded;charset=utf-8'; /** * the workhorse; converts an object to x-www-form-urlencoded serialization. * @param {object} obj * @return {string} */ var param = function(obj) { var query = '', name, value, fullsubname, subname, subvalue, innerobj, i; for(name in obj) { value = obj[name]; if(value instanceof array) { for(i=0; i&lt;value.length; ++i) { subvalue = value[i]; fullsubname = name + '[' + i + ']'; innerobj = {}; innerobj[fullsubname] = subvalue; query += param(innerobj) + '&amp;'; } } else if(value instanceof object) { for(subname in value) { subvalue = value[subname]; fullsubname = name + '[' + subname + ']'; innerobj = {}; innerobj[fullsubname] = subvalue; query += param(innerobj) + '&amp;'; } } else if(value !== undefined &amp;&amp; value !== null) query += encodeuricomponent(name) + '=' + encodeuricomponent(value) + '&amp;'; } return query.length ? query.substr(0, query.length - 1) : query; }; // override $http service's default transformrequest $httpprovider.defaults.transformrequest = [function(data) { return angular.isobject(data) &amp;&amp; string(data) !== '[object file]' ? param(data) : data; }]; }); </code></pre> Η προτιμώμενη μέθοδος είναι να χρησιμοποιήσετε πραγματικά την ιδιότητα υπό όρους για να τυλίξει τις κλήσεις εντοπισμού σφαλμάτων σας, μην χρησιμοποιήσετε τις οδηγίες μεταγλωττιστή. #ifs μπορεί να πάρει δύσκολες και μπορεί να οδηγήσει σε περίεργα προβλήματα κατασκευής.


Ένα παράδειγμα της χρήσης ενός υπό όρους χαρακτηριστικό είναι η εξής (σε C #, αλλά λειτουργεί σε VB.NET πολύ):



```
[ Conditional("Debug") ]
private void WriteDebug(string debugString)
{
  // do stuff
}

```

Κατά τη μεταγλώττιση, χωρίς το σετ σημαία DEBUG, κάθε κλήση προς WriteDebug θα καταργηθούν όπως υποτίθεται συνέβαινε με Debug.Write (). Το πρόβλημα προκλήθηκε λόγω των ειδικών χαρακτήρων. Δεν είχα φανταστεί ότι «$» θα ήταν μια τέτοια μεγάλη υπόθεση σε κωδικούς πρόσβασης. Τέλος πάντων μπορείτε να βρείτε μια λύση για αυτό [εδώ](https://nadvi.blogspot.com/2011/02/oracle-password-with-or-special.html) .