Welcome
http://www.svd.se/naringsliv/operatorer-vill-stoppa-gratissamtal_6957903.svd
Det börjar pratas om att operatörer ska blockera vissa former av trafik. Det är väldigt enkelt att komma runt. Man installerar bara SSHTunnel på en Android-telefon eller motsvarande för iPhone:
http://lifehacker.com/5799888/ssh-tunnel-is-the-easiest-way-to-tunnel-on-your-android-device
Operatörerna kommer alltså se sina nät sakta men säkert gå över till en enda form av datatrafik som dom inte kan göra ett smack åt, krypterad SSH-trafik.
I need to be able to connect SSH to my external ip from within my private network, a so called "loopback" connection. I need this because I will setup my Git repositories in Eclipse on my laptop with my external ip, which means I need to be able to connect to Git via SSH on my external ip when I'm home (loopback) and elsewhere.
The way you do this is for DIR-655 is setting up a "Virtual server". Name it "ssh" and "Public port" 22, TCP protocol, Scheduled Always.
Here's the catch: The private port must not be 22. You need to configure your SSH-server to listen on another port - in my case I sat it up on port 1081 so I configured the private port to be 1081 instead of 22.
If Windows XP, make sure you have "Simple file sharing" OFF.
Start/My Computer - Tools/Options/View. Uncheck "Use simple file sharing (Recommended)".
Install latest winSSHd (http://www.bitvise.com/winsshd-download).
Install latest msysgit in C:\Program\Git. Select "Git bash" and Git's own ssh implementation while installing.
Append git bin directory in the path environment variable in Windows.
Create empty file myshell.sh in git bin directory.
Edit myshell.sh to contain nothing but the two characters $*
Create a user account in winSSHd. Settings/Edit advanced settings. Access control/Virtual accounts/Add
Edit the user: Scroll down until "Exec request path" and edit it to:
cmd.exe /c sh gitcmdhelper.shX
Replace the last X with a space.
Test from a remote computer that you can connect to your ssh server:
ssh user@yourcomputer.com
Create a bare repository on your server, for example:
mkdir C:\Mystuff\GitRepositories\hello.git
Start Git bash in this directory.
git init --bare
(The reason it being a "bare" repository is because you will not work and checkout stuff on your server into this repository. It will only be a bare repository containing the version controlled files/database.)
Time to see if this works from a remote computer. I use Eclipse with Egit. I strongly recommend that you use the latest version of both. In my case Eclipse Indigo SR1 and Egit 1.1.x.xxxxxxxxxxxx-x.
Select import Git project and "clone". The clone URI will look something like this, because git root is in C:\Program\Git
ssh://user@mygitserver/../../MyStuff/GitRepositories/hello.git
When you later commit and push you might get an error:
"error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied"
Then you have to change access rights on the server for all users so they can write to the hello.git directory. And that is when it's handy to NOT use "Simple file sharing" in Windows XP...
My permuted Halton sequence for sampling the photons made a "cloud"-pattern of indirect hits on the walls. This picture was rendered with a plain Mersenne-twister making the indirect light much smoother with just a couple of iterations with 50000 photons with an initial radius of 5 cm and an alpha-value of 0.7. Still using one single radius instead of storing individual radii with each hit.
I also got "polka dots" on the walls because of photons with insane intensity, but with a bit of tinkering with the y-values of the reflection/refraction-distributions they disappeared. Now a each deposited photon is always less or equal to what it was initially generated with.
Now I also use Beer-Lambert's law to attenuate the photons when traveling through dielectric media. Not visible on this small tank though. I currently use one single attenuation coefficient for all wavelengths, but will use full spectral attenuation when I have found good data. This was a really good article about it with some data for seawater: http://partialgeek.net/2010/03/26/physically-based-absorption-in-luxrender/.
The final frontier would be implementing dispersion. The fresnel equations makes the transitions between full internal reflection a bit too sharp and aquariums are littered with nice rainbow phenomenons when you know where to look. Unfortunately this would also make the raytrace very noisy and time consuming so I think I will skip it.
So know the work with making a user friendly GUI will begin and couple it to Google Appengine for storing reflector profiles and spectral data. I don't look forward to it. Especially not the reflector-profile-editor..
The picture is rendered in about 20 minutes with 2000000 photons and 2,4 Ghz without multi threading, but you get a really nice view of the scene in just one iteration in about 20-40 seconds. You'll want 3-4 iterations to get nice anti-alising though.
Det har varit lite tyst om renderaren nu ett tag, men det är inte för att jag inte hållt på med den. Tvärtom. Jag har upptäckt en massa buggar men kanske främst kämpat med att göra om raytracern från sk "path tracing" som kräver sjukt mycket strålar för att bli brusfri, till en mer deterministisk/ordinär "Whitted raytracer". Istället för spekulärt djup där man terminerar strålgången efter ett antal studsar så gör jag istället så att jag avbryter när ljusintensiteten i strålen blivit så låg att den knappt ger något visuellt bidrag.
Raytracingsteget går lite långsammare, men i gengäld försvinner bruset helt och det blir likt originalidén med SPPM.
Denna förändring gjorde dock att det blir jäkligt knepigt med nästlade dielektriska material när en raytracead stråle blir ett fett strålträd som skapar en massa olika diffusa träffar, vilket gjorde kärnan i SPPM-beräkningen svåranvänd, eg omöjlig om jag får säga det. Originalidén är nämligen att man avbryter raytracingen vid en diffus träff och sparar en "hitpoint" med 3dpunkten, normalen och spektralfördelningen - men det blir jäkligt konstigt när en stråle bryts upp i flera när den både går igenom glas och reflekteras samtidigt. Strålen kommer träffa flera olika diffusa ytor, så första idén blev att spara alla dessa diffusa träffar. Efter några iterationer blev minnet fullt.
Efter en sömnlös natt med grubblande så mindes jag att jag läst om några som vidareutvecklat SPPM så att man slipper spara hitpointsen vilket ju då kringår hela problematiken helt. Det tog mig bara en förmiddag att implementera idén, och det mesta av implementeringen bestod egentligen av att skala bort delar av originalkärnan istället för att utöka den.
Avhandlingen heter "Progressive Photon Mapping: A Probabilistic Approach" av
Claude Knaus and Matthias Zwicker: http://www.cgg.unibe.ch/publications/2011/progressive-photon-mapping-a-probabilistic-approach
Mest av tiden har gått åt att debugga refraktionsindex och fresnelberäkningar samt att få Whittedraytracern att funka.
Jag har trott många gånger under de senaste veckorna att jag varit i hamn med raytracern. Precis som nu. Skillnaden nu är att jag har svårt att hitta visuella konstigheter och jag tycker koden blivit rejält mycket snyggare med en massa JUnit-test för refraktionsindexlistan som används för att ljusstrålen ska lista ut i vilket material den förnärvarande befinner sig i, implementerad enligt "Simple Nested Dielectrics In Ray Traced Image" av Charles M. Schmidt and Brian Budge: http://www.idav.ucdavis.edu/func/return_pdf?pub_id=772
[2012-3] [2012-1] [2011-12] [2011-8] [2011-5] [2011-4] [2011-3] [2011-2] [2011-1] [2010-12] [2010-11] [2010-10] [2010-9] [2010-8] [2010-7] [2010-6] [2010-5] [2010-4] [2010-3] [2010-2] [2010-1] [2009-12] [2009-11] [2009-10] [2009-9] [2009-8] [2009-7] [2009-6] [2009-5] [2009-4] [2009-3] [2009-2] [2009-1] [2008-12] [2008-11] [2008-10] [2008-9] [2008-8] [2008-7] [2008-6] [2008-5] [2008-4] [2008-3] [2008-2] [2008-1] [2007-12] [2007-11] [2007-10] [2007-9] [2007-8] [2007-7] [2007-6] [2007-5] [2007-4] [2007-3] [2007-2] [2007-1] [2006-12] [2006-11] [2006-10] [2006-9] [2006-8] [2006-7] [2006-6] [2006-5] [2006-4] [2006-3] [2006-2] [2006-1] [2005-12] [2005-11] [2005-10] [2005-9] [2005-8] [2005-7] [2005-6] [2005-5] [2005-4] [2005-3] [2005-2] [2005-1] [2004-12] [2004-11] [2004-10] [2004-9] [2004-8] [2004-7] [2004-6] [2004-5] [2004-4] [2004-3] [2004-2] [2004-1] [2003-12] [2003-11] [2003-10] [2003-9]