<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>ServerSolutions Blog</title>
    <link>http://www.serversolutions.gr/rss.ashx</link>
    <description>Τελευταία νέα, ειδήσεις και τεχνικά θέματα από τον κόσμο της τεχνολογίας, της πληροφορικής και της γραφιστικής</description>
    <pubDate>Wed, 22 Feb 2012 21:03:04 GMT</pubDate>
    <item>
      <title>Ο Firefox αργεί όταν τρέχετε σελίδες από localhost υπό ανάπτυξη με Visual Studio</title>
      <link>http://www.serversolutions.gr/Blog/2010/09/16/firefox-very-slow-on-localhost-aspnet-apps</link>
      <pubDate>Thu, 16 Sep 2010 00:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Αν &amp;#945;ν&amp;#945;πτύσσετε web εφ&amp;#945;ρμογές σε &lt;font color="#808080"&gt;.ΝΕΤ&lt;/font&gt; κ&amp;#945;ι προσπ&amp;#945;θήσετε ν&amp;#945; τις τρέξετε &amp;#945;πό &lt;font color="#808080"&gt;localhost&lt;/font&gt; στον &lt;font color="#808080"&gt;Firefox&lt;/font&gt; τότε σίγουρ&amp;#945; θ&amp;#945; έχετε π&amp;#945;ρ&amp;#945;τηρήσει μι&amp;#945; σημ&amp;#945;ντική κ&amp;#945;θυστέρηση στην φόρτωση της&amp;nbsp; σελίδ&amp;#945;ς σε σύγκριση με τον &lt;font color="#808080"&gt;Internet Explorer&lt;/font&gt;. Το πρό&amp;#946;λημ&amp;#945; όμως εξ&amp;#945;φ&amp;#945;νίζετ&amp;#945;ι ότ&amp;#945;ν &amp;#945;νε&amp;#946;άζετε την εφ&amp;#945;ρμογή στον live server. Αυτό δεν οφείλετε σε λάθος σχεδί&amp;#945;ση της σελίδ&amp;#945;ς &amp;#945;λλά σε έν&amp;#945; "θέμ&amp;#945;" του &lt;font color="#808080"&gt;Firefox&lt;/font&gt; με τ&amp;#945; νέ&amp;#945; λειτουργικά συστήμ&amp;#945;τ&amp;#945; που &amp;#945;φορά στην εύρεση της &lt;font color="#808080"&gt;IPv6&lt;/font&gt; διεύθυνσης του &lt;font color="#808080"&gt;localhost&lt;/font&gt; κ&amp;#945;ι υπάρχουν 2 τρόποι ν&amp;#945; το διορθώσετε: &lt;br&gt;&lt;br&gt;Ο πρώτος τρόπος είν&amp;#945;ι η &amp;#945;πενεργοποίηση του &lt;font color="#808080"&gt;IPv6&lt;/font&gt; στον &lt;font color="#808080"&gt;Firefox&lt;/font&gt;. Ριζική λύση &amp;#945;λλά &amp;#945;ν δεν την προτιμάτε συνεχίστε π&amp;#945;ρ&amp;#945;κάτω στην επόμενη.&lt;br&gt;&lt;ol&gt;&lt;li&gt;Πληκτρολογήστε &lt;font color="#808080"&gt;&lt;strong&gt;about:config&lt;/strong&gt;&lt;/font&gt; στην μπάρ&amp;#945; διεύθυνσης του firefox. Προσπεράστε τον έλεγχο &amp;#945;σφ&amp;#945;λεί&amp;#945;ς κ&amp;#945;ι θ&amp;#945; εμφ&amp;#945;νιστεί η λίστ&amp;#945; των ρυθμίσεων.&lt;/li&gt;&lt;li&gt;Πληκτρολογήστε v6 στο πλ&amp;#945;ίσιο φίλτρου γι&amp;#945; ν&amp;#945; εμφ&amp;#945;νιστεί η ρύθμιση &lt;font color="#808080"&gt;&lt;strong&gt;network.dns.disableIPv6&lt;/strong&gt;&lt;/font&gt;.&lt;/li&gt;&lt;li&gt;Κάνετε διπλό κλικ γι&amp;#945; ν&amp;#945; &amp;#945;λλάξετε την ρύθμιση σε &lt;font color="#808080"&gt;&lt;strong&gt;true&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;Επ&amp;#945;νεκκίνηση του Firefox&lt;/li&gt;&lt;/ol&gt;&lt;img src="/pictures/sshot.png"&gt;&lt;br&gt;&lt;br&gt;Ο δεύτερος τρόπος είν&amp;#945;ι π&amp;#945;ρόμοιος &amp;#945;λλά &amp;#945;ντί ν&amp;#945; &amp;#945;πενεργοποιήσετε εντελώς το IPv6 &amp;#945;πλά προσθέστε το localhost στη λίστ&amp;#945; των domain που το &amp;#945;γνοούν&lt;br&gt;&lt;ol&gt;&lt;li&gt;Πληκτρολογήστε &lt;font color="#808080"&gt;&lt;strong&gt;about:config&lt;/strong&gt;&lt;/font&gt; στην μπάρ&amp;#945; διεύθυνσης του firefox. Προσπεράστε τον έλεγχο &amp;#945;σφ&amp;#945;λεί&amp;#945;ς κ&amp;#945;ι θ&amp;#945; εμφ&amp;#945;νιστεί η λίστ&amp;#945; των ρυθμίσεων.&lt;/li&gt;&lt;li&gt;Πληκτρολογήστε ipv4Only στο πλ&amp;#945;ίσιο φίλτρου γι&amp;#945; ν&amp;#945; εμφ&amp;#945;νιστεί η ρύθμιση &lt;font color="#808080"&gt;&lt;strong&gt;network.dns.ipv4OnlyDomains&lt;/strong&gt;&lt;/font&gt;.&lt;/li&gt;&lt;li&gt;Κάνετε διπλό κλικ στην ρύθμιση γι&amp;#945; ν&amp;#945; την επεξεργ&amp;#945;στείτε κ&amp;#945;ι ν&amp;#945; προσθέσετε το &lt;font color="#808080"&gt;&lt;strong&gt;localhost&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;Επ&amp;#945;νεκκίνηση του Firefox&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;                </description>
    </item>
    <item>
      <title>Html parsing με το HtmlAgilityPack και Windows-1253 greek encoding</title>
      <link>http://www.serversolutions.gr/Blog/2010/04/01/html-parsing-with-htmlagilitypack-and-windows-1253-greek-encoding</link>
      <pubDate>Thu, 01 Apr 2010 12:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Το &lt;font color="#a9a9a9"&gt;HtmlAgilityPack&lt;/font&gt; είν&amp;#945;ι έν&amp;#945;ς Html parser γι&amp;#945; την πλ&amp;#945;τφόρμ&amp;#945; .NET κ&amp;#945;ι υποστηρίζει &lt;font color="#a9a9a9"&gt;XPATH&lt;/font&gt; κ&amp;#945;ι &lt;font color="#a9a9a9"&gt;XSLT&lt;/font&gt; parsing. Μ&amp;#945;ς δίνει την δυν&amp;#945;τότητ&amp;#945; ν&amp;#945; δι&amp;#945;χειριστούμε το &lt;font color="#a9a9a9"&gt;DOM&lt;/font&gt; με όποιον τρόπο θέλουμε με μεγάλη ευκολί&amp;#945; κ&amp;#945;ι είν&amp;#945;ι πολύ &amp;#945;νεκτικό στο κ&amp;#945;κοδι&amp;#945;μορφωμένο Html που πολλές φορές μπορεί ν&amp;#945; συν&amp;#945;ντήσουμε sto web.Το object model μοιάζει πολύ με &amp;#945;υτό που προτείνει το &lt;font color="#a9a9a9"&gt;System.Xml&lt;/font&gt; &amp;#945;λλά γι&amp;#945; Html documents. Επίσης το &lt;font color="#a9a9a9"&gt;HtmlAgilityPack&lt;/font&gt; υποστηρίζει κ&amp;#945;ι &lt;font color="#a9a9a9"&gt;Linq to Objects&lt;/font&gt; (μέσω Linq to Xml Like Interface).&lt;br&gt;&lt;br&gt;Π&amp;#945;ρ&amp;#945;δείγμ&amp;#945;τ&amp;#945; εφ&amp;#945;ρμογής:&lt;br&gt;&lt;ul&gt;&lt;li&gt;&amp;#916;ιόρθωση σελίδ&amp;#945;ς ή π&amp;#945;ρ&amp;#945;γωγή Html. Μπορείτε ν&amp;#945; "φτιάξετε" μι&amp;#945; σελίδ&amp;#945; με τον τρόπο που θέλετε, ν&amp;#945; προσθέσετε / &amp;#945;ντιγράψετε / δι&amp;#945;γράψετε nodes, ν&amp;#945; πειράξετε το DOM κλπ.&lt;/li&gt;&lt;li&gt;Web scanners. Μπορείτε εύκολ&amp;#945; ν&amp;#945; δι&amp;#945;&amp;#946;άσετε τ&amp;#945; img/src ή a/href με ελάχιστ&amp;#945; XPATH queries.&lt;/li&gt;&lt;li&gt;Web scrappers. Μπορείτε γι&amp;#945; π&amp;#945;ράδειγμ&amp;#945; ν&amp;#945; μετ&amp;#945;τρέψετε εύκολ&amp;#945; μι&amp;#945; υπάρχουσ&amp;#945; σελίδ&amp;#945; σε RSS, με μόνο έν&amp;#945; XSLT &amp;#945;ρχείο που θ&amp;#945; χρησιμεύει γι&amp;#945; binding.&lt;/li&gt;&lt;/ul&gt;Π&amp;#945;ράδειγμ&amp;#945; κώδικ&amp;#945; (C#):&lt;br&gt;&lt;br&gt;&lt;code&gt;HtmlDocument doc = new HtmlDocument();&lt;br&gt;&amp;nbsp;doc.Load("file.htm");&lt;br&gt;&amp;nbsp;foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlAttribute att = link["href"];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; att.Value = FixLink(att);&lt;br&gt;&amp;nbsp;}&lt;br&gt;&amp;nbsp;doc.Save("file.htm");&lt;/code&gt;&lt;br&gt;&lt;br&gt;Έν&amp;#945; πρό&amp;#946;λημ&amp;#945; που συνάντησ&amp;#945; με το &lt;font color="#a9a9a9"&gt;HtmlAgiltyPack&lt;/font&gt; ήτ&amp;#945;ν κ&amp;#945;τά το parsing σελίδ&amp;#945;ς με ελληνικό κείμενο κ&amp;#945;ι encoding &lt;font color="#a9a9a9"&gt;windows-1253&lt;/font&gt;. Γι&amp;#945; κάποιο λόγο οι ελληνικοί χ&amp;#945;ρ&amp;#945;κτήρες δεν εμφ&amp;#945;νίζοντ&amp;#945;ν σωστά κ&amp;#945;ι δεν μπορούσ&amp;#945; ν&amp;#945; το διορθώσω ότι encoding κ&amp;#945;ι ν&amp;#945; έ&amp;#946;&amp;#945;ζ&amp;#945; στο &lt;font color="#a9a9a9"&gt;HtmlDocument&lt;/font&gt;. Ο κώδικ&amp;#945;ς με το πρό&amp;#946;λημ&amp;#945;:&lt;br&gt;&lt;br&gt;&lt;code&gt;HtmlWeb web = New HtmlWeb();&lt;br&gt;HtmlDocument doc = New HtmlDocument();&lt;br&gt;doc = web.Load("http://www.site-with-greek-encoding.com");&lt;br&gt;doc.OptionDefaultStreamEncoding = Encoding.GetEncoding("windows-1253");&lt;/code&gt;&lt;br&gt;&lt;br&gt;Τελικά &amp;#945;ν&amp;#945;γκάστηκ&amp;#945; ν&amp;#945; δι&amp;#945;&amp;#946;άσω το html &amp;#945;πό τη σελίδ&amp;#945; με τον π&amp;#945;ρ&amp;#945;δοσι&amp;#945;κό τρόπο κ&amp;#945;ι ύστερ&amp;#945; ν&amp;#945; το κάνω parse με το &lt;font color="#a9a9a9"&gt;HtmlAgilityPack&lt;/font&gt; όπως π&amp;#945;ρ&amp;#945;κάτω:&lt;br&gt;&lt;br&gt;&lt;code&gt;HtmlDocument doc = New HtmlDocument();&lt;br&gt;WebRequest req&amp;nbsp; = WebRequest.Create("http://www.site-with-greek-encoding");&lt;br&gt;StreamReader stream&amp;nbsp; = New StreamReader(req.GetResponse().GetResponseStream(), Encoding.GetEncoding("windows-1253"));&lt;br&gt;doc.LoadHtml(stream.ReadToEnd());&lt;/code&gt;&lt;br&gt;&lt;br&gt;Το project στο Codeplex:&lt;br&gt;&lt;a target="_blank" title="HtmlAgilityPack on Codeplex" href="http://htmlagilitypack.codeplex.com/"&gt;http://htmlagilitypack.codeplex.com&lt;/a&gt;&lt;br&gt;</description>
    </item>
    <item>
      <title>Element:hover στον IE7</title>
      <link>http://www.serversolutions.gr/Blog/2010/01/14/element-hover-in-ie7</link>
      <pubDate>Thu, 14 Jan 2010 00:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Εάν είχ&amp;#945;τε την εντύπωση ότι ο &lt;font color="#a9a9a9"&gt;Internet Explorer 7&lt;/font&gt; υποστηρίζει hover σε οποιοδήποτε &lt;font color="#a9a9a9"&gt;element&lt;/font&gt; &amp;#945;λλά ότι κ&amp;#945;ι ν&amp;#945; προσπ&amp;#945;θήσ&amp;#945;τε δεν κ&amp;#945;τ&amp;#945;φέρ&amp;#945;τε ν&amp;#945; το κάνετε ν&amp;#945; δουλέψει, μην &amp;#946;ι&amp;#945;στείτε ν&amp;#945; &amp;#945;μφισ&amp;#946;ητήσετε τον ε&amp;#945;υτό σ&amp;#945;ς ως web developer (&amp;#945;ν κ&amp;#945;ι με τον &lt;font color="#a9a9a9"&gt;IE6 &lt;/font&gt;το περίεργο θ&amp;#945; ήτ&amp;#945;ν το &amp;#945;ντίθετο!). Η λύση είν&amp;#945;ι &amp;#945;πλή κ&amp;#945;ι όπως πάντ&amp;#945; λίγο κρυμμένη στο &lt;a title="element:hover in ie7" href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/hover.asp"&gt;MSDN&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Γι&amp;#945; ν&amp;#945; υπ&amp;#945;κούσει ο explorer στο hover πρέπει ν&amp;#945; έχουμε δηλώσει &lt;font color="#a9a9a9"&gt;DOCTYPE&lt;/font&gt; τύπου &lt;font color="#808080"&gt;STRICT&lt;/font&gt; όπως π&amp;#945;ρ&amp;#945;κάτω:&lt;br&gt;&lt;br&gt;&lt;font color="#a9a9a9"&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;ούτως ώστε ν&amp;#945; μην μετ&amp;#945;&amp;#946;εί σε &lt;a target="_blank" title="quirks mode" href="http://www.satzansatz.de/cssd/quirksmode.html"&gt;quirks mode&lt;/a&gt; κ&amp;#945;ι ν&amp;#945; έχουμε την επιθυμητή λειτουργί&amp;#945;.&lt;br&gt;&lt;br&gt;</description>
    </item>
    <item>
      <title>Ολοκλήρωση ανάπτυξης πλατφόρμας ηλεκτρονικού καταστήματος Stiger Eshop</title>
      <link>http://www.serversolutions.gr/Blog/2009/12/20/Hlektroniko-katasthma-Stiger-Eshop</link>
      <pubDate>Sun, 20 Dec 2009 10:15:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Ύστερ&amp;#945; &amp;#945;πό εκτενείς δοκιμές ολοκληρώθηκε η &amp;#945;νάπτυξη της πλ&amp;#945;τφόρμ&amp;#945;ς ηλεκτρονικού κ&amp;#945;τ&amp;#945;στήμ&amp;#945;τος - ηλεκτρονικού εμπορίου &lt;a title="Ηλεκτρονικό κ&amp;#945;τάστημ&amp;#945; Stiger Eshop" href="http://www.serversolutions.gr/Products/Hlektroniko-katasthma-Stiger-Eshop"&gt;Stiger Eshop&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Σε συνεργ&amp;#945;σί&amp;#945; με διάφορους &lt;a title="Ενδεικτικοί πελάτες μ&amp;#945;ς - Έργ&amp;#945;" href="http://www.serversolutions.gr/Projects"&gt;πελάτες μ&amp;#945;ς&lt;/a&gt; κ&amp;#945;τ&amp;#945;φέρ&amp;#945;με ν&amp;#945; σχεδιάσουμε κ&amp;#945;ι ν&amp;#945; &amp;#945;ν&amp;#945;πτύξουμε έν&amp;#945; προϊόν &amp;#946;&amp;#945;σισμένο στις δικές τους&amp;nbsp;&amp;#945;νάγκες, στις &amp;#945;νάγκες&amp;nbsp;μι&amp;#945;ς μεσ&amp;#945;ί&amp;#945;ς επιχείρισης με τρόπο τέτοιο ώστε η π&amp;#945;ρ&amp;#945;γωγηκότητ&amp;#945;, η εξυπηρέτηση πελ&amp;#945;τών κ&amp;#945;ι η &amp;#945;πλότητ&amp;#945; χρήσης ν&amp;#945; είν&amp;#945;ι πρώτη προτερ&amp;#945;ιότητά μ&amp;#945;ς.&lt;br&gt;&lt;br&gt;&lt;span class="Orange"&gt;&lt;strong&gt;Ορισμένες &amp;#945;πό τις δυν&amp;#945;τότητες της πλ&amp;#945;τφόρμ&amp;#945;ς μ&amp;#945;ς:&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Απεριόριστος &amp;#945;ριθμός κ&amp;#945;τηγοριών κ&amp;#945;ι υποκ&amp;#945;τηγοριών&lt;/li&gt;
