Password cracking – Ditt lösenord är INTE säkert

Undrar du vad någon kan göra när de kommer över en databas med lösenord? Förutsatt att de faktiskt är krypterade så tar det lite tid att knäcka dem. Det tar i alla fall några sekunder för ett par miljarder lösenord. Ja, du läste rätt.

Kolla på klippet nedan där allt förklaras i mer detalj:

(Byt lösenord när du kollat på klippet)

Dropzone.js – Att ladda upp filer kunde inte vara enklare

Här kommer ett litet tips på ett litet javascript bibliotek som gör det möjligt att busenkelt ladda upp filer med ”drag and drop”.

Dropzone Logo

Börja med att inkludera filerna från en CDN (du kan självklart ladda hem filerna lokalt också):

https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.3.0/min/dropzone.min.js

Sedan behöver du bara skriva följande:

var Dropzone = require("dropzone");

<form action="/file-upload"
      class="dropzone"
      id="my-awesome-dropzone"></form>

Nu är allt färdigt! Du har nu en liten ”dropzone” som du kan dra filer till som sedan skickas till din form action.

Vill du veta mer så bara gå in på Dropzone.js’s hemsida och så kan du läsa vidare där om eventuella anpassningar.

Liten uppdatering

Laddade precis upp en liten uppdatering som gör att det finns en liten ikon längst upp till höger i titeln på inläggen. De indikerar vilken typ av inlägg (kategori) det är och jag kommer framöver fokusera på tre huvudkategorier; Tips, Video och Nyheter men även en fjärde som heter Blogg med inlägg som detta.

Klicka på ikonerna för att läsa alla inlägg under samma kategori. Hoppas ni gillar det!

Mailtrap.io – Fånga upp och testa mailutskick

Mailtrap Logo

Jag vet att jag inte är ensam om att inte tycka om att skapa HTML och CSS strukturen på ett mail. Även om det börjar bli lite lättare tack vare bättre och ”snällare” e-postklienter så är det fortfarande en pärs.

Som tur är så finns det verktyg som Mailtrap som gör det lite enklare och du slipper även spamma din egna inkorg med massa testutskick. Enkelt att sätta upp och gratis om du bara testar 2 utskick/sekund och nöjer dig med en inkorg.

Några bonus features du får med Mailtrap är att du kan analysera om ditt mail är klassat som spam eller om det är svartlistat av någon anledning. Hela strukturen på mailet plus headers med mera kan visas och det blir genast mycket enklare att få en korrekt struktur.

Rekommenderas starkt till er som jobbar med mailutskick!

Mailtrap Info

f.lux – Night Shift för din Mac

”Night Shift” är något du kan använda på iOS idag men inte på din Mac. Det som händer är att din skärm går från det blåa skenet till ett mer behagligt beige-liknande sken. Snällare mot ögonen helt enkelt.

Night Shift

Att sitta och jobba på kvällarna när det är mörkt runt omkring mig är något jag gör väldigt ofta. Med f.lux får jag ”Night Shift” på min Mac också och det blir genast mer behagligt för ögonen när jag jobbar länge i det skenet.

f.lux

Ladda ner f.lux här och testa själv!

PHPUnit testdox parameter

Ett litet tips jag läste om nyligen var att lägga till parametern testdox när du kör PHPUnit. Detta gör att du ser alla dina test utskriva snyggt och prydligt med en liten checkbox.

phpunit --testdox BankAccountTest
PHPUnit 5.5.0 by Sebastian Bergmann and contributors.

BankAccount
 [x] Balance is initially zero
 [x] Balance cannot become negative

Tweaks på temat och tillbaka från de döda

Efter en lång tid borta från bloggen tyckte jag det var dags för att fixa de små skavanker som uppstått när jag inte uppdaterat bloggen. Till exempel var typsnittet helt fel och en hel del annat var buggat.

Typsnittet heter numera Raleway och Bootstrap används för att bygga upp och strukturera sidan. Jag tycker det går snabbare att fixa till allt på sidan när man har det i grunden. Sist men inte minst så använder jag Font Awesome för att visa snygga ikoner lite här och där.

Generera setter & getter med Symfony i Vim

Detta är väldigt specifikt för både Vim och Symfony men jag kände mig lite extra lat och ville ha något enkelt för att generera setters och getters efter jag skapat en ny attribute i min doctrine entity.

Exempel på attribute:

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
 private $name;

 
Den här funktionen plockar ut korrekta namn på bundles och filer för att sen generera en komplett entity åt dig med hjälp av Symfony’s console. Jag valde att inte skapa en backup men du kan enkelt ta bort ”–no-backup” och så får du en backup om du föredrar det. Snabbkommandot jag valde är <leader>ge som står för ”generate entity”. Ta bort eller ändra till det du föredrar.

Lägg in detta i din .vimrc:

map <leader>ge :GenerateSetterAndGetter<CR>
command! GenerateSetterAndGetter call GenerateSetterAndGetter()

function! GenerateSetterAndGetter()
  let path = expand('%:p')
  let matches = matchlist(path, '\(.\+\)\/src\/\(.\+\)\/\(.\+\)\/Entity\/\(.\+\)\.php')
  if len(matches) > 0
    execute(printf('!php app/console doctrine:generate:entities %s%s:%s --no-backup', matches[2], matches[3], matches[4]))
  else
    echo 'This is no entity'
  endif
endfunction

Jeffrey Way snackar om enkelhet och mer

Jag har gillat i stort sett allt Jeffrey Way gjort ända sedan den där gången jag såg hans klipp på tuts+. Idag är han förmodligen mest känd för vad han gör för Laravel’s community genom bland annat Laracasts.com.

Här är i alla fall ett tal han gjorde på Laracon EU nyligen och det handlar dels om enkelhet som jag skrev om i mitt förra inlägg. Han radar även upp i stort sett ALLT som en ny utvecklare ”måste” lära sig. Intressant och bra tal. Stay awhile and listen.

Sträva efter enkelhet

Är det något jag alltid har gjort när jag programmerat så är det att sträva efter enkelhet. Allt för många krånglar till saker och ting. Till exempel använder onödiga ”hjälpmedel” i sitt arbetsflöde som oftast bara gör att du spenderar mindre tid att faktiskt skriva kod. Eller de som skriver kod som är ”avancerad” men som bara slutar med att vara svår att läsa och/eller förstå.

För mig är enkelhet att bara hålla sig till det absolut nödvändigaste. Jag använder t.ex inte Vagrant bara för det finns, men jag ser fördelarna med det. Det är helt onödigt för mig och jag klarar mig helt utan det när jag jobbar om dagarna. Samma sak gäller när jag skriver kod. Om jag inte behöver en riktigt smart algoritm så skriver jag den inte bara för att jag kan. Räckte det med en enkel IF/ELSE? Japp. Okej, då kör vi på det. Bara för att det var möjligt att lösa på ett annat mer avancerat sätt betyder inte att det alltid är bättre.

Detta är något jag tror många, speciellt nya utvecklare, inte strävar efter eller förstår för så många där ute vill visa upp hur ”duktiga” de är när de skrev sin avancerade kodlösning, följde ett nytt design pattern eller använder cutting edge hjälpmedel. Därför ville jag skriva några ord om det. Personligen behandlar jag alla hjälpmedel där ute (gulp, vagrant, bower, docker, diverse frameworks och så vidare)  precis som ett vanligt verktyg. Jag behöver t.ex inte en hammare när jag ska dra i en skruv, jag behöver en skruvmejsel. Jag kan hamra ner skruven men bara för att det går är det inte bättre och det passar inte till mitt ändamål.