Inlägg

Inlägg som Deatlev har skrivit i forumet
Av Deatlev

Tangentbord sålt!

Av Deatlev

Logitech G502 (mus) OCH QPAD-Mk50 Mekaniskt tangentbord med röda brytare

Jag säljer ett QPAD-MK50 med röda CHERRY MX brytare. Det köptes från inet för ca ett halvår sedan. Jag säljer det nu för 400kr inklusive frakt (eller hämtning i Falun för 350kr).
Detta är tangentbordet i fråga: https://www.inet.se/produkt/6101691/qpad-mk-50-mx-red#merinfo (1.5 år garanti kvar, kvitto finns).

Det har varit pedantiskt skött med tryckluft och jag är en hygienisk person. Tangentbordet har jag varit mycket nöjd med.

--------------------------------------------------------------------
Jag säljer även en mus av märket Logitech G502 Proteus Core. Den köptes också från inet för ca ett halvår sedan. Detta är musen: https://www.inet.se/produkt/6607841/logitech-g502-proteus-spe... (2.5 år garanti kvar, kvitto finns).

Musen har även den varit pedantiskt skött. Denna säljer jag för 450kr inklusive frakt eller 400kr vid hämtning. Vikter och andra tillbehör finns.

Den är programmerbar med minne, scrollhjulet kan låsas upp med ett knapptryck så den rullar fritt, DPI kan ställas in i profiler m.m. Jag har varit mycket nöjd med denna mus.

--------------------------------------------------------------------
Jag kan nås på nummer 0739095914 eller här på PM eller diskussionstråden. Referenser finns här.

Swish finns, bank finns, händer finns. Även blocketpaketet kan användas om det föredras.

Läs hela annonsen här

Av Deatlev

Jag brukar gå upp klockan 4 på morgonen oavsett lov eller skola. Jag behöver inte lika mycket sömn som andra. Jag går även upp så tidigt för att jag värderar tystnaden och för att jag får mycket gjort under de första timmarna.

Av Deatlev
Skrivet av sweshady:

@Deatlev: YES!!! Nu funkar det! Tack så hemskt mycket för hjälpen! Löste det tack vare dig! Uppskattar det verkligen!! Åh vad skönt.

Angående koden överlag, jag ska fixa bättre variabelnamn och skriva kommentarer så jag förstår mig själv bättre.
Är det något annat jag ska tänka på i framtiden?

Lite småsaker jag ser du kan titta lite på är docstring m.m. Du har ju redan kommit underfund med __str__; funktionen som körs om man kör funktionen print på ett objekt. Titta på __doc__, __name__ och __class__ också.

class Note: """ Psst. Detta är en docstring. """ def __init__(self): pass

En stor grej i all programmering är unittest. Detta är en jätteviktigt sak som kommer att göra dig en bättre programmerare än mängden för att du lär dig att tänka på problem och hur de kan uppstå samt hur du konstruerar test och upptäcker dessa. Detta är anledningen till att jag t.ex nämnde problemet med klockslag. Med test programmerar man då enligt principen testa först, skriv sedan koden. Ungefär metaforiskt med "tänk först, handla sedan". I python används biblioteket unittest samt nyckelordet assert.

Nu ger jag dig ett exempel för processen.

Steg 1 är att skriva ett test.

#testcar.py import unittest from car import * # Klassen TestCar ärver från klassen TestCase i biblioteket unittest. class TestCar(unittest.TestCase): def test_create_instance(self): car = Car() self.assertTrue(isinstance(car, Car))

Nu har vi skrivit ett test, och nu konstruerar vi koden för att testet ska fungera.

#car.py class Car: def __init__(self): pass

Vi kör detta kommando i kommandotolken och får resultat:

python -m unittest testcar.py . --------------------------------------------------------------- Ran 1 test in 0.001s OK

Gå tillbaka till steg 1.

På detta vis är du jädra smart genom att skapa tester för ditt program och på så sätt få ökad förståelse för din egen kod samt ha lättare för att lösa problem. Programmet kommer att växa smidigt och nästan felfritt när du konstruerar en ram av tester för att framhäva din mening. Skriv så små test du kan. Det är dålig vana att skriva alltför mycket i ett test för då kommer du ha svårt att hitta fel om ett test inte går rätt till. I första exemplet ser du ett litet test. Det mest grundläggande är ju faktiskt att bara skapa en instans av ett objekt och se om det har fungerat.

