siDDis Skrevet 10. juni 2014 Del Skrevet 10. juni 2014 Noko er galt, og du må fikse det. Uansett kor irriterande det er Å droppe integrasjonstester er mykje verre å droppe unit-tester. Og integrasjonstester for distribuerte systemer er meir komplisert enn å bare sjekke om nettlinja er oppe. Tenk på leader election, locking, queues osv... Lenke til kommentar
rockPaperScissors() Skrevet 10. juni 2014 Del Skrevet 10. juni 2014 Å programmere helt uten tester er som å kjøre bil uten bilbelte. Ja, du sparer noen sekunder på å sette deg inn i bilen uten å ta på bilbelte. 1 Lenke til kommentar
siDDis Skrevet 10. juni 2014 Del Skrevet 10. juni 2014 Ja og nei, du tester det som er naudvendig. Eg gidder ikkje å skrive tester for små trivielle ting. Men eg tester gjerne ting som eg finner komplisert og som er viktig funksjonalitet som alltid bør fungere. Lenke til kommentar
GeirGrusom Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 Å programmere helt uten tester er som å kjøre bil uten bilbelte. Ja, du sparer noen sekunder på å sette deg inn i bilen uten å ta på bilbelte.Det var vel aldri snakk om å ikke ha tester her... Lenke til kommentar
rockPaperScissors() Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 (endret) Gikk ut fra at du bruker bilbelte, GG. Men jeg møter mange som synes det er en høy terskel å endre vanene sine til å begynne å bruke bilbelte (automatiske tester). Endret 11. juni 2014 av rockPaperScissors() Lenke til kommentar
PhelpsTransposed Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 Meg igjen! I min webcrawler har jeg problemet med at noen av linkene jeg henter fra BeautifulSoup er av typen /internlink mens andre er http://www.enlink.noBør jeg sjekke hver enkelt link om den starter med http://, www - og hvis ikke combine 'http://www.domenet.no' og '/internlink'? Lenke til kommentar
Lycantrophe Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 Vil tippe det kommer av at de er kodet som internlinker i kilden. Isåfall er det bare å prepende med nåværende URL, ja. Og hvordan gjør du det? :--) Lenke til kommentar
PhelpsTransposed Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 (endret) import urlparse if link.startswith("http"): #dostuff elif link.startswith("www"): #dostuff else: #evnt sjekk startswith("/") link = link+urlparse.urlparse(urlsToCrawl_Parent[0]).hostname #urlsToCrawl_Parent[0] er da parentlinken vi er på nå Slik? Endret 11. juni 2014 av PhelpsTransposed Lenke til kommentar
Lycantrophe Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 (endret) Nei. def sanitize( url, parent ): if is_internal_link( url ): return parent + url return url #in main worker function for child in anchors: enqueue( sanitize( child, parent ) ) Noen kommentarer: Siden funksjonskall i python er ganske dyrt -kan- du velge å gjøre dette direkte, altså uten funksjon men med if-en der den brukes. Du kan bruke regex for å sjekke dette. Sjekk om urlen starter med http. re.compile( "^http" ); re.match(); eller hvordan det ser ut i python. Mulig du også kan plassere matcheren på utsiden for effektivitet slik at du bare trenger .compile én gang, aka gjøre den global. Poenget er uansett at siden dette er interne funksjoner sørger du for å rydde opp i URLer på forhånd og la alt gå gjennom samme code path (siden det ikke spiller noen rolle om en URL måtte tunes eller ikke for den øvrige koden). På den måten slipper du å håndtere for feil i andre komponenter. Som en kul konsekvens av å bruke en funksjon for sanitize kan du nå: for url in map( lambda x: sanitize( x, parent ), anchors ): enqueue() der enqueue er det vi diskuterte sist hvor du oppdaterer legger den i køen din dersom den ikke allerede er besøkt etc. lambdaen blir såpass grisete fordi python ikke støtter currying. Endret 12. juni 2014 av Lycantrophe 2 Lenke til kommentar
PhelpsTransposed Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 Tusen takk for svar!Bør jeg bruke regex istedenfor python sin innebygde startswith http://www.tutorialspoint.com/python/string_startswith.htm ?Hvordan er det å sjekke bare for http, bør jeg ikke også sjekke for bare www? Lenke til kommentar
Lycantrophe Skrevet 11. juni 2014 Del Skrevet 11. juni 2014 (endret) Starstwith er fin. Vil linker være gyldige uten http(s)? Husk at www ikke er noe krav, ergo en dårlig ting å sjekke for. edit: men det du kan gjøre for å være helt sikker er å sjekke http(s) og startswith( parent ). Det er ikke spesielt ineffektivt grunnet short circuiting. Endret 11. juni 2014 av Lycantrophe Lenke til kommentar
snippsat Skrevet 12. juni 2014 Del Skrevet 12. juni 2014 Bør jeg bruke regex istedenfor python sin innebygde startswith Regex er mye jobb viss du skal være nøye,les S.Lott sitt svar her. urlparse er grei. Tips starswith() kan ta ta tuple med flere argumenter. startswith(("http", "https")) Du kan jo også litt hvordan web-rammeverkene løser dette,Django og Web2py har egnene løsninger for dette. 3 parts bibliotek finnes det også flere av yurl validation,som bygger på/ forbedrere urlparse. Lenke til kommentar
Lycantrophe Skrevet 12. juni 2014 Del Skrevet 12. juni 2014 (endret) startswith(("http","https")) er da helt ubrukelig. Poenget var ikke å verifisere URLen, poenget var å vurdere om den var relativ/intern eller absolutt. Til det trenger man strengt tatt ikke regex, da man uansett bare vil gjøre startswith. Endret 12. juni 2014 av Lycantrophe Lenke til kommentar
snippsat Skrevet 13. juni 2014 Del Skrevet 13. juni 2014 (endret) er da helt ubrukelig. Ja være enig i det. For og pynte litt på det var tipset rettet mot post #2468,hvor startswith er brukt 2 ganger sammen med if/elif. Her hadde link.startswith(("http", "www")) vært bedre rent kodemessig. Men som du har nevnt og vist,så er dette ingen god metode eller løsning i det hele tatt. Endret 13. juni 2014 av snippsat Lenke til kommentar
Lycantrophe Skrevet 13. juni 2014 Del Skrevet 13. juni 2014 (endret) Åh, absolutt, if-else der er retarded. Flytt det inn i sanitize() og ha en lineær codepath. Endret 13. juni 2014 av Lycantrophe Lenke til kommentar
dabear Skrevet 2. august 2014 Del Skrevet 2. august 2014 Holder på og kaller en soap webservice fra et c# mvc 4 prosjekt. I kallet til webservicen kjører jeg: var foo = new Bar{ someprop= true } baz.doit(foo); Jeg fikk det f*** ikke til å fungere, før nå. Jeg så at typen Bar også hadde feltet "somepropSpecified" som også måtte settes til true for at verdien av "someprop" skulle ihensyntas. Denne somepropSpecified er ikke en del av webservice-definisjonen (wsdlen), men noe som visual studio ser ut til å generere. Noen som veit hvorfor? Lenke til kommentar
GeirGrusom Skrevet 9. august 2014 Del Skrevet 9. august 2014 Denne somepropSpecified er ikke en del av webservice-definisjonen (wsdlen), men noe som visual studio ser ut til å generere. Noen som veit hvorfor? C# 1.0 hadde ikke støtte for nullable value-types som ble introdusert med generics og Nullable<T>. Før dette kunne ikke for eksempel en int være udefinert. En XML webservice derimot kan ha felter som ikke er spesifisert, men objektet må fortsatt ha disse egenskapene tilgjengelig. Hvilken versjon av Visual Studio bruker du? Lenke til kommentar
dabear Skrevet 14. august 2014 Del Skrevet 14. august 2014 Hvilken versjon av Visual Studio bruker du? Sorry for seint svar. Bruker visual studio 2012 Lenke til kommentar
GeirGrusom Skrevet 18. august 2014 Del Skrevet 18. august 2014 Etter litt undersøkelser ser det ikke ut til at wsdl.exe vil bruke nullable i noen tilfeller. Men da vet du ihvertfall hva det er. Dustete at det er sånn, men de fleste går for JSON-varianter nå istedet så i typisk Microsoft stil lar de bare gamle systemer råtne. Det er mulig du kan finne andre generatorer som ordner dette korrekt derimot, kanskje som en nuget build pakke? Lenke til kommentar
Flin Skrevet 29. august 2014 Del Skrevet 29. august 2014 For mange år siden var det en bruker som hold en slags programmenings utfordring her på forumet, vel gamle hw.no forumet. Noen som er gira på å dra i gang noe slikt? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå