Inlägg

Inlägg som arcticslayer har skrivit i forumet
Av arcticslayer

Lagringsstrategi, Synology DS213+ och synkning med flera datorer?

Jag har precis skaffat en Synology DS213+ men är lite fundersam över hur jag får till effektiv och flexibel lagring på ett bra sätt.

(Jag har satt in 2 st Seagate NAS 4TB och skapat en SHR-volym av dem (ungefär RAID 1 alltså) för drygt 3.5 TB effektivt utrymme.)

Så här ser min datorvärld ut:
* Blandat Windows och Mac OS X på 4-5 datorer där det är önskvärt att filer kan kommas åt från alla datorer och att dessa synkas mot NASen.

* Mediacenter av olika slag används för streaming av bild och ljud (typ PS3).
- Det verkar gå att få till med Media Station, osäker på om det går att transcode on-the-fly till PS3-vänligt format dock.

* Iphone och Ipad finns flera stycken i hemmet, det vore smidigt om det gick att komma åt filer från dem.
- Det verkar gå att få till med Synologys appar.

* Vissa av datorerna används för fotoprojekt (min frus företag inom fotobranschen) vilket gör att det genereras mycket nytt data ofta (en fotosession kan vara hundratals bilder i RAW-format).
- Fotona tar upp mer utrymme än vad som finns tillgängligt på datorerna så alla projekt får inte plats på den primära arbetsdatorn. Jag vill få till någon form av "selektiv synkning" så att man kan välja en katalog på NASen, synka/kopiera till en dator, arbete lokalt på datorn (och ändringar synkas till NASen) och när man sedan är klar med projektet tas det bort från datorn.

* Backup görs med Crashplan+ Family Unlimited och Time Machine (på Macarna).
- Jag tänkte köra backup på allt viktigt direkt på NASen, det ska gå att installera Crashplan på den. Backup kommer att gå dels till extern disk ansluten till NASen, dels till Crashplan Central (molnet). Eventuellt kompletterande backuper på filer från några av datorerna.
- Time Machine-lagringen kanske också kommer att ligga på NASen, annars blir det extern disk ansluten nånstans.

Lite flummigt beskrivet, jag vet, men är det någon som har några tips på hur jag sätter upp sakerna på NASen och datorerna för det här?

Av arcticslayer
Skrivet av MugiMugi:

Om du vill lära dig tråd hantering och C# så rekommenderar jag denna läsning http://www.albahari.com/threading/ en bit ur en stor bok jag också kan grymt rekommendera om du vill fördjupa dig i C# med namnet C# in a nutshell

+1 på den länken, den hade jag stor nytta av när jag skulle komma igång med trådar.

Av arcticslayer
Skrivet av xedoz1:

jo har övervägt bok, föredrar dock läsning på nätet då jag av nån anledning har otroligt svårt för att hålla koncentrationen med fysiska böcker.
men det med serialisering ger mig bara mer frågor egentligen, alltså mer exakt så undrar jag nog över detta:
House house = DeserializeFromXml<House>(encoder.GetString(message, 0, bytesRead));

för att min kod ska förstå att det är ett hus så måste jag för skriva i koden "det här är ett hus, läs av huset"
hur ska jag kunna skicka tex, spelar position, spelar health, spelar damage och dessamma gällande tex från servern kommer mobs med samma info.
hur ska clienterna / servern veta vad som är vad?
blir det en otroligt lång if sats som frågar efter allt och if blabla gör så och så?
ska jag ta all info jag vill skicka o lägga i ett o samma "paket" och skicka emellan. vad händer om min server behöver skicka info om 25mobs på en karta och 30 mobs på en annan karta?

jag tänker något i stil med server: "foreach mob på samma karta som spelaren" "skicka information"
client: "ta emot info ifrån servern, här är det visst en mob oxå"
man måste väl på något sätt tolka strömmen, jag jämför lite snabbt med när jag läser XML nu så gör jag nåt i stil med att jag letar efter tex "name" i xml filen, sen i koden så vet jag att inuti name tagen finns infon jag behöver så när jag hittat name så skriver jag dess value i variabeln name typ.
är det något i stil med detta jag ska göra med min networkstream också?