Så ser du att koden växer:

#testcar.py import unittest from car import * # Klassen TestCar ärver från klassen TestCase i biblioteket unittest. class TestCar(unittest.TestCase): def test_create_instance(self): car = Car() self.assertTrue(isinstance(car, Car) def test_create_fueled_car(self): car = Car(10) self.assertEqual(10, car.fuel) def test_add_fuel(self): car = Car() # Vi är helt säkra på att bilen inte ska ha bränsle när vi först skapat instansen. self.assertEqual(0, car.fuel) # Vi tankar bilen och testar car.add_fuel(5) self.assertEqual(5, car.fuel)

#car.py class Car: """ This is the class docstring, wink. This class represents a car. A car can have fuel. """ def __init__(self, fuel=0): self.fuel = fuel def add_fuel(fuel): """ Adds fuel to the car. @param fuel: The amount of fuel to add to the car. """ self.fuel += fuel

Vi testar i kommandotolken igen:

python -m unittest testcar.py E.. =================================== ERROR: test_add_fuel (testcar.TestCar) --------------------------------------------------------------------- Traceback (most recent call last): File "C:\users\testcar.py", line 21, in test_add_fuel car.add_fuel(5) TypeError: add_fuel() takes 1 positional argument but 2 were given. --------------------------------------------------------------------- Ran 3 tests in 0.001s FAILED (errors=1)

Woops! Testet misslyckades! Nu tittar jag på varför och ser att jag har glömt att skicka in parametern self när jag gjorde klassen. Lätt fixat!

Nu får jag:

... -------------------------------------------------------------------- Ran 3 tests in 0.000s OK

och fortsätter koda tills jag uppnått mitt ändamål med klassen car varav jag kanske skriver lite fler tester för att testa s.k. "edge cases".

Se så programmet växer! Detta är bra vana. Skriv test för alla program du gör. Jag stoppade in lite avancerade kommentarer i det senare programmet som är standard i python. Python kan läsa av dessa docstrings och hjälpa andra personer som använder ditt program genom att t.ex skriva help(Car) i konsollen och på så sätt få reda på vad klassen gör, vilka metoder den har och vad de är och används för.

Av Deatlev
Skrivet av sweshady:

@Deatlev: Okej, kanon - tack!

Jag har ändrat så klasser har första bokstaven stor, och allt det andra småbokstäver nu.
Jag har skrivit min sorten() kod enligt nedan, men får felmeddelande "TypeError: must be str, not Anteckningssidor", där Anteckningssidor är min första klass... jag hittar inget på google om att det måste vara en sträng och inte klass. Vad behöver jag ändra på!?

def lista(self): self.sidor = sorted(self.sidor, key=lambda x: datetime.datetime.strptime(x, '%Y-%m-%d')) for x in self.sidor: return self.sidor

Du har krånglat till lambdan lite bara.

I denna kodsnutt ska du titta.

sorted(self.sidor, key=lambda x: datetime.datetime.strptime(x, '%Y-%m-%d'))

Fråga dig själv vad x innehåller. Du fick felet TypeError. Funktionen sorted förväntade sig en nyckel i form av en funktion som ger en sträng, inte ett objekt. Du har skickat in x i sorted-funktionen, och den säger ifrån och säger att det som för tillfället är x vill den inte ha. Titta på min förra kodsnutt om hur jag löste ditt problem.

För övrigt klarar funktionen sorted av att ta in datetime som det är, vilket betyder att din formatering m.h.a datetime är överflödig. Ett problem som denna kod gör nu är att om du senare vill anteckna tid på dygnet kommer denna kod du har inte sortera efter klockslag. Det skulle se helknasigt ut!

Nu fick du inte ett direkt svar, men jag tror du kan lösa detta mycket enkelt! Annars får du fråga igen så går jag igenom hur du löser det.
Tips: Döp om x till anteckning så ser du nog!

Av Deatlev
Skrivet av sweshady:

@Deatlev: TUSEN tusen tack för hjälpen! Uppskattar det enormt. Är som sagt nybörjare på Python, så ditt pedagogiska svar uppskattas mycket.

Jag förstår lite mer av vad jag behöver göra nu, men av någon anledning så fungerar inte .sort() för mig, utan jag måste använda funktionen sorted() istället. Ja, jag använder Python3 Det jag kom fram till att jag måste skriva är denna kod:

