onsdag 7 augusti 2013

Closure i JavaScript: Svårt att greppa, omöjligt att leva utan

Senaste tiden har jag fått nöjet att arbeta med JavaScript mycket. Och jag älskar JavaScript!

Det är ett mycket missförstått språk, men det är enormt kraftfullt. Men tyvärr har det blivit misshandlat på vägen och fått ett onödigt dåligt rykte. Men idag är det verkligen ett mycket kraftfullt språk som ingen kan leva utan.

Något av det svåraste att greppa med JavaScript må vara det som kallas "closure". Men det är också en av de kraftfullaste aspekterna med språket.

Låt oss titta på två exempel för att förklara vad det är, och jag ska försöka vara så tydlig och enkel som möjligt. Detta tog mig lång tid att fatta.

Exempel 1:

var digit_name = (function () {
  var names = ['zero', 'one', 'two', 'three', 'four', 'five'];

  return function (n) {
    return names[n];
  }
})();

console.log( digit_name(3) ); //Output: three


Så vad är det vi gör?
Först skapar vi en funktion, digit_name, som är en funktion som exekveras direkt och körs och retunerar namnet på siffran vi ger den som parameter.

Kör vi digit_name(2) så retunerar funktionen two. Det är ingen komplicerad funktion i sig, men den demostrerar "closure" välldigt bra.

Hurså?
Jo, det luddiga begreppet closure innebär att return-funktionen inut i vår huvudfunktion digit_name fortfarande har tillgång till alla variabler vi definierat även efter att huvudfunktionen returnerat, alltså avslutats.

I exemplet ovan så har vi en funktion, digit_name, som körs och returnerar när den skapas. Vår return retunerar ännu en funktion som i sin tur retunerar ett index i vår array names. Och det är tack vare closure så har vi ändå tillgång till names även i vår return funktion.

Låt oss kolla på ett annat exempel där vi ser hur closure fungerar.

Exempel 2:

function doSteps(){

  var level = 0;

  function step(){
    console.log('Step: ' + digit_name(level) );
    level++;
    if(level < 5){
      setTimeout( step, 1000 );
    }
  }

  setTimeout( step, 1000 );
}
doSteps();


Här har vi en funktion doSteps() som med hjälp av ett timing event, setTimeout, anropar funktionen step() efter 1 sekund. Vår funktion doSteps() har sedan länge då retunerat och avslutats. Men tack vare closure i JavaScript så har vi forfarande tillgång till variablen level.

I exemplet ovan använder vi även funktionen digit_name() från första exemplet, om det är någon som blev förvirrad. :-)

Fortfarande inte säker på saken? Kolla in videon nedan där fenomenala Douglas Crockford förklarar.


torsdag 23 augusti 2012

Dynamiskt anpassningsbara DIV-block med unik ram



Det finns ett problem som är ständigt återkommande för oss som jobbar med webbdesign; Hur ska jag skapa DIV-block som är dynamiskt anpassningsbara till storlek och har en unik ram?
Vi talar alltså om "custom border" till DIV-taggar.

Det är ett problem som verkar ha en lösning inom en nära framtid. Det finns redan lösningar i CSS3, med box-shadow, border-image och border-radius. Men CSS3 har är tyvärr inte ännu 100% kompatibel med alla webbläsare, det har inte 100% "cross-browser support". Dessutom lever vi inte i den bästa av världar och många, framför allt de som sitter på gamla operativsystem, sitter på gamla webbläsare. Suck! Host, host Windows och Explorer!

Jag har i alla fall en lösning jag ständigt återkommer och återanvänder i väntan på en standardiserad webb. Låt oss först kolla på min lösnings för och nackdelar.

Fördelar:
  • Anpassar sig dynamiskt till olika stora DIV-block.
  • Använder egen grafik.
  • Fungerar i alla webbläsare och versioner. Hej IE 6!
  • Ganska snabbt och enkelt att implementera.
  • Helt fri från JavaScript, 100% HTML och CSS.

Nackdelar:
  • Kräver 8 bilder.
  • Kräver 8 extra DIV-block utan innehåll.
  • Ser inte jättevackert ut i källkoden.
Så, det avklarat och utrett, här kommer källkod till lösningen. Förklaring hittas också längre ner.

HTML:
<div class="box">
    <h1>Header 1</h1>

    Vivamus tincidun...

    <div class="border_t"></div>
    <div class="border_b"></div>
    <div class="border_l"></div>
    <div class="border_r"></div>
    <div class="border_br"></div>
    <div class="border_bl"></div>
    <div class="border_tr"></div>
    <div class="border_tl"></div>