så vitt jag förstod det måste man ju ha en tcp listener för varje client, och det bör väl va bäst o köras trådat så man får det att updatera sig så nära på samtidigt som möjligt.

Du kan serialisera (på sändsidan) och deserialisera (på mottagarsidan) vilket egendefinierat objekt som helst så länge applikationerna på båda sidor av applikationen vet hur objektet är definierat och att serialisering/deserialiseringen är rätt specad. Läs på lite mer om det där så inser du att det är lättare än den hantering av XML du gjort.

Vad gäller TCP listener så har jag för iag att man har en sådan på servern och för varje inkommande connection kickar man igång en ny tråd där själva kommunikationen sker, eller nåt åt det hållet. Du vill antagligen bara ha en port som klienterna ansluter till och då blir det en listener.

Själv tycker jag en bok är väldigt bra, man kan ha den vid sidan om och inte behöva växla till webläsare och eta varje gång man undrar över något. En bra bok har ofta väl utvecklade exempel som hänger ihop.

Av arcticslayer
Skrivet av xedoz1:

Jag har för ett tag sen fått för mig att lära mig programmera lite, och är då framför allt intresserad av spelprogrammering.
så för o förenkla för mig själv så valde jag c# och XNA, vilket då har gett mig ganska grundläggande programmeringskunskaper och vad gäller just XNA så är det ju ganska lätt och jag klarat av o skriva ett halvt fungerande spel.
men nu är det dags o förnya det här projektet och skriva om det från början med framförallt ett tillägg av nätverk och möjligtvis användade av trådar.
Har googleat lite hit o dit om ämnet men förstår ändå inte riktigt så hoppades att någon vänlig själ kunde förklara lite för mig!

1. För det första så undrar jag då, HUR fungerar dessa trådar i koden får ingen direkt förklaring på det. som jag har förstått det så går väl programmet uppifrån och ner i koden? Vad händer då om jag gör en loop i stil med detta inuti min main tråd:
for (int i = 0; i < 2; i++)
{
Thread t = new Thread(new ThreadStart(Service));
t.Start();
}
som jag ser det så kommer antingen maintråden fortsätta, eller kommer den vänta på dessa två trådar?

2. Vad gäller nätverk med så är jag inne på att börja med TCP om ingen anser att UDP skulle va ett bättre val?

3. Jag undrar dessutom lite mer exakt VAD är en networkstream, alltså hur ska mitt program förstå vad som är vad utav det som skickas?
tänk typ att jag vill att server ska få en int variabel av clienten, och så kanske även en string, måste jag skicka det här varsin gång, och när jag nu gör det, hur vet server/clienten vad som är vad?

tacksam för svar!

1.
De trådar du skapar kommer att exekvera "parallellt" med din main-tråd. "Parallellt" innebär nte nödvändigtvis att de exekverar samtidigt, det beror ev. Hur det ser ut med tillgängliga processorkärnor osv. Du kan se det som att det körs samtidigt men du kan aldrig vara säker på hur varje tråd blir tilldelad processortid. Det här gör att det i många fall blir nödvändogt att synkronisera trådar, se http://msdn.microsoft.com/en-us/library/ms173179.aspx.

Vad som händer med dina skapade trådar om main-tråden når sitt slut beror på huruvida dina trådar satts upp som bakgrundstrådar eller inte, vill jag minnas.