def Lista(self): sorterade = sorted(self.Lista, key=lambda x: datetime.datetime.strptime(x[0], '%Y-%m-%d')) for x in sorterade: return sorterade

men då får jag som svar att: 'method' object is not iterable.

Är det inte en korrekt användning av sorted() funktionen?

Som @Pether säger.

Ändra din kod så att syntaxen lyder:

  • Klasser börjar med stor bokstav

  • metoder, funktioner och variabler börjar med liten bokstav

Detta är oerhört viktigt för att öka läsligheten på din kod och så att du inte blandar ihop saker som ger upphov till fel!

Sedan kan du också döpa saker med huvudordet först. Det bättre att döpa din funktion till t.ex datum_felhantering istället för felhantering_datum för att om du har flera funktioner som har med datum att göra kan det ju se ut så här:

def felhantering_datum(): .... def something_datum(): .... def increment_datum(): ...

När det istället bör vara på detta sätt för att det är lättare att hitta och veta vad saker gör med översiktsläsning:

def datum_felhantering(): ... def datum_something(): ... def datum_increment(): ...

Mycket finare!

Av Deatlev
Skrivet av sweshady:

@nikwad: Bra, tack! Nu borde det funka enligt mig, men jag får tillbaka

def lista(self): sorterade = sorted(self.lista, key=lambda x: datetime.datetime.strptime(x[0], '%Y-%m-%d')) for listan in sorterade: return (listan)

men jag får bara tillbaka: "TypeError: 'method' object is not iterable"

Om du hittar mitt svar ovan så har jag ytterligare anpassat hjälpkod för dig.

import datetime # Försöker efterlikna ditt problem med en class för varje anteckning class Note: def __init__(self, date, note): self.date = date self.note = note # En osorterad lista med anteckningsobjekt list_of_notes = [Note(datetime.datetime.strptime("2016-01-01", "%Y-%m-%d"), "Hej jag är en anteckning"), Note(datetime.datetime.strptime("2015-01-01", "%Y-%m-%d"), "Jag borde vara före den andra!"), Note(datetime.datetime.strptime("2015-12-01", "%Y-%m-%d"), "Jag ska vara på andra plats")] print("Nu är det osorterat!") for note in list_of_notes: print(note.date) """ Konsollen skriver ut: 2016-01-01 00:00:00 2015-01-01 00:00:00 2015-12-01 00:00:00 Det är osorterat! """ """ Vi sorterar den efter datum. OBS! sorted() och list.sort() är lika. Enligt dokumentationen kan vi använda en nyckel! Vi skickar in en lambdafunktion som key som helt enkelt anger att vi vill bara iterera över varje objekts instansvariabel date. """ list_of_notes.sort(key=lambda note: note.date) print("Nu ska det vara sorterat!") for note in list_of_notes: print(note.date) """ Vi får ut detta i konsollen: 2015-01-01 00:00:00 2015-12-01 00:00:00 2016-01-01 00:00:00 Wohoo! Objekten i listan är nu sorterade efter deras instansvariabel date. """

Av Deatlev
Skrivet av sweshady:

Massa text

Hej! Vad roligt att du skriver program. Fortsätt göra detta och experimentera så kommer du långt. Det är inte heller fel att fråga om hjälp om man fastnar. Ibland kan det vara enkla problem; och det kan vara så att man bara tänker från fel perspektiv.

Jag tar för givet att du använder Python 3.x. Python har en inbyggd funktion vid namn sorted. Denna hittar du dokumentation om på deras sida här. Ibland kanske man inte förstår, men mitt tips är att läsa igenom flera gånger samt prova dig fram tills du har stenkoll.

Genom att titta i dokumentationen får du veta några saker.

sorted(iterable[, key][, reverse]) Return a new sorted list from the items in iterable. Has two optional arguments which must be specified as keyword arguments. key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None (compare the elements directly). reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.

Vad härligt! Man kan alltså t.ex skicka in en hjälpfunktion som nyckel till listan (som exemplet med str.lower visar). Har du gjort lambda-funktioner tidigare? Om inte, häng med och försök förstå det bästa du kan.

