Προς το περιεχόμενο

alou

Members
  • ΜΗΝΥΜΑΤΑ FORUM

    623
  • ΜΕΛΟΣ

  • ΤΕΛ. ΕΠΙΣΚΕΨΗ

Σχετικά με alou

  • Ημερομηνία γέννησης 01/01/1915

Ιστοσελίδα

  • Website URL
    http://www.alou.gr

Πληροφορίες προφίλ

  • Φύλο
    Δεν το μαρτυρώ

Πρόσφατες Επισκέψεις

Η εμφάνιση επισκεπτών είναι απενεργοποιημένη ή δεν έχετε πρόσβαση σε αυτή.

alou's Achievements

  1. Εκτός από το ξεβράκωτο query όμως δεν μας είπες ποιο είναι το πρόβλημα? Δείξει όλο το script, τι περίμενες να πάρεις για αποτέλεσμα και τι έχεις? Αυτό δεν σώζει κάτι, αν η php δέχεται url params και τα περνάει αμάσητα στο query έχεις πρόβλημα, αν θες ανέβασέ το κάπου να παίξουμε
  2. Εξ'ορισμού, όχι. Η ασύγχρονη κλήση, θα στείλει ένα function στο queue που αναλογεί και το event loop, εφόσον δεν γίνεται κάτι στο main execution ή σε άλλο queue που προηγείται, θα την βάλει στο stack. Τώρα αν μεσολαβούν άλλα πράγματα μπορεί προφανώς να συμβεί οτιδήποτε. Γιατί ακριβώς θες να μικρύνεις το μέγεθος του stack? το πιθανότερο συμπέρασμα θα ήταν να αποφύγεις maximum call stack exceeded. Aν αυτός είναι ο λόγος, μια και το tail call optimisation υπάρχει μόνο στο σπεκ, ξέχασε το recursion ή ψάξε παραδείγματα με thunk / tramboline γιατί καμία ασύγχρονη λύση, είτε λέγεται nextTick, setTimeout, Promise.resolve ... δεν θα σου εξασφαλίσει κάτι τέτοιο. TCO: http://2ality.com/2015/06/tail-call-optimization.html Maximum call stack limit: http://2ality.com/2014/04/call-stack-size.html wtf is tramboline: http://raganwald.com/2013/03/28/trampolines-in-javascript.html
  3. Man μήπως απλά πρέπει να δεις τα indexes? just sayin... Στο θέμα, η εμπειρία και η τριβή με τέτοιου είδους σχεδιασμό, σταδιακά σου δίνει την ευχέρεια να λειτουργείς όλο και περισσότερο αφαιρετικά. Αυτό σημαίνει ότι θα φτιάξεις - με όποιο τρόπο, το χαρτί και το μολύβι για πολλούς είναι το καλύτερο σαν αρχή - ένα high level σχεδιάγραμμα με τα όποια λειτουργικά κομμάτια / layers / components / ... αποτελούν την εφαρμογή προσπαθώντας να οριοθετείς λειτουργία και όχι υλοποίηση, με ότι γνώσεις και εμπειρία έχεις. Και βέβαια while (true) learn from your mistakes, iterate, improve
  4. alou

    Ερωτημα σε sql

    Δεν χρειάζεται join, για αυτό που ζητάς όλη η πληροφορία είναι στο table που περιγράφεις. Η λογική είναι να γκρουπάρεις τις πωλήσεις ανά πελάτη, χρόνο και μήνα . Το αποτέλεσμα θα σου δώσεις ποιοί πελάτες είχαν έστω μία πώληση ανά μήνα. SELECT COUNT(salescolumn), customer_id FROM someTable GROUP BY customer_id, YEAR(date_column), MONTH(date_column) Αν θες να βρεις ποιοί πελάτες είχαν πωλήσεις σε κάθε μήνα και ξέρεις πόσους μήνες έχεις να ψάξεις, το count(salescolumn) θα πρέπει να είναι όσοι και οι μήνες, δηλαδή SELECT COUNT(salescolumn) as total, customer_id FROM someTable WHERE total >= ... GROUP BY customer_id, YEAR(date_column), MONTH(date_column) Στα τυφλά και με σύνταξη που δεν πρέπει να είναι valid postgres οπότε θα το ψάξεις λίγο παραπάνω. edit: άκυρο, το 2ο κομμάτι δεν ισχύει 😕
  5. Κάποια βασικά πράγματα για να συνενοηθούμε: Όσον αφορά τα out of stock: Πατάς στην κατηγορία Βότσαλα και βλέπεις 30 προιόντα. Για να εμφανιστούν αυτά, το software είπε στη βάση δεδομένων: -Φέρε μου ότι προιοντα βρεις που ανήκουν στην κατηγορία Βότσαλα Εμείς σου λέμε, να αλλάξεις αυτό το κομμάτι και να πεις: -Φέρε μου ότι προιοντα βρεις που ανήκουν στην κατηγορία Βότσαλα ΚΑΙ έχουν στοκ μεγαλύτρο από 0 Δεν θα απενεργοποιήσεις το προιον, απλά δεν θα το εμφανίζεις όταν πατάει ο άλλος να δει την κατηγορία (το ίδιο ή κάτι ανάλογο, πρέπει να γίνει για τον τρόπο που λειτουργούν τα φίλτρα που ανέφερες). Όσον αφορά τις διπλοεγγραφές: Αν υπάρχουν διπλοεγγραφές για το ίδιο προιον, είναι γιατί το url του προιοντος περιλαμβάνει και την κατηγορία, ένα προιον όμως μπορεί να ανήκει σε πολλές. Πχ το aspro-votsalo είναι στις κοτρώνες και στις πέτρες: whatever.gr/petres/aspro-votsalo whatever.gr/kotrones/aspro-votsalo Κατά τη γνώμη μου, η κατηγορία δεν θα πρέπει να υπάρχει στο url αλλά δέχομαι ότι μπορεί να συμφέρει για λόγους σεο κλπ, οπότε η λύση σε αυτή την περίπτωση, είναι το canonical url που πρέπει να μπει με κάποιο τρόπο στα meta data των σελίδων σου. Ή να είναι τα link των προιοντων τύπου whatever.gr/product/aspro-votsalo χωρίς να αναφέρεται η κατηγορία.
  6. Στη λίστα προιοντων δεν θα τα δείχνεις, μόνο αν πάει από indexed by google link θα το δει, ποιο είναι το πρόβλημά σου?
  7. Ντάξει ρε παιδιά... ήρθα με φόρα να γράψω κάτι αλλά με πρόλαβαν οι δυο από πάνω... πφφφ
  8. Η ερώτηση είναι πως θα κάνεις parse το json στη java? http://theoryapp.com/parse-json-in-java/
  9. alou

    Simple javascript question

    Αν προσπαθείς να καταλάβεις τα βασικά, αυτό δεν είναι το καλύτερο παράδειγμα. Υπάρχουν τόσα πράγματα ενδιάμεσα σε αυτό που ρωτάς και αυτό που συμβαίνει που δεν ξέρω αν αυτό που θα σου πω θα έχει νόημα για σένα, αλλά: το john είναι ένα object και το this είναι ένα keyword που στην περίπτωση του calctips αναφέρεται στο ίδιο το object. Δηλαδή var obj = {a: 999, b: function() { return this.a;}} console.log(obj.b()) // => 999 Τώρα, στο function περνάς μια παράμετρο bill. Το πρώτο πράγμα που γίνεται όταν 'τρέξει' το function, είναι να φτιαχτεί ένα local scope με ότι μεταβλητές δηλώνονται σαν παράμετροι ή μέσα στο body του function. Το bill δηλώνεται σαν παράμετρος άρα μπαίνει αυτόματα στις local variables του function και λίγο πιο κάτω, το ξανακάνεις initialize και του αναθέτεις μια τιμή. Αυτό αφενός δεν έχει νόημα γιατί δεν χρησιμοποιείς την παράμετρο, αφετέρου αν αντί για var η μεταβλητή δηλωθεί με let δεύτερη φορά, θα προκύψει συντακτικό σφάλμα (που είναι και το λογικό). Η παράμετρος, έχει νόημα μόνο αν την χρησιμοποιήσεις όταν καλείς το function, δηλαδή function foo(number){ console.log(number*2); } foo(100); // => 200 foo(200); // => 400 Επομένως, στη συγκεκριμένη περίπτωση, η παράμετρος ούτε νόημα έχει, ούτε χρησιμοποιείται πουθενά. Το bill έρχειται από το this.bills που αναφέρεται στο bills property του object μέσα στο οποίο βρίσκεται η function.
  10. Δεν ξέρω αν βρήκες ήδη άκρη, από το recompile και μετά δεν διάβασα γιατί σχεδόν σίγουρα, σώζεις την εικόνα στον dev folder και όχι στο dist / public, με το rebuild μεταφέρεται όλο το static content στο public. Θα πρέπει να ορίσεις ένα φάκελο προφανώς μετά το public / dist folder που δεν θα τον πειράζεις στο build process και εκεί θα μπει ότι κάνεις upload.
  11. Καταρχάς, πρόσβαση στο filesystem από τον browser μέσω javascript δεν υπάρχει. Αν θες να αποθηκεύσεις κάτι, θα χρησιμοποιήσεις π.χ. fetch και θα τα πάρει ο server να τα αποθηκεύσει σε ένα αρχείο ή στη βάση. Οπότε, στη δική σου περίπτωση, αλλάζοντας λίγο το παράδειγμα απο MDN στο παραπάνω link: let data = {text: mySelectedText, words: selected_words}; postData(`http://example.com/answer`, data) .then(data => { // data edo einai oti epistrepseis apo ton server san apantisi console.log('succesfully sent data to server')) } .catch(error => console.error(error)); function postData(url = ``, data = {}) { // Default options are marked with * return fetch(url, { method: "POST", // *GET, POST, PUT, DELETE, etc. mode: "cors", // no-cors, cors, *same-origin cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached credentials: "same-origin", // include, same-origin, *omit headers: { "Content-Type": "application/json; charset=utf-8", // "Content-Type": "application/x-www-form-urlencoded", }, redirect: "follow", // manual, *follow, error referrer: "no-referrer", // no-referrer, *client body: JSON.stringify(data), // body data type must match "Content-Type" header }) .then(response => return response.json()); // parses response to JSON και προφανώς, έχεις κάνει κάτι server side που θα πάρεις το ποστ και θα κάνεις ότι χρειάζεται. Αν δεν την παλεύεις εκεί, πες μια γενική κατεύθυνση σε περιβάλλον που θες να δούμε τι μπορεί να βοηθήσει.
  12. Όταν λες να το αποθηκεύσεις, για τι χρήση? το localStorage δεν σε καλύπτει? Αν θες να γίνουν persist με άλλο τρόπο και δεν μιλάμε για server side JS, θα πρέπει να τα στείλεις με κάποιου είδους http request να αποθηκευτούν σε κάποιο αρχείο ή βάση.
  13. Να βάλεις max-height σε vh. 100vh = 100% του viewport height.
  14. ΟΧΙ!. Σε καμμία περίπτωση δεν ισχύει αυτό που φαντάζεσαι, το ότι δουλεύει έτσι - ή μάλλον το ότι φαντάζεσαι ότι δουλεύει έτσι είναι λάθος γιατί υποδυκνείει ότι το push είναι ασύγχρονο, κάτι που δεν ισχύει (μιλάμε για το Array.prototype.push ). Ίσως από το push έως το να προστεθεί σαν slide στο τέλος του slideshow μεσολαβεί κάποιο promise πχ ή requestAnimationFrame ή κάτι άλλο αντίστοιχο αλλά σίγουρα δεν αφορά τις δυο γραμμές που υπάρχουν μέσα στην addpic (και μπορείς να το επιβεβαιώσεις με ένα console.log(this.images.length) πριν και μετά το push Η JS είναι ένα thread, line by line εκτός αν μεσολαβήσει οποιουδήποτε είδους browser API, όπως γίνεται με το setTimeout που αναφέρεις (ή xhr ή whatever). Αν δεν ολοκληρωθεί το push, δεν θα τρέξει ποτέ η επόμενη γραμμή. To setTimeout θα στείλει το callback να εκτελεστεί: όταν δεν υπάρχει τίποτα στο call stack ΚΑΙ δεν υπάρχει τίποτα στο microtask queue (πχ promise callbacks). Αυτό λοιπόν θα είχε νόημα μόνο αν το push ήταν ασύγχρονο και δεν είναι.
  15. Θα σε βοηθούσε να δεις τι γίνεται το να βάλεις ένα debugger ή να λογκάρεις το this.images.length πριν και μετά το push, γιατί η ουσία λογικά εκεί βρίσκεται. Έτσι όπως το περιγράφεις, το length δεν έχει γίνει increment όταν τρέχει το last , κάτι που είναι μάλλον αδύνατο να συμβαίνει. Εκτός αν γίνονται και άλλα πράγματα σε αυτό το array που επηρεάζουν το length κάπου ενδιάμεσα.
  • Δημιουργία νέου...