2.
Jag ser det så här: om det är information man behöver vara säker på att den kommer fram till mottagaren oavsett hur lång tid det tar så gäller TCP (man lär får reda på om ett datapaket inte kommer fram, t.ex. Om det blir timeout på länken). UDP lämpar sig väl för realtidsinformation som har ett "bäst-före-datum", t.ex. audiostreaming där det kanske kan vara bättre att bara strunta i om det försvinner några millisekunder då och då, det kanske är viktigare att komma vidare i strömmen. UDP är lite grann "fire-and-forget", avsändaren får inte reda på att mottagaren tagit emot datapaketen. Det finns dock inget hinder för att själv implementera övervakning av kommunikationen på en högre nivå (t.ex. att mottagaren via UDP skickar en någon form av meddelande där den bekräftar att meddelandet mottagits).

3.
Jag föreslår att du tittar lite på serialisering av objekt, t.ex. den här tråden som jag gissar liknar det du är ute efter (någon form av egendefinierat objekt skickas via TCP:
http://stackoverflow.com/questions/7849074/serializing-object...

Ett tips är att skaffa en bra bok att läsa, jag tror att jag hade "Professional C# 2008" av bl.a. Christian Nagel och jag tyckte den var rätt OK. Om du vill använda de grejer som tillkommit i de senaste .NET-versionerna behöver du dock en nyare bok.

Av arcticslayer

WLAN för 25000 m2 lagerlokal?

Jag fick en fråga vem man ska vända sig till för installation i WLAN i en större lagerlokal, c:a 25000 kvadratmeter. Täckningen måste vara bra trots att det kan finnas mycket material som dämpar signalerna mycket.

Lokalen är i Göteborgstrakten.

Ifall någon har förslag på vilken typ av teknik som bör användas så är jag tacksam, alltid bra att veta om installationsfirman försöker kränga något onödigt dyrt och/eller komplicerat.

Av arcticslayer

WPF: Data från SQL till olika Panels (Binding, C#)?

Jag är ny i WPF-världen och har ett par bekymmer jag inte förstår hur man löser på bästa sätt. För "Problem 1" har jag en Windows Forms-lösning i C#, men den behöver ersättas med en WPF-variant. Språket för code-behind är C#

Problem 1.
Jag har indata från en SQL-databas som ligger i en DataTable som ser specificerar schemaläggning för olika personer och vilken resurs ("mojäng") de behöver använda, när och hur länge. Null motsvarar att personen finns men är inte inplanerad på någon resurs.
T.ex.
Adam, Mojäng 1,2012-04-02 20:30,4h
Bertil, Mojäng 1, 2012-04-03 08:00,3h
Cesar, Mojäng 2, 2012-04-02, 21:00, 1h
David, null, null, null
Adam, Mojäng 2, 2012-04-04, 01:00, 10h
Erik, Mojäng 2, 2012-04-02, 19:00, 1h
osv...

Vad jag vill ha är en horisontell "tidslinje" för varje resurs (mojäng) där någon form av grafisk representation av personerna läggs ut på rätt mojäng vid rätt tid, om resursen och/eller tidsangivelserna är null ska de hamna i en separat panel. De kan hamna där flera gånger. I en tidslinje ska det gå att flytta en person och då ska uppdateringen gå hela vägen tillbaka till databasen. Det ska också gå att drag'n'droppa mellan panelerna. Alla tidslinjer scrollas med en gemensam scroll-control.

Ett sätt att lösa det är väl att t.ex. med LINQ få ut alla personer och tider som har "Mojäng 1", "Mojäng 2", osv och på så sätt skapa en lista av listor, där varje sublista går att binda till en panel som dynamiskt skapas beroende på hur många resurser (mojänger) det finns (resurserna läses från en separat tabell i databasen). En lista innehåller allt som har "null" som resurs och den binds till en separat panel.

Vad jag förstått är det här sättet att göra saker inte vad som är önskvärt i WPF, där man hellre vill ha så mycket som möjligt av representationen i XAML och inte skapa en mängd paneler i runtime.

Jag inser att beskrivningen är knapphändig, men jag får nog begränsa mig till detta.

Går det på något vettigt sätt att åstadkomma det jag vill genom någon klyftig Binding?

2. Liknande problem som ovanstående, men nu vill jag istället ha ett antal personer som har uppgifter inplanerade varav vissa tar flera dagar.
Jag tänker mig då en panel per person där det först är någon grafisk representation av personen samt avdelningen personen jobbar på, sedan en tidslinje (också en per person) där uppgifterna ligger utplacerade på något fint sätt.

Försök att visa vad jag vill
Tid->
Adam - Skura golv (4/2) - - Laga soppa (6/2), Spika spikmatta (6/2)
Bertil - Hämta mat (4/2) - Byt fönster (3/2) - - - -
Cesar - - - - - Tanka bil (7/2)
David - - - -

Samtidigt skall alla uppgifter samlas i någon form av lista-

All information ska ligga i en SQL-databas som uppdateras om man flyttar på uppgifter i den grafiska representationen. Det behöver inte gå att flytta uppgifter mellan personer, men det vore trevligt.

Luddig formulering, men någon kanske kan komma med några tips?

---

Tacksam för all hjälp!

Av arcticslayer

Exakt kopia av bootbar USB-pinne? (Backup)

Jag har idag en dator som agerar brandvägg och kör Pfsense på den, för tillfället från USB-minne då SSDn i datorn dog (för andra gången på ett halvår, akta er för Kingston SSDNow S100 16GB!).

För att inte hamna i trångmål nu när jag kör på min tänkta backuplösning (USB-minnet) ifall det skulle hända något så att installationen blir korrupt skulle jag vilja klona USB-minnet exakt till ett annat USB-minne.

Någon som har några tips?

Av arcticslayer
Skrivet av Sup3rioR:

Detta är fan sjukt alltså, kollektiv bestraffning säger jag bara! Borde de inte bli lagligt nu att tanka då dom tagit betalt för ett brott som ännu inte begåtts ? Vansinne!

Nej, avgiften täcker den lagliga PRIVATKOPIERINGEN - inte den olagliga PIRATKOPIERINGEN.

Av arcticslayer

Går det att på något sätt stötta UMA? Jag antar att de kommer att möta hårt motstånd från Copyswede och deras vänner i rätten så de kanske behöver ekonomisk hjälp?

Insamling?

Risken är att det blir som i TPB-rättegången där rätten inte förstår det tekniska och hur verkligheten ser och därför dömer till Copyswedes fördel, vilket kan vara katastrofalt för andra typer av enheter (mobiltelefoner, interna hårddiskar, osv).

Av arcticslayer
Skrivet av Leedow:

Jag hade kanske köpt en om det var en kapacitiv skärm istället för resistiv.
Det går tyvärr bort helt och hållet för mig.

Såg precis att det verkar vara resistiv skärm och inte multi-touch, det går ju inte...

Av arcticslayer

Latenstiderna kan väl döljas genom att trådar switchas ut när de behöver data. För flerkärniga processorer blir det kanske samma sak?

I GPUer döljer man latensen från de långsammare typerna av minne på så sätt - ganska mycket förenklat kan man säga att om en tråd behöver vänta på data från minne så görs en context switch till en tråd som kan räkna. Den första tråden får sedan fortsätta köra när data har hunnit fram från minnet. Många trådar kan på så sätt utnyttja processorkraften till max och inte stå still och vänta på data utan att processorn kan användas.

Av arcticslayer

I nuläget kan man tydligen inte ändra det här själv om man har fast IP.

I mitt fall så blev det en ändring åt andra hållet istället - ökad interleaving (via kundservice på telefon) för att få ner mängden fel på länken.

Av arcticslayer
Skrivet av andelf:

Jag skulle satsa på att det inte blir någon sata4, utan att även hårddiskar kommer att kopplas direkt på LightPeak/Thunderbolt.

Thunderbolt finns väl inte för internt bruk ännu, eller? För övrigt så är det vad jag förstår PCIe som kapslas in i Thunderbolt (+grafik), så det är kanske mer intressant att koppla in sig direkt på en PCIe-switch?

Av arcticslayer

Är det alltså Interleaving som ändras när man aktiverar Gaming? Är det i så fall även något annat som påverkas?

Skippas interleaving helt eller reduceras den bara?

Om interleaving skippas, slås felrättning då samtidigt av? Enligt http://www.kitz.co.uk/adsl/interleaving.htm så är de i alla fall aktiverade samtidigt (verkar rimligt, interleavingen ger väl inga fördelar om den inte gör att man kan rätta felen som uppstår..).

Av arcticslayer

Det är akut i den mån att den här datorn behöver komma igång, men den är inte planerad att ersättas förrän nästa gång den går sönder - förhoppningsvis dröjer det några år till.

EDIT:
Det skulle stå "inte planerad", rättat.

Av arcticslayer

Behöver akut ersättare för gammal MB+CPU (+minne), duger detta?

Jag behöver akut ersätta moderkort och processor i en äldre dator (Pentium 4) och behöver inga prestandagrejer - bara något som är konstnadseffektivt och hyggligt modernt.

Jag tittar på Kompletts uppgraderingspaket http://www.komplett.se/k/ki.aspx?sku=604569#info
som alltså är:

* Intel Core™ i3 Dual Processor i3-540 Dual Core, 3.06Ghz, Socket 1156, 4MB, 73W, Boxed w/fan
* MSI H55M-E33, Socket-1156 mATX, H55, DDR3, 1xPCIe(2.0)x16, VGA, DVI, HDMI, GbLan, OC Genie, DrMOS
* Corsair Value S. DDR3 1333MHz 2GB CL9 Unbuffered, CL9-9-9-24, 240pin, 1.5V

Är det en bra deal eller finns det bättre alternativ?

DDR2-minne finns, så egentligen klarar jag mig med MB + CPU om det finns vettiga alternativ som gillar DDR2.

Jag förutsätter att det funkar att ha ett mATX-moderkort i Lian-Li PC-60 Plus, nån som vet?

Av arcticslayer

Hmm, jag tror inte virtualiseringsgrejen är vad jag vill ha, inte heller någon annan form av Hackintosh.

Antingen får det bli att kunan få upp en GUI-session på min Windowsdator, eller så får jag bita i det sura äpplet och köpa en Mac till...

Av arcticslayer

I huvudsak Xcode, men jag antar att det kan handla om flera fönster (t.ex. iPhone-simulatorns fönster).

Det bästa vore så klart att få en komplett GUI-session. Att prestanda går ner för den lokala användaren gör nog inte så mycket, men vi får väl se hur mycket kärringen skriker...

På mitt jobb är vi "hur många som helst" som m.h.a. Exceed och Putty (SSH) loggar in på kraftiga Linuxmaskiner, går det inte att få till det på en Mac (kräver det kanske Server-version av MacOS X?).

Av arcticslayer

Jag försökte mig på VMWare-varianten igår, men det gick inte. Jag misstänker att den MacOS X-skiva som följde med Macbooken inte duger för installation (det är alltså inte en retail skiva, jag vet inte om den är mer av typen "recovery"-skiva).

Sen är väl frågan om det är tillåtet att köra på det viset ändå...

Jag hittar mycket info om att sitta på en Mac och komma åt t.ex. en session på en Linuxmaskin, men inte så mykcet tvärtom...

Av arcticslayer

Hmm, min tanke är att få igång en separat GUI-session som inte påverkar/påverkas av en eventuell session lokalt på Macen.

Vad jag vil är att köra Xcode utan att behöva sitta vid den lilla 13"-skärmen som Macen har och dessutom vill jag inte störa en eventuell lokal användare på Macen.

Sånt här är väl "hur lätt som helst" att få till med en Linux-maskin, är det krångligare på Mac?

Kan man inte köra en X server (t.ex. Exceed, X manager, Reflection X) och på så sätt få en egen X-session med GUI på PCn?