# Försöker efterlikna ditt problem med en class för varje anteckning class Note: def __init__(self, date, note): self.date = date self.note = note # En osorterad lista med anteckningsobjekt list_of_notes = [Note("2016-01-01", "Hej jag är en anteckning"), Note("2015-01-01", "Jag borde vara före den andra!"), Note("2015-12-01", "Jag ska vara på andra plats")] for note in list_of_notes: print(note.date) """ Konsollen skriver ut: 2016-01-01 2015-01-01 2015-12-01 Det är osorterat! """ """ Vi sorterar den efter datum. OBS! sorted() och list.sort() är lika. Enligt dokumentationen kan vi använda en nyckel! Vi skickar in en lambdafunktion som key som helt enkelt anger att vi vill bara iterera över varje objekts instansvariabel date. """ list_of_notes.sort(key=lambda note: note.date) for note in list_of_notes: print(note.date) """ Vi får ut detta i konsollen: 2015-01-01 2015-12-01 2016-01-01 Wohoo! Objekten i listan är nu sorterade efter deras instansvariabel date. """

Du lär också se till att använda Stora bokstäver för klasser. Det är bra syntax för att skilja på funktioner, variabler och klasser. Glöm inte heller att kommentera! Du kommer tacka dig själv när du ska gå igenom kod du har skrivit för en tid sedan.

Vill du ha ytterligare förklaringar får du fråga mer eller googla!

Av Deatlev

Såld.

Av Deatlev

Nytt chassi: NZXT 810 Switch vit

P.g.a. ett projekt som aldrig blev av säljer jag detta chassi. Nypris är ~1500kr på prisjakt . Jag kan tänka mig skicka iväg chassit för 900kr inklusive frakt eller 700kr för hämtning. Kom annars med prisförslag. Det är alltså helt nytt, oanvänt och ligger fortfarande i sitt originalemballage. Kvitto från inet finns. Garanti är på 2 år.

Jag har även några gamla kylare, kylpasta, fläktar och intel stockkylare jag kan skicka med om man vill ha det.

Länkar:
https://www.inet.se/produkt/6911352/nzxt-switch-810-vit#/spec...
http://www.prisjakt.nu/produkt.php?p=1086418
Referenser:
http://www.sweclockers.com/forum/trad/1079311/sok?searchid=eb...

Läs hela annonsen här

Av Deatlev

Användare: @Rick21
Typ av affär: Jag sålde
Tillvägagångssätt: Förskottsbetalning swish + frakt med posten
Produkt: Be Quiet! Pure rock

Positivt:

  • Snabb och smidig affär

  • Trevlig person

Negativt:
-

Slutbetyg: 5/5

Av Deatlev
Skrivet av Misbah:

Hej, har du kvar Be Quiet kylaren? Är intresserad.

Kylaren är såld.

Av Deatlev

Det ser bra ut. Jag hade dock bytt ut SSDn till en samsung eller dylikt som man kan lita på.

Av Deatlev
Skrivet av ugge:

Tja som rubriken säger så tänkte jag sälja min burk men tänkte att jag frågar er som är lite med erfarna än mig om vad ni tror min burk skulle vara värd som beg dator...

Chassi : Cooler Master Storm Trooper
Cpu : I7 4770k 3.5Ghz (klockad till 4.2Ghz)
Ram : HyperX Savage 32GB 1866Mhz XMP
HDD : WD Blue 500GB 7200rpm
GPU : ASUS GeForce GTX 660 Ti 3GB DirectCU II OC
Mkort : ASUS Z87-PLUS
PSU : Corsair CX 600
Cpu kylare : Noctua NH-U14S
Ljudkort : ASUS Xonar Essence STX

1 x 200mm fläkt på toppen VIT LED
1 x 140mm Bak RÖD LED Bitfenix spectre pro
4 x 120mm sidan (2xHDD 2xMkort) RÖD LED CM sickleflow

+ extra 1x200mm fläkt, 1x140mm fläkt och ett gaming tangentbord (Corsair Raptor K30) med på köpet !

Tack på förhand

Chassi : Cooler Master Storm Trooper 500kr
Cpu : I7 4770k 3.5Ghz (klockad till 4.2Ghz) 2000kr
Ram : HyperX Savage 32GB 1866Mhz XMP 1200kr
HDD : WD Blue 500GB 7200rpm 150kr
GPU : ASUS GeForce GTX 660 Ti 3GB DirectCU II OC 500kr
Mkort : ASUS Z87-PLUS 500kr
PSU : Corsair CX 600 250kr
Cpu kylare : Noctua NH-U14S 100kr
Ljudkort : ASUS Xonar Essence STX 700kr