</div>

CSS:
<style type="text/css">
<!--
.box{
    background:#FFFFFF;
    margin:10px;
    float:left;
    padding:10px;
    width:250px;
    position:relative;
}
.border_t {
    background:url(border_t.png) repeat-x;
    position:absolute;
    top:-2px; left:0;
    width:100%;
    height:2px;
}
.border_b {
    background:url(border_b.png) repeat-x;
    position:absolute;
    bottom:-6px; left:0;
    width:100%;
    height:6px;
}
.border_l {
    background:url(border_l.png) repeat-y;
    position:absolute;
    top:0; left:-3px;
    width:3px;
    height:100%;
}
.border_r {
    background:url(border_r.png) repeat-y;
    position:absolute;
    top:0; right:-6px;
    width:6px;
    height:100%;
}
.border_br {
    background:url(border_br.png);
    position:absolute;
    bottom:-6px; right:-6px;
    width:6px;
    height:6px;
}
.border_bl {
    background:url(border_bl.png);
    position:absolute;
    bottom:-6px; left:-3px;
    width:3px;
    height:6px;
}
.border_tr {
    background:url(border_tr.png);
    position:absolute;
    top:-2px; right:-5px;
    width:5px;
    height:2px;
}
.border_tl {
    background:url(border_tl.png);
    position:absolute;
    top:-2px; left:-2px;
    width:2px;
    height:2px;
}
-->
</style>


Förklaring:
Som ni säkert förstår bygger lösningen på åtta bilder. En bild för varje hörn och en för varje kant. De är små bilder på bara några pixlar som går snabbt att ladda.


Tar vi exempelvis underkantens bild så behöver den inte vara mer än 1 pixel bred och 5 pixlar hög för att täcka skuggan som är vår ram. Hörnet är 5 x 5 pixlar. Med CSS kan vi sedan sy ihop dessa bilder till en helhet.

Men som sagt, snart kan vi förhoppningsvis använda CSS3 och allt detta meck är ett minne blott! :)

torsdag 31 maj 2012

Varför fungerar inte alltid margin-top i CSS?

Har man byggt webbsidor i HTML och CSS ett tag lär man förr eller senare stöta på ett märkligt fenomen med marginaler (margin). Det gäller framför allt margin-top och margin-bottom.

Låt oss titta på exemplet nedan.


Vi har två stycken DIV-taggar, där den ena ligger i den andra. Den yttre rosa boxen har en top marginal på 50 pixlar och är 500 x 200 pixlar stor. På den inre gula boxen har vi en 50 pixlar stor marginal runt om och en 10 pixlar stor padding. Inga konstigheter.

Låt oss kolla på lite källkod:

CSS: 

#outer {
    width:500px; 
    height:200px; 
    background:#FFCCCC;
    margin:50px auto 0 auto;
    display:block;
}
#inner {
    background:#FFCC33;
    margin:50px 50px 50px 50px;
    padding:10px;
    display:block;
}

HTML:

<div id="outer">
    <div id="inner">
        Hello world!
    </div>
</div>


Men som ni kanske gissar så händer något oväntat. Låt oss kolla hur det ser ut.


Marginalen på den inre gula boxen försvinner och istället limmas den i toppen. Vilket är helt ologiskt kan man tycka. Men det hela handlar om hur CSS är uppbyggt och just detta fenomen kallas "Collapsing margins", eller kollapsande marginaler.

Så här säger W3 om denna standard:

8.3.1 Collapsing margins
In CSS, the adjoining margins of two or more boxes (which might or might not be siblings) can combine to form a single margin. Margins that combine this way are said to collapse, and the resulting combined margin is called a collapsed margin.
Adjoining vertical margins collapse [...]

Mer läsning på:
http://www.w3.org/TR/CSS2/box.html#collapsing-margins

Detta betyder alltså att två angränsande boxars yttre vertikala marginaler går samman/kollapsar för att forma en gemensam marginal. Horisontala marginaler kollapsar dock aldrig.

Varför gör man såhär då?
Det hela handlar lite om hur man tänker på margin och padding. Vad är det egentligen? Margin, eller som jag här i texten beskriver det "yttre marginaler", bör inte tolkas som att flytta ett objekt 50 pixlar hit eller dit snarare att det ska minst finnas 50 pixlar tomt utrymme ovan de två objekten.