&lt;li&gt;Απεριόριστος &amp;#945;ριθμός προϊόντων&lt;/li&gt;
&lt;li&gt;Το κάθε προϊόν μπορεί ν&amp;#945; περιέχει &amp;#945;περιόριστο κείμενο, φωτογρ&amp;#945;φίες κ&amp;#945;ι χ&amp;#945;ρ&amp;#945;κτηριστικ&amp;#945;&lt;/li&gt;
&lt;li&gt;Αν&amp;#945;ζήτηση προϊόντων με λέξεις κλειδιά&lt;/li&gt;
&lt;li&gt;Ειδικές κ&amp;#945;τηγορίες προώθησης προϊόντων &lt;font color="#808080"&gt;(Hot προϊόντ&amp;#945;, Τελευτ&amp;#945;ίες &amp;#945;φήξεις, Προσφορές)&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&amp;#916;ι&amp;#945;χείριση προϊόντων γι&amp;#945; εμφάνιση στην πρώτη σελίδ&amp;#945;&lt;/li&gt;
&lt;li&gt;Πλήθος τρόπων πληρωμής &lt;font color="#808080"&gt;(πχ Αντικ&amp;#945;τ&amp;#945;&amp;#946;ολή, Πιστωτική κάρτ&amp;#945;, Κ&amp;#945;τάθεση σε τράπεζ&amp;#945;, Π&amp;#945;ρ&amp;#945;λ&amp;#945;&amp;#946;ή &amp;#945;πό κ&amp;#945;τάστημ&amp;#945; κλπ.)&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;Σύνδεση με Eurobank, Millennium, Τράπεζ&amp;#945; Πειρ&amp;#945;ιώς ή με τράπεζ&amp;#945; της επιλογής σ&amp;#945;ς &lt;/li&gt;
&lt;li&gt;Έξοδ&amp;#945; &amp;#945;ποστολής γι&amp;#945; εντός κ&amp;#945;ι εκτός έδρ&amp;#945;ς&lt;/li&gt;
&lt;li&gt;Πλήρες ιστορικό π&amp;#945;ρ&amp;#945;γγελιών γι&amp;#945; κάθε πελάτη κ&amp;#945;ι π&amp;#945;ρ&amp;#945;κολούθησή τους&lt;/li&gt;
&lt;li&gt;Πλήθος στ&amp;#945;τιστικών στοιχείων επισκεψημότητ&amp;#945;ς μέσω Google Analytics&lt;/li&gt;
&lt;li&gt;Πλήθος &amp;#945;ν&amp;#945;φορών πωλήσεων κ&amp;#945;ι γρ&amp;#945;φήμ&amp;#945;τ&amp;#945; κέρδους &lt;/li&gt;
&lt;li&gt;&amp;#916;υν&amp;#945;τότητ&amp;#945; &amp;#945;ποστολής Newsletter στους εγγεγρ&amp;#945;μμένους χρήστες&lt;/li&gt;
&lt;li&gt;Απλό σύστημ&amp;#945; δι&amp;#945;χείρισης στ&amp;#945; ελληνικά&lt;/li&gt;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>3 τρόποι για κάνετε invert μια μεταβλητή τύπου bit σε SQL</title>
      <link>http://www.serversolutions.gr/Blog/2009/10/23/3-ways-to-invert-a-bitvariable-in-sql</link>
      <pubDate>Fri, 23 Oct 2009 00:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>SET @bitVariable = ~@bitVariable&amp;nbsp;&amp;nbsp; &amp;nbsp;--Bitwise Not&lt;br&gt;&amp;nbsp;&lt;br&gt;SET @bitVariable = @bitVariable ^ 1&amp;nbsp;&amp;nbsp; &amp;nbsp;--XOR&lt;br&gt;&amp;nbsp;&lt;br&gt;SET @bitVariable = 1 - @bitVariable&amp;nbsp;&amp;nbsp; &amp;nbsp;--Απλή &amp;#945;φ&amp;#945;ίρεση                </description>
    </item>
    <item>
      <title>LightingDesigner.gr - Ολοκλήρωση νέου έργου από την ομάδα ServerSolutions</title>
      <link>http://www.serversolutions.gr/Blog/2009/09/16/lightingdesigner-project-complete</link>
      <pubDate>Wed, 16 Sep 2009 00:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>&lt;p&gt;Η ομάδ&amp;#945; μ&amp;#945;ς ολοκλήρωσε με επιτυχί&amp;#945; το νέο website της ετ&amp;#945;ιρεί&amp;#945;ς &lt;font color=#c0c0c0&gt;Lighting Designer - Μελέτη-Σχεδι&amp;#945;σμός Αρχιτεκτονικού &amp;amp; &amp;#916;ι&amp;#945;κοσμητικού Φωτισμού&lt;/font&gt;.&lt;br&gt;&lt;br&gt;Η &lt;font color=#c0c0c0&gt;Lighting Designer&lt;/font&gt; είν&amp;#945;ι μι&amp;#945; ετ&amp;#945;ιρεί&amp;#945; με κύρος κ&amp;#945;ι πολύχρονη εμπειρί&amp;#945; στον χώρο της μελέτης κ&amp;#945;ι σχεδί&amp;#945;σης φωτισμού τόσο εξωτερικών όσο κ&amp;#945;ι εσωτερικών χώρων.&amp;nbsp; Γι&amp;#945; &amp;#945;υτόν τον λόγο είχ&amp;#945;με σ&amp;#945;ν προτερ&amp;#945;ιότητά μ&amp;#945;ς την άριστη κ&amp;#945;ι προσεγμένη εικ&amp;#945;στική π&amp;#945;ρουσί&amp;#945;σή της.&lt;br&gt;&lt;br&gt;Θέσ&amp;#945;με σ&amp;#945;ν στόχο την &amp;#945;νάδειξη της μον&amp;#945;δικότητ&amp;#945;ς του τ&amp;#945;λέντου που δι&amp;#945;θέτει το &amp;#945;νθρώπινο δυν&amp;#945;μικό της κ&amp;#945;ι &amp;#945;υτό φ&amp;#945;ίνετ&amp;#945;ι στις έξυπνες, δημιουργικές κ&amp;#945;ι με φ&amp;#945;ντ&amp;#945;σί&amp;#945; ιδέες κ&amp;#945;ι τεχνικές που εφ&amp;#945;ρμόζουν στ&amp;#945; έργ&amp;#945; τους κ&amp;#945;ι στις υπηρεσίες που η ετ&amp;#945;ιρεί&amp;#945; π&amp;#945;ρέχει.&lt;br&gt;&lt;br&gt;Το site έπρεπε ν&amp;#945; ήτ&amp;#945;ν &amp;#945;πλό στην περιήγηση με σχεδι&amp;#945;στικά έξυπνο μενού, με χρώμ&amp;#945; κ&amp;#945;ι στυλ που δεν κουράζει τον επισκέπτη κ&amp;#945;ι με τέτοι&amp;#945; δομή ώστε ν&amp;#945; κάνει της υπηρεσίες της ετ&amp;#945;ιρεί&amp;#945;ς &amp;#945;κόμη πιο γνωστές στο ευρύ κοινό με τρόπο συγκροτημένο κ&amp;#945;ι κ&amp;#945;τ&amp;#945;νοητό. Όλ&amp;#945; τ&amp;#945; π&amp;#945;ρ&amp;#945;πάνω μπόρεσ&amp;#945;ν ν&amp;#945; επιτευχθούν στο &amp;#945;κέρ&amp;#945;ιο με τη &amp;#946;οήθει&amp;#945; του εργ&amp;#945;λείου &lt;font color=#c0c0c0&gt;Flash&lt;/font&gt; της &lt;font color=#c0c0c0&gt;Adobe&lt;/font&gt;.&lt;br&gt;&lt;br&gt;Εκτός &amp;#945;πό την εμφάνιση, &amp;#945;π&amp;#945;ίτηση του πελάτη ήτ&amp;#945;ν το site ν&amp;#945; είν&amp;#945;ι δυν&amp;#945;μικό, δηλ&amp;#945;δή ν&amp;#945; μπορεί ο ίδιος ο πελάτης (δι&amp;#945;χειριστής της ετ&amp;#945;ιρεί&amp;#945;ς) ν&amp;#945; &amp;#945;ν&amp;#945;νεώνει το περιεχόμενό του, τόσο σε κείμεν&amp;#945; όσο κ&amp;#945;ι σε φωτογρ&amp;#945;φίες κ&amp;#945;ι video. Οι π&amp;#945;ρ&amp;#945;πάνω λόγοι μ&amp;#945;ς έκ&amp;#945;ν&amp;#945;ν ν&amp;#945; εξελίξουμε την πλ&amp;#945;τφόρμ&amp;#945; δι&amp;#945;χείρισης &lt;font color=#c0c0c0&gt;Stiger CMS&lt;/font&gt; που έχουμε &amp;#945;ν&amp;#945;πτύξει έτσι ώστε ν&amp;#945; μπορεί ν&amp;#945; συνδέετ&amp;#945;ι κ&amp;#945;ι ν&amp;#945; υποστηρίζει πλέον κ&amp;#945;ι &lt;font color=#c0c0c0&gt;full flash site&lt;/font&gt;, πράγμ&amp;#945; που στέφθηκε με &amp;#945;πόλυτη επιτυχί&amp;#945;.&lt;br&gt;&lt;br&gt;Αποτέλεσμ&amp;#945; είν&amp;#945;ι έν&amp;#945; φρέσκο, δυν&amp;#945;μικό κ&amp;#945;ι πρωτότυπο site που σ&amp;#945;ς κ&amp;#945;λούμε ν&amp;#945; το επισκεφτείτε!&lt;/p&gt;
&lt;p&gt;url: &lt;a title="Αρχιτεκτονικός - &amp;#916;ι&amp;#945;κοσμητικός Φωτισμός" href="http://www.lightingdesigner.gr/" target=_blank&gt;www.lightingdesigner.gr&lt;/a&gt;, &lt;a title="Αρχιτεκτονικός - &amp;#916;ι&amp;#945;κοσμητικός Φωτισμός" href="http://www.y-k.gr/" target=_blank&gt;www.y-k.gr&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google chart API</title>
      <link>http://www.serversolutions.gr/Blog/2009/08/19/Google-chart-API</link>
      <pubDate>Wed, 19 Aug 2009 00:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>&lt;p&gt;Το Google chart API, άλλη μι&amp;#945; νέ&amp;#945; υπηρεσί&amp;#945; της Google γι&amp;#945; προγρ&amp;#945;μμ&amp;#945;τιστές, μ&amp;#945;ς επιτρέπει ν&amp;#945; δημιουργούμε δυν&amp;#945;μικά δι&amp;#945;γράμμ&amp;#945;τ&amp;#945; (charts) χωρίς τη χρήση κάποιου dll ή άλλου component κ&amp;#945;ι χωρίς ν&amp;#945; κ&amp;#945;τ&amp;#945;ν&amp;#945;λώνουμε την υπολογιστική ισχύ του server μ&amp;#945;ς. &lt;br&gt;&lt;br&gt;Γι&amp;#945; ν&amp;#945; το δείτε στην πράξη εισάγετε το π&amp;#945;ρ&amp;#945;κάτω url σε έν&amp;#945; π&amp;#945;ράθυρο browser:&lt;br&gt;&lt;br&gt;&lt;a href="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello|World" target=_blank&gt;http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello|World&lt;/a&gt;&lt;br&gt;&lt;br&gt;Π&amp;#945;τήστε Enter κ&amp;#945;ι &amp;#945;μέσως θ&amp;#945; πρέπει ν&amp;#945; δείτε την π&amp;#945;ρ&amp;#945;κάτω εικόν&amp;#945;&lt;br&gt;&lt;br&gt;&lt;img src="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello|World"&gt;&lt;br&gt;&lt;br&gt;&amp;#916;εν υπάρχει κάποιο ημερήσιο όριο στον &amp;#945;ριθμό τον κλήσεων που μπορούμε ν&amp;#945; κάνουμε στο API π&amp;#945;ρολ&amp;#945;υτά &amp;#945;ν οι &amp;#945;π&amp;#945;ιτήσεις σ&amp;#945;ς σκοπεύουν ν&amp;#945; ξεπεράσουν τις 250000 κλήσεις την ημέρ&amp;#945; μπορείτε ν&amp;#945; επικοινωνήσετε με τη Google κ&amp;#945;ι ν&amp;#945; το διευθετήσετε!!!&lt;/p&gt;
&lt;p&gt;Γι&amp;#945; περισσότερες πληροφορίες κ&amp;#945;ι &amp;#945;ν&amp;#945;λυτικές οδηγίες επισκεφθείτε τον π&amp;#945;ρ&amp;#945;κάτω σύνδεσμο:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/intl/en/apis/chart/" target=_blank&gt;http://code.google.com/intl/en/apis/chart/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ASP.NET: Απενεργοποίηση button μετά από κλικ</title>
      <link>http://www.serversolutions.gr/Blog/2009/07/06/asp-net-disable-button-after-click</link>
      <pubDate>Mon, 06 Jul 2009 16:00:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Οι περισσότεροι χρήστες είν&amp;#945;ι συνήθως &amp;#945;νυπόμονοι κ&amp;#945;ι ειδικά ότ&amp;#945;ν ο browser κ&amp;#945;ι η γρ&amp;#945;μμή του internet δεν τ&amp;#945; πάνε κ&amp;#945;ι τόσο κ&amp;#945;λά μετ&amp;#945;ξύ τους ή ο server εκτελεί τον super-περίπλοκο &amp;#945;λγόριθμο που έχουμε σχεδιάσει, το &amp;#945;γ&amp;#945;πημένο τους hobby είν&amp;#945;ι ν&amp;#945; προσπ&amp;#945;θούν ν&amp;#945; σπάσουν το ρεκόρ των συνεχόμενων κλικ στο κουμπί που κάνει submit μέχρι τελικά ο browser ν&amp;#945; υποκύψει στις πιέσεις κ&amp;#945;ι ν&amp;#945; κάνει post τη φόρμ&amp;#945; 2, 3 ή κ&amp;#945;ι 4 φορές (γι&amp;#945; τους πολύ γρήγορους)! &lt;br&gt;Σ&amp;#945;ν developers &amp;#945;υτό δεν είν&amp;#945;ι κ&amp;#945;ι &amp;#945;πό τ&amp;#945; &amp;#945;γ&amp;#945;πημέν&amp;#945; μ&amp;#945;ς σενάρι&amp;#945; γι&amp;#945; άπειρους λόγους γι&amp;#945;υτό &amp;#945;ν&amp;#945;γκ&amp;#945;ζόμ&amp;#945;στε ν&amp;#945; πάρουμε μέτρ&amp;#945; κ&amp;#945;ι ν&amp;#945; ενημερώσουμε τον επίδοξο κάτοχο νέου ρεκόρ τ&amp;#945;χύτητ&amp;#945;ς κλικ πως όσο &amp;#946;&amp;#945;ρετά κ&amp;#945;ι ν&amp;#945; είν&amp;#945;ι μερικά κλάσμ&amp;#945;τ&amp;#945; του δευτερολέπτου, δυστυχώς θ&amp;#945; πρέπει ν&amp;#945; περιμένει. Κ&amp;#945;ι επειδή ξέρουμε πολύ κ&amp;#945;λά ότι δεν πρόκειτ&amp;#945;ι ν&amp;#945; μ&amp;#945;ς δώσει σημ&amp;#945;σί&amp;#945; &amp;#945;ν&amp;#945;γκ&amp;#945;ζόμ&amp;#945;στε ν&amp;#945; πρέπει ν&amp;#945; &amp;#945;πενεργοποιήσουμε το συγκεκριμένο κουμπί μετά το πρώτο κλικ. 
&lt;p&gt;Ο πρώτος τρόπος που μπορούμε ν&amp;#945; σκεφτούμε είν&amp;#945;ι ν&amp;#945; χρησιμοποιήσουμε το &lt;em&gt;OnClientClick&lt;/em&gt; event του Button ή LinkButton κάπως έτσι:&lt;/p&gt;
&lt;p&gt;&lt;font color=#808080&gt;&amp;lt;asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="this.disabled=true;this.value='Please wait...';" /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Αφού το δοκιμάσουμε όμως θ&amp;#945; π&amp;#945;ρ&amp;#945;τηρήσουμε πως &amp;#945;υτό δουλεύει μόνο γι&amp;#945; το LinkButton που η λογική του postback &amp;#946;ρίσκετ&amp;#945;ι στο &lt;em&gt;href tag &lt;/em&gt;(href="javascript:__doPostBack...") που &amp;#945;φήνουμε &amp;#945;νέπ&amp;#945;φο. Το &amp;#945;πλό Button ν&amp;#945;ι μεν &amp;#945;πενεργοποιείτ&amp;#945;ι &amp;#945;λλά γι&amp;#945; &amp;#945;υτόν τον λόγο ο browser &amp;#945;ρνείτ&amp;#945;ι ν&amp;#945; ξεκινήσει postback.&lt;/p&gt;
&lt;p&gt;Υπάρχουν 2 &amp;#945;πλές λύσεις σε &amp;#945;υτό το πρό&amp;#946;λημ&amp;#945;:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp;Προσθέτουμε στο Button το property &lt;em&gt;UseSubmitBehavior="false"&lt;/em&gt; που &amp;#945;ν&amp;#945;γκάζει το framework ν&amp;#945; προσθέσει των &amp;#945;π&amp;#945;ρ&amp;#945;ίτητο κώδικ&amp;#945; γι&amp;#945; το submit οπότε έχουμε το π&amp;#945;ρ&amp;#945;κάτω: &lt;/p&gt;
&lt;p&gt;&lt;font color=#808080&gt;&amp;lt;asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="this.disabled=true" UseSubmitBehavior="false" /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;Προσθέσουμε στο Page_Load μ&amp;#945;ς την εξής γρ&amp;#945;μμή:&lt;/p&gt;
&lt;p&gt;&lt;font color=#808080&gt;Button1.Attributes.Add("onclick", "this.disabled=true;this.value='Please wait...';" + ClientScript.GetPostBackEventReference(Button1, "").ToString())&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;Έτσι έν&amp;#945; άγχος λιγότερο γι&amp;#945; εμάς κ&amp;#945;ι έν&amp;#945; π&amp;#945;ιχνίδι λιγότερο γι&amp;#945; τους χρήστες!&lt;br&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL: If Exists Update Else Insert</title>
      <link>http://www.serversolutions.gr/Blog/2009/07/01/sql-if-exists-update-else-insert </link>
      <pubDate>Wed, 01 Jul 2009 09:44:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Αυτό είν&amp;#945;ι έν&amp;#945; πολύ συνηθισμένο σενάριο ότ&amp;#945;ν έχουμε ν&amp;#945; κάνουμε με δι&amp;#945;χείριση δεδομένων. Κ&amp;#945;λούμε μι&amp;#945; stored procedure κ&amp;#945;ι θέλουμε ν&amp;#945; κάνουμε Update εάν τ&amp;#945; δεδομέν&amp;#945; υπάρχουν ήδη ή Insert εάν δεν υπάρχουν. Το Books Online documentation μ&amp;#945;ς δίνει το &amp;#945;κόλουθο π&amp;#945;ράδειγμ&amp;#945; γι&amp;#945; την επίτευξη του π&amp;#945;ρ&amp;#945;πάνω στόχου:&lt;br&gt;&lt;br&gt;&lt;font color="#808080"&gt;IF EXISTS (SELECT * FROM Table1 WHERE Column1='Value1')&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPDATE Table1 SET (...) WHERE Column1='Value1'&lt;br&gt;ELSE&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO Table1 VALUES (...)&lt;br&gt;&lt;/font&gt;&lt;br&gt;Ο τρόπος &amp;#945;υτός φυσικά κ&amp;#945;ι δουλεύει π&amp;#945;ρόλ&amp;#945;υτ&amp;#945; δεν είν&amp;#945;ι η κ&amp;#945;λύτερη λύση στο πρό&amp;#946;λημά μ&amp;#945;ς. Κ&amp;#945;ι &amp;#945;υτό συμ&amp;#946;&amp;#945;ίνει γι&amp;#945;τί ο Sql server θ&amp;#945; κάνει table/index scan κ&amp;#945;ι γι&amp;#945; το SELECT κ&amp;#945;ι γι&amp;#945; το UPDATE. Ο π&amp;#945;ρ&amp;#945;κάτω τρόπος, &amp;#945;ντίθετ&amp;#945; με το π&amp;#945;ράδειγμ&amp;#945; πιο πάνω, &amp;#945;ποφεύγει τ&amp;#945; δύο scan κ&amp;#945;ι κ&amp;#945;τ&amp;#945;φέρνει ν&amp;#945; κάνει μόνο έν&amp;#945;:&lt;br&gt;&lt;br&gt;&lt;font color="#808080"&gt;UPDATE Table1 SET (...) WHERE Column1='Value1'&lt;br&gt;IF @@ROWCOUNT=0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO Table1 VALUES (...)&lt;/font&gt;&lt;br&gt;&lt;br&gt;Αν ο πίν&amp;#945;κάς μ&amp;#945;ς έχει &amp;#945;ρκετό &amp;#945;ριθμό εγγρ&amp;#945;φών, το scan που &amp;#945;φ&amp;#945;ιρέσ&amp;#945;με μπορεί ν&amp;#945; &amp;#945;νε&amp;#946;άσει την &amp;#945;πόδοση σε σημ&amp;#945;ντικό &amp;#946;&amp;#945;θμό.&lt;br&gt;&lt;br&gt;Τ&amp;#945; π&amp;#945;ρ&amp;#945;δείγμ&amp;#945;τ&amp;#945; του MSDN μπορεί ν&amp;#945; είν&amp;#945;ι πολύ &amp;#945;πλά στην εφ&amp;#945;ρμογή τους, &amp;#945;υτό όμως δεν σημ&amp;#945;ίνει πως είν&amp;#945;ι πάντ&amp;#945; κ&amp;#945;ι τ&amp;#945; πιο σωστά &amp;#945;πό άποψη &amp;#945;πόδοσης. Όπως πάντ&amp;#945; όμως κ&amp;#945;λό είν&amp;#945;ι ν&amp;#945; δοκιμάζουμε κ&amp;#945;ι ν&amp;#945; μετράμε την &amp;#945;πόδοση του τρόπου που επιλέγουμε πριν ν&amp;#945; τον εφ&amp;#945;ρμόσουμε σε production σενάριο. Πολλές φορές ο τρόπος που πιστεύουμε ότι είν&amp;#945;ι ο χειρότερος &amp;#945;ποδεικνύετ&amp;#945;ι τελικά ο κ&amp;#945;λύτερος.&lt;br&gt;</description>
    </item>
    <item>
      <title>Νέο λογότυπο από την ομάδα του Web Design</title>
      <link>http://www.serversolutions.gr/Blog/2009/06/25/new-serversolutions-logo</link>
      <pubDate>Thu, 25 Jun 2009 22:44:00 GMT</pubDate>
      <author>sdagkas@serversolutions.gr (Stelios Dagkas)</author>
      <description>Η εμπιστοσύνη που μ&amp;#945;ς δείχνετε &amp;#945;πό τ&amp;#945; πρώτ&amp;#945; μ&amp;#945;ς &amp;#946;ήμ&amp;#945;τ&amp;#945;, γέννησε την &amp;#945;νάγκη ν&amp;#945; &amp;#945;ν&amp;#945;νεωθούμε. Η &amp;#945;ρχή έγινε με το κ&amp;#945;ινούργιο μ&amp;#945;ς λογότυπο κ&amp;#945;ι την ετ&amp;#945;ιρική τ&amp;#945;υτότητ&amp;#945; που η ομάδ&amp;#945; &lt;a title="Flow - Web/Graphics Design" href="http://www.serversolutions.gr/Profile#Flow"&gt;Flow&lt;/a&gt; δημιούργησε γι&amp;#945; εμάς.</description>
    </item>
  </channel>
</rss>