Ca 6000kr (med OS) är din dator värd plus minus skick.

Av Deatlev

Blås rent den med tryckluft.

Av Deatlev

Chassi och kylare: Nzxt Switch 810 och Be Quiet! Pure rock

Säljer följande:

NZXT 810 switch vit helt nytt inplastat i sin originalkartong, kvitto finns.
Billigaste på prisjakt 1500kr. Pris 1100kr inklusive frakt eller 800kr för hämtning.

Ny Be Quiet! Pure Rock cpu-kylare i kartong med kvitto
Pris 250kr

Skicket på dessa är alltså helt NYTT och OANVÄNT.

Jag har inga problem med att frakta. Marknadsreferenser finns. Kan skicka bilder om intresset finns.

Läs hela annonsen här

Av Deatlev

Jag tycker polisen här är rätt bra. Om man jämför USA t.ex så gäller det för dem att avlossa hela magasinet tills personen inte rör sig överhuvudtaget medan här tränas polisen att vapen sällan ska användas och när det används ska det göras med säkerhet och med syftet att avlägsna hotet. En polis kan bli åtalad om denne hanterar sitt skjutvapen på ett osäkert sätt, t.ex att förbigående personer kan träffas vid en miss.

Av Deatlev

Gå in på open.kattis.com så får du göra problem och samtidigt bli belönad med poäng och öka i rank. Jag ser det litet som ett spel faktiskt. Jag sitter hellre och programmerar för att få poäng där än att spela ett grafiskt spel. Sortera problem på svårighetsgrad så kan du börja med de lättaste problemen och sedan arbeta dig upp!

Att hantera input är inte så svårt, de har en hjälpsida där det finns exempel för olika språk hur du gör det. Lycka till!

Av Deatlev
Skrivet av Paddanx:

Denna generationen och förra, ja. Men du behöver bara gå tillbaka till AMDs 5000 och 6000 serie för att det ska vara omvänt.

Det har skiftats fram och tillbaka flera gånger de senaste 15 åren.
Nvidia har haft kaffekokare flera gånger, både 8000 serien tror jag det var och 400 serien, där AMD har slagit dem på fingrarna. Nu är det som du säger, AMD som kokar kaffe mer. 900 serien är en riktigt fin krets som Nvidia gjort, utan tvekan.

Sen bör du notera att Nvidias kort är betydligt mer optimerade än AMDs kort, och många gånger har AMD visat sig kunna bara genom optimering hänga med en hel generation till. Ta tex 290 serien som började som en varm konkurrent till 680 och nu ligger mot 970/980 i runda slängar med 390 serien. Det är 1,5+ generation som den hängt med...

Tittar du samtidigt så ser du att äldre Nvidia, tex 600/700 serierna får ofta problem när Nvidia ny-optimerar för senaste generationen (tex hairworks...). Nvidias kort få sällan mer prestanda än de får vid släpp eller 6 mån senare iaf då de redan är så hårt optimerade. 7970 korten från AMD tex har fått en otrolig boost sedan de kom och är fortfarande enormt kraftiga för den 1000-lappen de kostar. Sopar mattan i prestanda med alla 960 och nedan iaf som ändå kostar 2kkr, trots att 7000 serien är gammal som gatan.

Sen är det många gånger så att Nvidia gör ett svalt kort, som är lågt klockat, som sen fabriksklockas, och då är varmare och lika eller tom mer svårkylda än AMDs, utan att alltid få mer prestanda. Detta var 780Ti ett exempel på, där 290s optimering gick om och ändå var mer effektiva. Men många missar detta och det enda de ser är dessa usla stockkylarna och 95grader, när i själva verket tex Sapphire har gjort otroligt bra kylare för dem som är både tysta och kraftfulla nog att hantera dem utan problem, även med OC.

AMD har tyvärr dock inte budgeten att göra bästa kylarna, eller teamet för optimeringarna, vilket gör att korten ta lång tid att mogna. Men när de väl gör så har de hittills gett enormt mycket prestanda för pengarna.

Håller med dig till fullo! Mycket objektivt inlägg.

Av Deatlev
Skrivet av Toivo83:

3/10 har sett dig någon stans någon gång