Det fungerar faktiskt på samma sätt i exempelvis ordbehandlaren Word. En rubrik med en marginal på 12 pixlar följt av en paragraf med 6 pixlar marginal ger inte ett mellanrum på 18 utan istället 12 pixlar. Den mindre marginalen kollapsar in i den större för att ge en minsta önskad marginal mellan de två. Följande paragrafer hade alla haft 6 pixlars marginal mellan varandra.

Hade det inte fungerat på detta sättet hade det blivit väldigt svårt att formatera text både i Word och i HTML med CSS.

Padding å andra sidan skapar alltid ett mellanrum. Padding betyder rakt översatt ungefär utfyllnad.

Lägger vi boxarna efter varandra istället för i varandra ser vi det tydligare:

CSS:

#box1 {
    width:500px;
    height:200px; 
    background:#FFCCCC;
    margin:50px;
    padding:20px;
}
#box2 {
    width:500px;
    height:200px; 
    background:#FFCC33;
    margin:50px;
    padding:20px;
}

HTML:

<div id="box1">
Hello
</div>
<div id="box2">
world!
</div>



Som vi ser får vi inte 100 pixlars mellanrum utan bara 50. Detta trotts att vi har 50 pixlars marginal runt om båda boxarna, alltså både i toppen och foten samt höger och vänster. Men footen i den övre och toppen i den undra boxens marginaler kollapsar för att ge den gemensamma marginalen på 50 pixlar, precis som vi önskade.

Så marginaler kollapsar. Detta är i alla fall sant så länge det inte finns andra regler som skapar en barriär mellan de boxarna eller förändrar boxmodellen för någon av dem. Exempel på detta skulle kunna vara att ändra den inre boxen till floating, eller gör den till ett inline-block eller den yttre boxen till att ha hidden overflow eller ha en padding.

Alla förändringar ger fortfarande inte önskvärt resultat, men löser i alla fall problemet med att marginalen kollapsar.

Bäst resultat får vi om vi sätter overflow:hidden; på den yttre boxen.

CSS:

#outer {
    width:500px;
    height:200px; 
    background:#FFCCCC;
    margin:50px auto 0 auto;
}


Alternativt kan vi lägga på en 1 pixels padding på den yttre boxen. Padding gör dock boxen större så vill vi ha exakt 200 pixlar hög box får vi ändra höjden till 199 pixlar.


#outer {
    width:500px;
    height:199px; 
    background:#FFCCCC;
    margin:50px auto 0 auto;
padding:1px 0 0 0;
}


Det kan fortfarande verka ologiskt att det fungerar som det gör, men detta ger i alla fall en liten förklaring till varför och hur man kan lösa det.

söndag 27 maj 2012

Photoshop: Fixa till ljuset i din bild

Ibland, eller kanske ofta, tar man en bild och upptäcker att personens ansikte blev alldeles för mörk till omgivningen. Du fick ett helt ojämnt ljus. I verkligheten såg det kanske bra ut. Men på bild gjorde skuggorna ansiktet oigenkännbart och bilden oanvändbar. Detta händer kanske framför allt om du fotograferar inomhus och framför allt om du som jag föredrar att köra utan blixt.

Men tacka gud för bildredigeringsprogram så som Photoshop. Då kan du fixa till dina, eller omgivningen misstag i efterhand. Kanske till och med göra bilden bättre än verkligheten tillåter. Det går ganska snabbt dessutom om man vet hur man ska göra.

Låt oss kolla på en bild, före och efter redigering.

FÖRE:

EFTER:

Spenderad tid på denna förändring är max fem minuter. Resultatet; ganska bra om jag får säga det själv. Bilden ser ut att vara tagen i bättre förhållande än den egentligen var och den har inte förlorat märkbart mycket i kvalité.

Så vad är tipsen och trixet?


Vi börjar med att lägga till ett nytt lager för Nivåer (Levels) och drar upp ljuset i bilden. Vi fokuserar enbart på den delen i bilden som är för mörk, i detta faller personen. Allt annat i bilden som redan såg bra ut kommer att bli för ljust, men just nu spelar det ingen roll.


Nu klickar vi på lager masken (Layer Mask) för vårt Nivå lager (Levels Layer) så att det är en som är aktiv. Sedan väljer vi pensel verktyget (Brush Tool). Jag gillar att arbeta med inställningar på ungefär; Opacitet (Oppacity) 60% och Flöde (Flow) 45%.

