Ja, er zijn veel libraries die je kan gebruiken plus veel voorbeelden. Het is even wennen aan de manier van code schrijven. Er worden geen {} en puntcomma's gebruiktquote:
1 2 3 4 | for ($i = 0; $i < 10; $++) { print $i."<br>"; ?> |
1 2 | print i |
1 2 3 4 5 6 7 | for x in range(2, n): if n % x == 0: print n, 'equals', x, '*', n/x break else: print n, 'is a prime number' |
Ik zou dat stukje code nog eens goed controleren.quote:Op zondag 22 juni 2008 12:07 schreef Libris het volgende:
Nog een klein voorbeeldje
[ code verwijderd ]
Prime numbers vinden
Hier is een werkendequote:Op zondag 22 juni 2008 12:18 schreef Farenji het volgende:
[..]
Ik zou dat stukje code nog eens goed controleren.
1 2 3 4 5 6 7 8 | prime = True for x in range(2, n): if n % x == 0: prime = False break if prime: print n, 'is a prime number' |
Android, zie sig... Het ligt alleen even stilquote:Op zondag 22 juni 2008 12:21 schreef Mordreth het volgende:
Python lijkt me inderdaad ook een erg leuke taal om te leren. Jammer genoeg te weinig tijd voor op dit moment. Waar ik wel graag mee bezig wil is Android. Aangezien ik bezig ben met Java te leren is dat een mooi meepakkertje
.
Programmeer wedstrijden zijn leuk! Alleen vind ik de langere wedstrijden teveel tijd vreten, dus aan een fok-contest zal ik niet mee doen. Google houdt binnenkort ook weer een wedstrijd. De hoofdprijs bestaat onder andere uit 10 keer een gratis lunch bij een Google kantoorquote:Op donderdag 12 juni 2008 23:36 schreef Serphiot het volgende:
Op sommige sites worden wel eens programmeer wedstrijden gehouden, ik vroeg me af hoeveel devvers hier zitten en of onder de devvers mensen zijn die het leuk vinden om een contest te houden?
Nog geen idee hoe het in het vat te gieten, dacht eerst maar eens te peilen of er animo is.
Microsoft Visual Studio Express mag het ook meequote:Op zondag 22 juni 2008 14:21 schreef webbyplus het volgende:
Momenteel gebruik ik Turbo Delphi Explorer voor het maken van programmatjes, deze versie is gratis, en de apps mogen ook via internet verspreidt worden.
Zijn er meer stand-aloneapplicatie builders in omloop die gratis zijn & waarmee je applicaties mag verspreiden?
thx,
Webby
1 2 3 4 5 6 7 8 9 10 | <zip> <format value="0000AA"/> <format value="0000 AA"/> <format value="NL-0000AA"/> <format value="NL-0000-AA"/> </zip> <phone> etc... etc.. |
MVSE werkt goed idd , voor de java devvers: Jcreator, eclipse , netbeansquote:Op zondag 29 juni 2008 23:03 schreef existenz het volgende:
[..]
Microsoft Visual Studio Express mag het ook mee
hier ook, heb SVN werkend nu (al loop ik nog tegen het probleem aan dat me tortoisesvn vast loopt als ik 90.000 bestanden probeer te committenquote:Op dinsdag 24 juni 2008 13:41 schreef Mordreth het volgende:
Aan het kloten met subversion enz.
Mensen die hier werken met Trac en subversion? Ik vraag me af hoe de connectie in elkaar zit. Hoe weet trac welke bestanden zijn gewijzigd voor welke ticket.
Heb het werkend, (de eigen deamon van trac dan de link met apache gaat nog niet goed) maar je geeft de directory van je svn repo op op de server en dan leest trac het van daar uit hoe het zit.quote:Op dinsdag 24 juni 2008 13:41 schreef Mordreth het volgende:
Mensen die hier werken met Trac en subversion? Ik vraag me af hoe de connectie in elkaar zit. Hoe weet trac welke bestanden zijn gewijzigd voor welke ticket.
Die snappen het idee van webservices dus niet helemaal...quote:Op zondag 20 juli 2008 22:21 schreef super-muffin het volgende:
Ik ben mijn Last.fm PHP API aan het updaten omdat ze met de nieuwe layout ook de hele webservices hebben om gegooid.
Nou ja, het idee is niet per definitie dat je API tot het einde der tijden backwards compatible hoeft te zijn natuurlijk. Alhoewel de oude webservices online houden nou ook weer niet zoveel moeite zou moeten kosten, zeker in een overgangsfase.quote:Op maandag 21 juli 2008 00:05 schreef existenz het volgende:
[..]
Die snappen het idee van webservices dus niet helemaal...
Nee, dat de webservice bruikbaar blijft voor de consumers ongeacht veranderingen aan de backend van de webservice.... En blijkbaar hebben ze dat hier dus netjes gedaan door de oude webservices te deprecaten en mensen op te roepen om de nieuwe webservices te gebruiken. Dat is een hele nette oplossing.quote:Op maandag 21 juli 2008 00:08 schreef Litpho het volgende:
[..]
Nou ja, het idee is niet per definitie dat je API tot het einde der tijden backwards compatible hoeft te zijn natuurlijk. Alhoewel de oude webservices online houden nou ook weer niet zoveel moeite zou moeten kosten, zeker in een overgangsfase.
Kan je niet veel beter die methodes in een abstracte class zetten en daarvan laten inheriten?quote:Op zaterdag 9 augustus 2008 12:17 schreef StonedKinG het volgende:
Ik ben momenteel bezig met een ASP/NET / C# Generator, die op basis van een tabel in een DBMS een C# class genereert, en bijbhorende usercontrols. Volgende methoden worden gegenereerd :
public static Blaat load(keys)
public static Blaat save(keys)
public static Blaat[] loadall(keys)
public static Blaat[] lfind(string searchString, string Column)
public Control[] getControlFor(string column);
Op deze manier kun je heel makkelijk (zeker als je geen LINQ oid kunt/wilt gebruiken) een tabel converteren naar een pagina om dit object te maken. Een Bit worden 2 radio buttons, een blob wordt een upload veld, als een kolom verplicht is komt er automatisch een RequiredFieldValidator op, etc....
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | using System; namespace maral.db.obj { ///////////////////////////////////////////////// // Class generated by Maral DbClassCreator V2.0// // Created for: ASP.NET 2.0 ///////////////////// ///////////////////////////////////////////////// public class News { public string content { get; set; } public DateTime date { get; set; } public string author { get; set; } public int id { get; set; } /// <summary> /// Constructs a new News object. Nullable fields are <code>null</code>, other are getting a default value suchs as -1L for <code>long</code>s. /// </summary> public News() { id = -1; } public static News load(int key_id) { var result = new News(); var reader = DbTools.getOleDataReader("SELECT * FROM News WHERE id = " + key_id); while (reader.Read()) { result.content = DbTools.getString(reader["content"]); result.date = DbTools.getDate(reader["date"]); result.author = DbTools.getString(reader["author"]); result.id = DbTools.getInt(reader["id"]); } reader.Close(); return result; } public void save() { var newRecord = id > 0; var query = newRecord ? "INSERT INTO News VALUES(@content, @date, @author);" : "UPDATE News SET content = @content, date = @date, author = @author WHERE id = @id;"; var command = DbTools.getOleCommand(query); try { if (!newRecord) command.Parameters.AddWithValue("@id", id); command.Parameters.AddWithValue("@content", content); command.Parameters.AddWithValue("@date", date); command.Parameters.AddWithValue("@author", author); if (newRecord) id = int.Parse(command.ExecuteScalar().ToString()); else command.ExecuteNonQuery(); } catch (Exception e) { //TODO: Log error! } finally { command.Connection.Close(); } } public static News[] loadAll() { var reader = DbTools.getOleDataReader("SELECT * FROM News;"); var amount = 0; while (reader.Read()) { amount++; } reader.Close(); reader = DbTools.getOleDataReader("SELECT * FROM News;"); var result = new News[amount]; var i = 0; while (reader.Read()) { result[i] = new News(); result[i].content = DbTools.getString(reader["content"]); result[i].date = DbTools.getDate(reader["date"]); result[i].author = DbTools.getString(reader["author"]); result[i].id = DbTools.getInt(reader["id"]); i++; } reader.Close(); return result; } public static News[] find(string searchString, string columnName) { var reader = DbTools.getOleDataReader("SELECT * FROM News WHERE " + columnName + " LIKE '%" + searchString + "%';"); var amount = 0; while (reader.Read()) { amount++; } reader.Close(); reader = DbTools.getOleDataReader("SELECT * FROM News WHERE " + columnName + " LIKE '%" + searchString + "%';"); var result = new News[amount]; var i = 0; while (reader.Read()) { result[i] = new News(); result[i].content = DbTools.getString(reader["content"]); result[i].date = DbTools.getDate(reader["date"]); result[i].author = DbTools.getString(reader["author"]); result[i].id = DbTools.getInt(reader["id"]); i++; } reader.Close(); return result; } public static void delete(int key_id) { var command = DbTools.getOleCommand("DELETE FROM News WHERE id = " + key_id); command.ExecuteNonQuery(); } } } |
Houd je wel aan de coding conventiesquote:Op zaterdag 9 augustus 2008 12:17 schreef StonedKinG het volgende:
Ik ben momenteel bezig met een ASP/NET / C# Generator, die op basis van een tabel in een DBMS een C# class genereert, en bijbhorende usercontrols. Volgende methoden worden gegenereerd :
public static Blaat load(keys)
public static Blaat save(keys)
public static Blaat[] loadall(keys)
public static Blaat[] lfind(string searchString, string Column)
public Control[] getControlFor(string column);
Op deze manier kun je heel makkelijk (zeker als je geen LINQ oid kunt/wilt gebruiken) een tabel converteren naar een pagina om dit object te maken. Een Bit worden 2 radio buttons, een blob wordt een upload veld, als een kolom verplicht is komt er automatisch een RequiredFieldValidator op, etc....
Ik heb een tijd geleden zoiets gemaakt maar dan in perl: DataRow. Dat is een generieke abstracte class die een row uit een willekeurige databasetabel representeert, met load, save, delete, copy etc methods, generieke voorzieningen voor 1-to-many, 1-to-1 en many-to-many relaties. Die class is relatief groot, maar in subclasses inherit je dan daarvan, en daarin geef je alleen aan wat de databasetabel is, welke velden die tabel heeft, je definieert de identificerende key(s) en je definieert de relaties die het object met andere subclasses heeft. Hierdoor blijven de subclasses heel klein, in principe hoef je dan niet meer dan de constructor te overriden. Dat scheelt heel veel herhaling van grotendeels identieke code; en dat is belangrijk, als je dan iets wil wijzigen hoeft dat maar in 1 bestand, al je subclasses nemen dat vanzelf over, en hoef je ook geen generator aan te passen. Ik geloof sowieso niet in code die code genereert eigenlijk, vragen om problemen is dat.quote:Op zaterdag 9 augustus 2008 13:39 schreef StonedKinG het volgende:
Dat zou kunnen, allen per tabel verschilt alles wel zo veel dat het weinig zin heeftdan zou ik meer op een interface terecht komen. Daarbij verschilt de signature nogal eens van zo''n methode, de load heeft namelijk bij een enkele sleutel slechts 1 parameter, bij meerdere natuurlijk meer
Hier een voorbeeltje van zo'n gegenereerde class, kan nog wat foutjes bevatten maar schiet al lekker op
[ code verwijderd ]
Alles is dus gegenereerd, dus ook het commentaar
Wat bedoel je met een meer lagen model? Het gebruik van interfaces/abstrace klassen etc? De null value afhandeling doe ik door velden die verplicht zijn in de DB een standaard waarde te geven als -1, of een nieuwe instantie van bv DateTime en niet verplichte velden gaan straks weer de db in als een Db.NullValue indien ze hun standaardwaarde hebben of een null zijn.quote:Op zaterdag 9 augustus 2008 14:51 schreef existenz het volgende:
[..]
Houd je wel aan de coding conventies. Is zeker bij generators belangrijk om te doen. En let ff op null value afhandeling en ik zie dat je geen meer lagen model gebruikt. Is dat expres (Kan natuurlijk prima als je daarvoor kiest)?
Dat was ook mijn doel, het af zijn van innerline SQL, die eeuwige readers, vergeten connecties te sluiten, etc. Of je gelooft in code generatie hangt puur af hoe intelligent je je generator maakt. Tot nu toe ben ik geen serieuze problemen tegen gekomen.quote:Op zaterdag 9 augustus 2008 16:42 schreef Farenji het volgende:
[..]
Ik heb een tijd geleden zoiets gemaakt maar dan in perl: DataRow. Dat is een generieke abstracte class die een row uit een willekeurige databasetabel representeert, met load, save, delete, copy etc methods, generieke voorzieningen voor 1-to-many, 1-to-1 en many-to-many relaties. Die class is relatief groot, maar in subclasses inherit je dan daarvan, en daarin geef je alleen aan wat de databasetabel is, welke velden die tabel heeft, je definieert de identificerende key(s) en je definieert de relaties die het object met andere subclasses heeft. Hierdoor blijven de subclasses heel klein, in principe hoef je dan niet meer dan de constructor te overriden. Dat scheelt heel veel herhaling van grotendeels identieke code; en dat is belangrijk, als je dan iets wil wijzigen hoeft dat maar in 1 bestand, al je subclasses nemen dat vanzelf over, en hoef je ook geen generator aan te passen. Ik geloof sowieso niet in code die code genereert eigenlijk, vragen om problemen is dat.
Deze DataRow class gebruik ik tegenwoordig in bijna al mijn perl projecten. Scheelt echt veel tijd, development is nog nooit zo snel gegaan, je hebt vrijwel geen inline SQL meer nodig en je code wordt er ongelooflijk compact en overzichtelijk van.
In perl zijn er veel van dit soort classes, zoals DBIx::Class waar nog veel meer mee kan. Veel frameworks in andere talen zoals phpCake of Ruby on Rails hebben een vergelijkbare class, hoogstwaarschijnlijk is er voor .NET ook wel zoiets te vinden.
Volgens de meeste gebruikte conventie zou je het als volgt doen:quote:Op zaterdag 9 augustus 2008 19:48 schreef StonedKinG het volgende:
[..]
Wat bedoel je met een meer lagen model? Het gebruik van interfaces/abstrace klassen etc? De null value afhandeling doe ik door velden die verplicht zijn in de DB een standaard waarde te geven als -1, of een nieuwe instantie van bv DateTime en niet verplichte velden gaan straks weer de db in als een Db.NullValue indien ze hun standaardwaarde hebben of een null zijn.
Wat bedoel je met coding conventies? Zie ik iets over het hoofd? Ik laat elke klasse sowieso checken door Resharper 4, en zorg dat ik niet eens warnings genereer
1 2 3 4 5 6 7 8 9 10 | public string ExampleProperty { get { return exampleProperty; } set { exampleProperty = value; } } public void Save() { } |
Thx voor die uppercasequote:Op zaterdag 9 augustus 2008 20:04 schreef existenz het volgende:
[..]
Volgens de meeste gebruikte conventie zou je het als volgt doen:
[ code verwijderd ]
Methode names dus altijd met uppercase beginnen en public fields private omturnen in properties. Dat viel me eigenlijk vooral op. Dat is ieg de meest gebruikte standaard (Maar absoluut niet de enige).
edit: Ik zie 3.5 gebruikt worden, dan hoeft de private declarie niet, maar ook de properties met hoofdletter beginnen
Omdat je soms niet van een bepaalde technologie kunt gebruiken door een dwarsliggende webhost, oude meuk, of simpelweg omdat het ff snel genereren van de hele zooi voor een klein projectje gewoon fijn is. Daarbij genereert Linq To SQL en die andere meuk toch geen ASP.NET pagina's? Zeker niet netjes met RequiredFieldValidators enzo toch ?quote:edit2:
Waarom trouwens zelfs wat schrijven als je NHibernate, ActiveRecord, WIlson, LLBGen, Linq To Sql, Entity Framework etc hebt?
Vandaar het keuzerondequote:Op zaterdag 9 augustus 2008 20:21 schreef existenz het volgende:
Nee, dat klopt (LLBLGen volgens mij wel, maar die kost dan ook $$$). Dit soort properties (waar je geen fields hoeft te declareren) bestaan trouwens pas sinds .NET 3.5
Waarom heb je er voor gekozen om de methods static te maken?quote:
Was mij inderdaad nog niet opgevallen. Het is inderdaad niet gebruikelijk, maar kan prima. Probleem is alleen dat wanneer je dan specifieke methodes die statefull zijn voor een class krijgt je instance methods en statics gaat mixen.quote:Op zondag 10 augustus 2008 14:19 schreef rekenwonder het volgende:
[..]
Waarom heb je er voor gekozen om de methods static te maken?
Als een methode static kan zijn, waarom zou je het dan niet doen? Persoonlijk vind ik het handiger als ik var blaat = Blaat.load(dinges) kan doen dan dat ik var blaat = new Blaat(); blaat.load(dinges); moet doen. Sowieso was bij de meeste bedrijven en stages waar ik gelopen heb het gebruikelijk om een methode static te maken indien mogelijk... Net zoals private indien niet public nodig, en final (java) of fixed variabeles waar mogelijk.quote:Op zondag 10 augustus 2008 14:27 schreef existenz het volgende:
[..]
Was mij inderdaad nog niet opgevallen. Het is inderdaad niet gebruikelijk, maar kan prima. Probleem is alleen dat wanneer je dan specifieke methodes die statefull zijn voor een class krijgt je instance methods en statics gaat mixen.
Je weet dat k's niets zegt over een goed programmaquote:Op zondag 10 augustus 2008 14:35 schreef PiRANiA het volgende:
Ik ben nu bezig met een crawler om een lijst domeinnamen te verkrijgen voor een project van me (php cli ftw).
Heb er inmiddels 19k
Vanuit de bedrijven waar ik werk (Ik doe detachering) is static niet echt gebruikelijk om iets static te maken omdat het kan. Het moet echt een reden en voordeel hebben, statics zijn namelijk niet statefull, vele malen minder flexibel etc. Ik heb al te vaak applicaties moeten "destaticen", omdat er aanpassingen gedaan moesten worden of state problemen waren, waar de mensen niet uit kwamen.quote:Op zondag 10 augustus 2008 22:47 schreef StonedKinG het volgende:
[..]
Als een methode static kan zijn, waarom zou je het dan niet doen? Persoonlijk vind ik het handiger als ik var blaat = Blaat.load(dinges) kan doen dan dat ik var blaat = new Blaat(); blaat.load(dinges); moet doen. Sowieso was bij de meeste bedrijven en stages waar ik gelopen heb het gebruikelijk om een methode static te maken indien mogelijk... Net zoals private indien niet public nodig, en final (java) of fixed variabeles waar mogelijk.
Nja ik gebruik static ook eigelijk alleen maar bij van die "tool" methoden, zoals een bepaald algoritme uitvoeren op iets, of zoals nu een simpel objectje laden ofzo. Voordeel van static methoden vind ik vooral dat je ze makkelijk in andere software kunt gebruiken. Gaat dus inderdaad vaak om helper methods.quote:Op zondag 10 augustus 2008 22:59 schreef existenz het volgende:
[..]
Vanuit de bedrijven waar ik werk (Ik doe detachering) is static niet echt gebruikelijk om iets static te maken omdat het kan. Het moet echt een reden en voordeel hebben, statics zijn namelijk niet statefull, vele malen minder flexibel etc. Ik heb al te vaak applicaties moeten "destaticen", omdat er aanpassingen gedaan moesten worden of state problemen waren, waar de mensen niet uit kwamen.
Het is niet slecht, maar je moet wel verdomd goed opletten wat je aan het doen bent. Voordat je het weet is je hele applicatie static en dat geeft 100% zeker problemen.
Zelfde soort probleem als mij dusquote:Op maandag 11 augustus 2008 08:38 schreef Slarioux het volgende:
Krijg foutmeldingen bij de Whatpulse topic. Server geeft een 500 error, maar nergens een fout te bekennen. Straks maar eens naar een file gaan loggen.
Bij mij ook maar nu werkt het script zelf prima. Hij gaat op zijn plaat op een gegeven moment en dan zit ik met een script dat half half werkt, en niet crasht met een php fout maar met een apache error (waar je niks aan hebt). Ik kan niet bij de apache logs (of iig, daar staan ze niet in) dus geen idee wat het is.quote:Op maandag 11 augustus 2008 10:51 schreef SharQueDo het volgende:
500 errors van mij komen altijd door foute .htaccess bestanden.![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Time: 08:11:59 PM avg-cpu: %user %nice %system %iowait %steal %idle 10.48 0.00 1.50 17.49 0.00 70.51 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util emcpowerb 2.31 54.25 54.04 26.36 6422.82 645.86 3211.41 322.93 87.92 0.84 10.44 3.09 24.85 emcpowerd 0.55 1.81 17.65 2.27 1056.62 32.62 528.31 16.31 54.69 0.15 7.75 4.77 9.49 emcpowera 2.31 31.08 38.93 9.71 5534.01 328.55 2767.00 164.27 120.55 0.34 6.99 3.87 18.83 emcpowerc 0.76 16.73 28.58 13.45 1684.28 241.87 842.14 120.94 45.83 0.43 10.30 4.30 18.09 Time: 08:12:59 PM avg-cpu: %user %nice %system %iowait %steal %idle 3.02 0.00 0.31 3.29 0.00 93.32 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util emcpowerb 0.08 13.65 3.27 5.53 111.60 153.47 55.80 76.73 30.12 0.06 6.92 1.42 1.25 emcpowerd 0.00 0.00 0.00 0.05 0.00 0.40 0.00 0.20 8.00 0.00 10.67 4.00 0.02 emcpowera 0.65 6.02 9.20 1.15 948.53 57.73 474.27 28.87 97.22 0.05 4.70 3.76 3.89 emcpowerc 0.02 18.30 2.47 28.23 37.20 372.80 18.60 186.40 13.36 0.15 4.73 0.74 2.27 |
De belangrijkste reden dat ik jpgraph niet gebruik is omdat ik het niet ken...quote:Op dinsdag 12 augustus 2008 08:07 schreef JortK het volgende:
Waarom maak je gebruik van libchart?
Wat heeft dat voor voordelen ten opzichte van bijvoorbeeld jpgraph?
Heb het wel eens vanuit Windows gedaan, opzich hetzelfde.quote:Op maandag 18 augustus 2008 12:24 schreef HostiMeister het volgende:
Ben bezig met het communiceren na een gprs modem via de commandline in linux middels AT commando's
Iemand verstand van?
Ik heb zojuist een 110 pagina's tellende document gevonden met specifieke AT commando's van de fabrikant.quote:Op maandag 18 augustus 2008 13:15 schreef 8D het volgende:
[..]
Heb het wel eens vanuit Windows gedaan, opzich hetzelfde.
Er zijn wat lijstjes met standaard AT+ commands online, en veel apparaten ondersteunen dingen zoals AT? en AT+? als command (of wellicht ook AT+HELP). Dat geeft een mooi lijstje met command's die je kan gebruiken =). Soms verschilt dat per apparaat ;p
Vanavond eens stats gaan code voor me routerquote:Op dinsdag 12 augustus 2008 10:26 schreef whoops het volgende:
B.t.w. de mooiste graphs die ik gezien heb zijn trouwens Flotr en PlotKit, maar ik had weinig zin en tijd om de gegevens nog van PHP naar JavaScript om te zetten, het moest namelijk voor het weekend af zijn...
1 2 3 4 5 6 7 8 9 10 11 12 | sub foo<T>(func_ptr<func_ptr<T, T>, T> f, T arg) returns T var lambda = f(arg); return lambda(arg); end sub export sub main() returns void func_ptr<func_ptr<int, int>, int> f= (int a) => ( (int b) => b*b ); int a = foo<int>(f, 5); print(a); //25 end sub |
Nog steedsquote:Op donderdag 28 augustus 2008 18:51 schreef Scorpie het volgende:
Bezig met ExtJS een CMSje te maken, met wat andere modules erbij.
Idd daarom ben ik zelf ook eerst ff wat andere projectjes gaan maken er in om het later gewoon goed te doen zonder dat je met een project zit met rare dingen er inquote:Op donderdag 28 augustus 2008 20:52 schreef Scorpie het volgende:
[..]
Getting there, duurt alleen ff voordat je alle quirks door hebt
Ziet er goed uit, alleen beetje raar dat de WAN Rx en Tx stats precies hetzelfde zijnquote:Op zondag 31 augustus 2008 16:26 schreef WyriHaximus het volgende:
Wou dit eigenlijk al eerder posten. Maar de stats van me router waar ik mee bezig was: http://home.wyrihaximus.net:61667/routerstats/
Ben er ook nog niet helemaal achter wat dat nou is. Lijkt wel alsof me router dat terug stuurt. (Het is trouwens de HTML uit de admin interface die ik parse. Maar zal straks eens met de hand kijken wat het zegt.) En die uptime ben ik nog aan het tweaken, ga straks eens proberen met wat ifjes om te voor als het nog onder de 24 uur isquote:Op zondag 31 augustus 2008 16:30 schreef Intrepidity het volgende:
[..]
Ziet er goed uit, alleen beetje raar dat de WAN Rx en Tx stats precies hetzelfde zijnEn bij uptime (helemaal aan de rechterkant) maakt de grafiek een sprong van 0 naar 7 uur.. Stijgt ook ff sneller dan normaal daaro
Plotr maar ga naar flotr overquote:Op zondag 31 augustus 2008 17:02 schreef JortK het volgende:
Welke chart lib gebruik je ervoor?
Closed source bagger om je code closed source te maken...quote:Op zondag 31 augustus 2008 19:34 schreef sweboy het volgende:
Iemand hier al eens met IonCube Encoder gewerkt?
Zijn van plan het aan te schaffen, echter zou ik graag wat meningen hebben.
Tja, Ik zal toch m'n brood moeten verdienen ermee hequote:Op maandag 1 september 2008 08:55 schreef whoops het volgende:
[..]
Closed source bagger om je code closed source te maken...
Bezit van source code is sterk overrated. Men betaalt toch voor het product en niet voor de code. Wellicht tijd om aan een ander licentiemodel te denken?quote:Op maandag 1 september 2008 09:29 schreef sweboy het volgende:
[..]
Tja, Ik zal toch m'n brood moeten verdienen ermee he
Het gaat me er niet om dat ze het niet kunnen veranderen, maar meer zodat ik er een licentie systeem kan inzetten om kopieeren tegen te gaan. Vorige scripts van mij zijn vaak illegaal verspreid. Als je er van moet leven, is dat niet leuk.quote:Op maandag 1 september 2008 18:24 schreef rekenwonder het volgende:
[..]
Bezit van source code is sterk overrated. Men betaalt toch voor het product en niet voor de code. Wellicht tijd om aan een ander licentiemodel te denken?
Oeh, interresant. Zou je de source kunnen posten? Ik ben wel benieuwd hoe je dit aangepakt hebtquote:Op dinsdag 2 september 2008 12:21 schreef dikkedorus het volgende:
Totaal ongerelateerd aan webdevven.
Ik heb gisteren de laatste hand gelegd aan m'n sudokusolver
Features:
Asciii art sudokus!
Drie single-step solvers die je aan/uit kan zetten
Brute force multi-step voor de echte hersenkrakers
Invoer-taaltje om snel handmatig sudokus over te nemen van papier
Snelle en mem-friendly c++. Lekker veel booleaanse operatoren kunnen misbruiken
Ha, dat is wel een leuke voor een dev contest!quote:Op dinsdag 2 september 2008 16:01 schreef PiRANiA het volgende:
[..]
Oeh, interresant. Zou je de source kunnen posten? Ik ben wel benieuwd hoe je dit aangepakt hebt
Als ik het niet vergeet zal ik hem commenten en posten.quote:Op dinsdag 2 september 2008 16:01 schreef PiRANiA het volgende:
Oeh, interresant. Zou je de source kunnen posten? Ik ben wel benieuwd hoe je dit aangepakt hebt
Cool, heb ook ooit een solver gemaakt. Maar de code is nu niet echt mooi dus durf de code niet te postenquote:Op dinsdag 2 september 2008 16:52 schreef dikkedorus het volgende:
[..]
Als ik het niet vergeet zal ik hem commenten en posten.
Men neme een datatype Vakje met een 9-bits mask en een 5-bits integer (kheb ze nu gewoon unpacked in twee 32-bits ints zitten)
De mask geeft aan welke waarden mogelijk zijn op een bepaald vakje van het Sudoku-veld. Zodra er nog maar de nth 1 bit is geset is het vakje geresolved en wordt de 5-bit waarde gelijk aan n. Buffering voor snellere checks.
Gooi 9x9 Vakjes in je geheugen.
Nu maak ik 3x9=27 Nintuples aan; voor elke rij, elke colomn en elk 3x3 blok. Elke Nintuple heeft 9 pointers naar 9 Vakjes.
Semantisch zijn deze allemaal gelijk, namelijk dat ze allemaal 1-9 1x mogen bevatten; alle solvers werken dus op alle nintuples.
Daarnaast een hele zooi operators gemaakt die intersecties, unions etc. kunnen genereren uit Vakjes en Nintuples. De rest is gewoon een zooi glue-code.
Alles solvers werken per nintuple:
Solver1 - Er is maar 1 waarde mogelijk: verzamel alle resolved waarden in een bitmask, en AND alle ongeresolvde vakjes met de inverse. Vakjes met 1 bit over zijn geresolved.
Solver2 - Er is maar 1 plaats mogelijk: Indien de nde bit maar 1 maal in de nintuple is geset is het bijbehorende vakje geresolved naar n.
Solver3: - Er is maar 1 intersectie mogelijk: Bits die in de masks de intersectie van nintuple B met nintuple A zitten, maar niet in de rest van nintuple B, zijn ook in nintuple A alleen mogelijk binnen deze intersectie.
Solver4: Depth first search van alle mogelijkheden (gecombineerd met 1,2,3)
Het invoeren van sudoku gaat als volgt, per rij:
0 = onbekend,
1...9 = geresolved.
'-' schakelet over naar rechts-uitgelijnde waarden.
dus de rij XX1 XX2 4XX
wordt 0010024
rij 1XX XXX 3X2
wordt 100000302
of
1-302
Werkt prima
Grappig grappigquote:Op woensdag 3 september 2008 13:18 schreef Serphiot het volgende:
[..]
Cool, heb ook ooit een solver gemaakt. Maar de code is nu niet echt mooi dus durf de code niet te posten![]()
Hij kon brute force de oplossing vinden, verder helpen door het tonen van candidates (locked, singles)
Hij zag er zo uit:
[ afbeelding ]
Verder zelf op mijn werk niets bijzonders, bugjes oplossen. voor mezelf alitijd nog bezig met receptendb, nu aan het inbouwen dat er recepten direct van de site in het programma gedownload kunnen worden.
Zo ziet ie van mij er ook uit, maar dan in ascii-art.quote:Op woensdag 3 september 2008 13:18 schreef Serphiot het volgende:
[..]
Cool, heb ook ooit een solver gemaakt. Maar de code is nu niet echt mooi dus durf de code niet te posten![]()
Hij kon brute force de oplossing vinden, verder helpen door het tonen van candidates (locked, singles)
Hij zag er zo uit:
[ afbeelding ]
Verder zelf op mijn werk niets bijzonders, bugjes oplossen. voor mezelf alitijd nog bezig met receptendb, nu aan het inbouwen dat er recepten direct van de site in het programma gedownload kunnen worden.
quote:Op woensdag 3 september 2008 14:45 schreef whoops het volgende:
Als iemand nog een leuke programmeeropdracht zoekt, dit is je kans:
http://www.getacoder.com/projects/programming_c_87390.html
quote:Op woensdag 3 september 2008 14:44 schreef WyriHaximus het volgende:
OMMFG
quote:Op woensdag 3 september 2008 14:45 schreef whoops het volgende:
Als iemand nog een leuke programmeeropdracht zoekt, dit is je kans:
http://www.getacoder.com/projects/programming_c_87390.html
quote:Op woensdag 3 september 2008 14:45 schreef whoops het volgende:
Als iemand nog een leuke programmeeropdracht zoekt, dit is je kans:
http://www.getacoder.com/projects/programming_c_87390.html
quote:Budget: $ 20-100
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |