Teknologier

Vi benytter en række forskellige teknologier på Regneregler.dk og vore andre produkter.  Indholdet herunder er bestemt ikke ment som en komplet liste og har nok mest interesse for nørder.

Vores primære teknologier:
Java / J2EE
MySQL
JavaScript
HTML

Backend-system
Vores backend-system er lavet helt fra bunden. Vi havde behov for at kunne håndtere specielle ting som f.eks. matematiske formler, injecte regnemaskiner m.v. Systemet er bygget op efter KISS princippet (Keep it simple stupid). Man kan stort set kun indtaste tekster.

Regnemaskiner
Regnemaskinerne er bygget op omkring et JavaScript-bibliotek, som vi selv har skrevet. Backend-systemet sørger selv for at sætte forms op, og injecte JavaScript-koden. Vores JavaScript-bibliotek indeholder kode blandt andet til at håndtere brøker, vektorer og andre matematiske emner.
Regnemaskinerne er fælles for både hjemmesiden og vores apps. Det er simpelthen samme kode.

Apps
Vores apps kører som HTML5 igennem PhoneGap. Vi valgte denne løsning, da vi har behov for at kunne vise matematiske formler på mobiltelefoner. Selve formlerne bliver genereret igennem MathJax.
Den ultimative løsning ville have været, at vores apps skulle være “rigtige” som “Native apps”. Det ville dog desværre kræve så meget udviklingstid, at vi i stedet har valgt HTML5-løsningen.

Dynamiske billeder
På Regneregler.dk er der en del dynamiske billeder, der understøtter Drag’n'drop. Disse billeder bliver styret af vores eget JavaScript-bibliotek, som kan håndtere geometriske figurer som f.eks. cirkler og andet.

Template engine
Hele systemet vises af vores template-engine. Dvs. det er samme backend der bruges til Regneregler.dk, Android- og iPhone-app’en. Den eneste forskel er den måde at det bliver vist på. Hvis Regneregler.dk en dag skal skifte udseende eller køre på en ny enhed, så kræver det “kun” udskiftning af 4 filer, og derefter er det nye udseende på plads.

Andre teknologier
I forbindelse med arbejde for andre kunder og andre projekter har vi brugt en del teknologier.

Java
Spring
Hibernate
+ utal af andre libraries / frameworks
Word + Excel-generering

Dynamisk indhold
PDF – Dynamisk generering.

WEB
Dojo
JQuery
JavaScript og Ajax

Mobil:
Java Android – Udvikling af native app i Java
Objective-C – Udvikling af native app til iOS
WebApp – Udvikling af  web-app, der kan køre offline på iPad  i HTML5
Mobile websites i HTML 5, med content awareness
JQuery Mobile

Flex/Flash
Multifil upload
3D engine (lavet fra bunden)
Kommunikation med webserver.
Spiludvikling

Sociale medier
Automatisk upload til Youtube fra website.
Facebook Apps
Facebook Connect
Facebook sider

IO Systemer
Apache tomcat
Linux server opsætning
Databaser – Opsætning af MySQL og Oracle databaser.

Andet
Wowza mediaserver
SMS – Afsendelse og modtagelse på website.
Håndtering af specialtegn.
PHP
UML – Klassediagrammer, interaktionsdiagrammer m,m.
Versionsstyring – CVS, Subversion og andre
UNIT Test’s – Automatiseret test af kodestumper.

 

Kodefilosofi
Vores kode bliver altid lavet efter princippet “Skriv altid din kode, som om den, der ender med at vedligeholde koden, er en voldelig psykopat, der ved, hvor du bor!” ;-)
Citatet er fra softwareudvikleren Martin Golding.

Vi tilpasser dog kodestilen efter en kundes ønsker.  Internt hos Site Project ApS kører vi altid efter:

  • Gør ting simpelt – Hvis du kun skal gemme en email, behøves du ikke et kæmpe framework.
  • Vanilla – Forsøg at undgå afhængigheder. Standard-biblioteker som Apache commons og lign. er dog accepteret.
  • MVC – Altid lagopdeling af koden.
  • Koden skal være forståelig. Hvis man skal bruge mere end 5 minutter på at forstå en enkelt funktion, så skal den opdeles/gøres mere simpel/dokumenteres bedre.

Vores kode på Regneregler er opbygget efter princippet om, at alt har et fælles kerneområde. De enkelte dele er så moduler, der tilføjes efterhånden.