Nu målar vi, först med en ganska stor pensel med svart över de områdena som är för ljusa. Sedan går vi in i detaljerna kring personen med en liten mindre. Det behöver inte bli perfekt, men vi bör få en relativt diffus silhuett av personen i vår lager mask. Du ser när det börjar se jämnt ut.
Eventuellt kan du behöva gå in och göra några små penseldrag även på personen, där det eventuellt ser lite lite för ljust ut, exempelvis på näsan eller i detta fallet den vita t-tröjan.


När vi är nöjda kan vi vid behov lägga till ett lager med Kurvor (Curves) för att ge bilden större spektrum mellan ljust och mörkt. Vi lägger detta över båda våra lager. Detta hjälper till att få allt att smälta ihop.


Slutligen så kan vi i detta faller se att ljuset på personen är väldigt gult. Vi kan korrigera detta enkelt genom att lägga till ett lager för färg balans (Color Balance). Dessutom så kopierar vi lagermasken från vårt Nivå lager så att vi enbart ändrar färg balansen på personen och behåller originalljuset på bakgrunden. Oftast räcker det att man fokuserar på mellan och det höga registret (midtones och highlight).

Sen var bilden färdig! Lycka till!

I övrigt kan vi presentera personen på bild, vilket är ingen mindre än skateboardfotografen Nils Svensson, som i dagarna har en utställning på Landskrona Museum.

torsdag 24 maj 2012

Photoshop: Bildredigering utan att förstöra originalet

I mitt yrke så blir det en hel den bildbearbetning med Photoshop, eller dylikt program. Jag försöker personligen sakta förflytta mig från beroendet av Photoshop till fria open source lösningar. Detta av flera anledningar så som att jag inte vill bli fast med ett verktyg men även mer ideologiskt då jag tror på och gillar idéen med fri mjukvara. Gratis är dessutom oftast väldigt gott.

Men idag kommer vi använda Photoshop, och hur man bör arbeta när man redigerar bilder för att vara effektiv och flexibel samtidigt som man behåller originalet. Vi kan kalla det Photoshop-"best practice" för att vara internationella.

Vanligt sätt att arbeta med Photoshop som glad amatör är att ladda in ett foto och sedan kladda på med massa effekter och verktyg. Ångrar man sedan någon ändring så får man många gånger börja om eftersom man kladdat direkt på fotot.


I bildexemplet ovan vill vi ändra Nyans/Mättnad (Hue/Saturation) och gör det på det klassiska viset. Vi går upp i menyn och klickar in oss på Bild (Image). Under Förändringar (Adjustments) hittar vi sedan exempelvis Nyans/Mättnad (Hue/Saturation).

Problemet med ovan är att om vi sedan sparar vår Photoshop-fil å är våra ändringar permanenta och bilden är förevigt förändrad. Kommer vi senare på att vi kanske vill ha lite mindre nyans så får vi börja om.

Alternativet är att jobba med lager. Att arbeta med lager är nog de flesta relativt bekanta med i Photoshop och liknande program. Men kanske mest för att klippa ihop två bilder eller liknande. Men vi ska fokusera på bildbearbetning med hjälp av lager.


I vår lagermeny (Layers) hittar vi samma verktyg, Bild (Image) -> Förändringar (Adjustments), som vi tidigare använde. Skillnaden är att det skapas som ett nytt lager. På detta enkla sätt kan vi när som helst återgå till inställningarna för de förändringar vi vill göra, eller ta bort dem helt om så önskas.

Smidigt!


Markera, klipp och klistra. Ångra och rätta till snarare än att göra om.




En annan sak man ofta vill göra är att klippa ihop två bilder för att skapa en ny. Vanligtvis, eller amatören, går direkt till sin trogna vän Lasso-verktyget (Lasso Tool) och följer konturerna på objektet i bilden man vill klippa ut. Detta är tidskrävande i sig, men ett enkelt felklick och din markering kan vara förstörd och du får börja om från början. Dessutom är det svårt, framför allt om man bara har en mus som verktyg, att få till en snygg markering. Som tur är finns det som alltid tricks att ta till hands!


Istället kan vi använda oss av vektorverktyget pennan (Pen Tool). Med detta kan vi enkelt lägga ut ankarpunkter som följer objektet. Vi kan till och med utnyttja möjligheten att skapa kurvor i vår vektormask för att ganska snabbt skapa en snygg silhuett av objektet vi vill "klippa ut".


När vi är nöjda med vektormasken håller vi in CTRL och klickar på lagret i lager-menyn för att skapa en markering av vektorn. Sedan kan vi klicka på Lägg till lager mask (Add layer mask) i vår lager-meny.

Nu kan vi markera båda våra lager för att skapa ett Smart-objekt. På detta vis kan vi när som helst välja att gå tillbaka och ändra på markeringen.


Det var allt för denna gången! Ha det bra! :)




onsdag 23 maj 2012

Vad ska jag välja Google+ eller Facebook? ...och vilket kommer finnas kvar om 10 år?

Frågan om vilken social plattform man ska välja är återkommande. Både för företag och privatpersoner. Vissa ignorerar nykomlingar som Google+ med hänvisning om att vännerna finns på Facebook.

Vissa företag försöker febrilt och panik artat hänga med på allt. Vissa lyckas skapa en närvaro som lever på diverse närverk andra blir bortglömda lik som potentiella kunder senare hittar.

Journalister dömer gång på gång ut Google+ med motiveringen att aktiviteten är för låg och att folket är troget sin ansiktsbok. Samtidigt kan vi läsa om hur förtroendet hos folket sviktar allt mer för Mark Zuckerbergs gigant. Så mycket som 59 procent av amerikanerna har "inget eller litet förtroende" och bara 12 procent säger sig ha "fullständigt förtroende". I Sverige säger så lite som 21 procent ha förtroende för Facebook, en siffra som hamnar mittemellan Försäkringskassan och Bankerna med sina 18 procent respektive 24 procent.
Dessutom skulle jag vilja påstå att tidningarna och journalisterna som rapporterar om hur dåligt det går för Google+ antingen har en dold agenda eller bristande kunskap. Senast kunde vi läsa i Computer Sweden att mjukvarutillverkaren RJMetrics sågar Googles egna snack om en jättesuccé. Företagets data visar att 30 procent av alla de som gör ett publikt inlägg aldrig gör ett andra inlägg samt att de flesta inlägg får ett eller mindre +1 (motsvarigheten till Likes/Gilla på Facebook). Vad alla inte verkar vilja förstå eller ens lyssna på är att undersökningarna är gjorda på publika inlägg. Alltså inlägg som är öppna för att läsa. När man väljer att publicera och döma ut nätverket på grund av en undersöknings underlag baserat på publika inlägg så har man missförstått mycket. Många använder sina kretsar, eller cirklar, flitigt på Google+. Idéen var så bra att Facebook inte ville vara sämre och införskaffade sig ett liknande system. Men detta gör också att det bildas ett stort mörkertal av aktivitet. Vad man istället bör göra är att berömma Google för att ha varit duktiga på implementera och fortbilda sina användare i sitt system.

Men den stora skillnaden mellan Facebook och Google+ är att sistnämnda inbjuder till bredare diskussioner och informationspridning. Google+ är inte i samma behov av ditt eller mitt förtroende, då det inte är baserat på vänskapskretsar lika mycket, snarare intressekretsar. Det blir oftast inte lika privat om än samtidigt personligt.

Visst kan Google+ fungera precis som Facebook, om du har dina vänner där. Men det är även mer som Twitter där information delas och intas baserat på intresse och då spelar inte realvänskap lika stor roll.

Enda sättet du träffar nya människor på Facebook är genom diverse sidor och appar som samlar folk kring ett särskilt ämne eller funktion, i Google+ är detta inbyggt i den sociala texturen.

Facebook, Google+, Twitter, LinkedIn... vad ska man välja?
Måste man välja? Det kanske är en fördel att inte lägga alla sina ägg i en korg? Jag förstår inte varför man måste välja mellan Facebook och Google+ eller något annat för del delen. Precis som universitet väljer läroplattformer för sina kurser, vissa använder It's Learning andra Scio, så kan privatpersoner, föreningar och företag välja att lägga sin kommunikation på Facebook och/eller Google+. Man måste inte välja en.
En förening kan välja att sköta all sin kommunikation på Facebook. Bra! Varför ska föreningen lägga dyra utvecklingskostnader på att ta fram en egen platform om Facebook fungerar? Det är inte svårt för de som inte redan har ett konto att skapa ett och dessa personer väljer själv hur aktiv man vill vara privat utanför föreningen. Det kan agera som en lösning på ett problem.

Precis som ingen har gjort ett slutgiltigt val mellan e-post, sms och telefoni, så behöver inte vi heller göra ett val mellan Facebook, Google+, Twitter och LinkedIn. Det går att kombinera.

Men skadas inte min sociala närvaro av detta? Blir jag inte osynlig om jag inte är aktiv?
Jag skulle vilja förspråka att selektiv närvaro är bättre än en bred. Syns du där det känns logiskt för situationen får det antagligen större genomslagskraft.

Själv använder jag Facebook för att prata med kompisar. Många gånger istället för att ringa eller skicka ett sms. "Vad gör du ikväll? Ska vi hitta på något?" - direkt realvänskaps kommunikation. Medan Google+ kittlar mina intresse och inte begränsar dessa till mina smala vänskapkrets. Twitter fungerar bra för livereferat kring ett eventenmang, men även som en ersättare för sms och mms, liksom Facebook. Egentligen är detta det enda som är gemensamt för diverse sociala plattformar att de alla konkurrerar ut telefoibranschen.

Om det är något du bör fungera på så är det, varför betalar du och jag dyra abonnemangs- och samtalsavgifter när vi kan sköta samma kommunikation via internet?

Telefoni, sms och e-post ersättas av sociala nätverk och e-post, och vi väljer fortfarande kommunikationen som passar bäst för tillfället och åhöraren.


Mer att läsa


Computer Sweden (2012) ”Så dåligt går det för Google+” (elektroniskt) <http://computersweden.idg.se/2.2683/1.449681/sa-daligt-gar-det-for-google > (2012-05-23)

SvD (2012) ”Din cynism göder Facebook” (elektroniskt)
<http://www.svd.se/kultur/din-cynism-goder-facebook_7220969.svd > (2012-05-23)

fredag 27 april 2012

YouTube-Watchlist



Jag spenderar alldeles för mycket tid på YouTube,  jag älskar YouTube. Dessa är de kanaler jag tittar på ofta, mer eller mindre varje dag. Tänkte att jag lika gärna kan dela med mig av mina favorit YouTube-kanaler till eventuellt icke redan frälsta. Enjoy! 


PS. Ja, kanske ska tillägga att jag inte ser på så mycket vanlig TV ... :)

DESTRUCTOID
Av spelare för spelare, bästa spelshowen på internet.
http://www.youtube.com/DTOID

Vsauce
Kul fakta och saker på nätet.
http://www.youtube.com/vsauce

Vsauce2
Vetenskap, galenskap och allt annat.
http://www.youtube.com/vsauce2

The Philip DeFranco Show
Mellan måndag till torsdag pratar DeFranco om nyheter och popkultur som är viktigt för honom och borde vara för dig. 
http://www.youtube.com/sxephil

C.G.P. Grey
Komplicerade saker förklaras.
http://www.youtube.com/CGPGrey

SciShow
Vetenskap förklarat på ett kul och intressant sätt.
http://www.youtube.com/scishow

=3 with RayWilliamJohnson
Ray har koll på alla virala videor.
http://www.youtube.com/RayWilliamJohnson

Wayside Creations
Ligger bakom fan serien Nuka Break och mycket annat kul.
http://www.youtube.com/WaysideCreations

Veritasium
Allt från atomer till astrofysik.
http://www.youtube.com/1veritasium

95Camry4Life - Thin Wall Challenge
En ensam kille som bor i en lägenhet med pappertunna väggar och två grannar som älskar varandra väldigt mycket.
http://www.youtube.com/95Camry4Life

Crash Course!
Två kul "kurser" som passar alla åldrar om världs historia och biologi.
http://www.youtube.com/crashcourse

EngineerGuyVideos
Här får man förklaringar till hur tekniska saker fungerar.
http://www.youtube.com/engineerguyvideo

Sixty Symbols
Kan tendera att vara väldigt nördigt, men ofta kul och informativt om vetenskap.
http://www.youtube.com/sixtysymbols

Freddiew
Gör kul filmer med sjukt bra effekter.
http://www.youtube.com/freddiew

WATSKY!
George Watsky är författare och artist från San Francisco som nu bor i Los Angeles.
http://www.youtube.com/gwatsky

University of California Television
UCTV är en kanal som sänder massor med bra föreläsningar  och utbildningsvideor.
http://www.youtube.com/UCtelevision

Harvard University
Harvard University bjuder även dem på massvis med bra föreläsningar och  utbildningsvideor
http://www.youtube.com/Harvard

Lizzie Bennet
Återupplev den episka historien om Stolthet och fördom i en modern tappning..
http://www.youtube.com/LizzieBennet