<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3703702985061045693</id><updated>2012-02-16T19:22:58.905-08:00</updated><category term='stage'/><category term='a-server'/><category term='asset management system'/><title type='text'>Stage @ A-server</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-1992193214299066862</id><published>2010-04-20T01:54:00.000-07:00</published><updated>2010-04-20T02:11:34.412-07:00</updated><title type='text'>Week 9 (12/04 - 19/04)</title><content type='html'>Google Maps. Om een overzicht van de datacenters te creeren werd google maps aangehaald. Op zich heel simpel te implementeren via javascript.&lt;br /&gt;&lt;br /&gt;Probleem: De locatie van het adres dat ik wou weergeven kwam uit mijn database die via python code &amp;amp; Django naar men html wordt geschreven. Na een beetje googlen kwam ik &lt;a href="http://www.lonelycode.com/2008/12/04/google-maps-and-django/"&gt;deze website&lt;/a&gt; tegen die een degelijke uitleg gaf en me kon voorzien van de klasse PyMaps (Google Maps voor Python)&lt;br /&gt;&lt;br /&gt;Dit gaf een goed resultaat en de locatie uit men database werd goed weergegeven:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LwMVSqwappc/S81tVa75X9I/AAAAAAAAAFQ/BQvLDTYZprQ/s1600/Knipsel.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 136px;" src="http://2.bp.blogspot.com/_LwMVSqwappc/S81tVa75X9I/AAAAAAAAAFQ/BQvLDTYZprQ/s200/Knipsel.PNG" alt="" id="BLOGGER_PHOTO_ID_5462142137845506002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nu wou ik niet alleen het datacenter weergeven dat geselecteerd werd, maar ook een google map die mij een overzicht gaf van alle datacenters in België. Door naar de website maps.google.com te gaan kan je inloggen en meerdere locaties naar je map 'saven' en deze map dan gebruiken in je website.&lt;br /&gt;&lt;br /&gt;Probleem: Wat als je locaties weer opgeslagen zitten in een database die via Django/Python met je website communiceert. Je kan deze locaties manueel invoegen via de site en dan die map in je website gebruiken, maar wat dan als iemand via het admin-panel een nieuwe locatie toevoegd?&lt;br /&gt;&lt;br /&gt;Oplossing: XML! Google maps werkt met xml en kan locaties uit een xmlbestand halen (in deze xml moet dan wel 'latitude', 'longitude' 'naam', 'adres', enz aanwezig zijn voor elke locatie.&lt;br /&gt;&lt;br /&gt;De klasse PyMaps bevat een functie die van het opgegeven adres de coordinaten berekent en deze dan teruggeeft. Door dus een combinatie te integreren van PyMaps &amp;amp; Xml kwam ik tot het volgende resultaat:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LwMVSqwappc/S81u_Qt1HRI/AAAAAAAAAFY/ehpFiFL2aAg/s1600/Knipsel.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 136px;" src="http://2.bp.blogspot.com/_LwMVSqwappc/S81u_Qt1HRI/AAAAAAAAAFY/ehpFiFL2aAg/s200/Knipsel.PNG" alt="" id="BLOGGER_PHOTO_ID_5462143956168285458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De klasse om de locaties op te slaan in het xmlbestand en deze te gebruiken in google maps ziet er zo uit:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;from PyMaps import Icon, Map, PyMap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;from xml.etree import ElementTree as ET&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;def savelocations(name, street, postalcode, city, country):&lt;br /&gt;    xml_file = os.path.abspath(__file__)&lt;br /&gt;    xml_file = os.path.dirname(xml_file)&lt;br /&gt;    xml_file = os.path.join(xml_file, MEDIA_ROOT + "media/files/Landmarks.xml")&lt;br /&gt;   &lt;br /&gt;    add = "%s, %s, %s, %s" % (street, postalcode, city, country)&lt;br /&gt;    geo_data = get_geo(add)&lt;br /&gt;&lt;br /&gt;    lat = str(geo_data[1])&lt;br /&gt;    long = str(geo_data[0])&lt;br /&gt;   &lt;br /&gt;    tree = ET.parse(xml_file)&lt;br /&gt;    child1 = ET.SubElement(tree.getroot(), "Row")&lt;br /&gt;    child2 = ET.SubElement(child1, "Longitude")&lt;br /&gt;    child2.text = long&lt;br /&gt;    child3 = ET.SubElement(child1, "Latitude")&lt;br /&gt;    child3.text = lat&lt;br /&gt;    child4 = ET.SubElement(child1, "Building_Name")&lt;br /&gt;    child4.text = name&lt;br /&gt;    child5 = ET.SubElement(child1, "Address")&lt;br /&gt;    child5.text = address   &lt;br /&gt;    tree.write(xml_file)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-1992193214299066862?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/1992193214299066862/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-9-1204-1904.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/1992193214299066862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/1992193214299066862'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-9-1204-1904.html' title='Week 9 (12/04 - 19/04)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LwMVSqwappc/S81tVa75X9I/AAAAAAAAAFQ/BQvLDTYZprQ/s72-c/Knipsel.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-4576237093466433389</id><published>2010-04-20T01:40:00.000-07:00</published><updated>2010-04-20T01:53:52.717-07:00</updated><title type='text'>Week 8 (27/03 - 03/04)</title><content type='html'>Deze week ben ik begonnen met SNMP. SNMP is een manier om informatie zoals netwerkinterfaces, uptime, system time, beschrijving, naam, enz... op te halen van een bepaalde asset in het netwerk.&lt;br /&gt;&lt;br /&gt;Het CMDB zal bij het opvragen van de informatie van een asset die aanvraag uitvoeren en zo de system time &amp;amp; de uptime gaan invullen in het management systeem.&lt;br /&gt;&lt;br /&gt;Hieronder ziet u hoe het CMDB toont of de info werd opgehaald of niet:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S81pvl3vkDI/AAAAAAAAAFA/t01LPLnbVjI/s1600/Knipsel.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 136px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S81pvl3vkDI/AAAAAAAAAFA/t01LPLnbVjI/s200/Knipsel.PNG" alt="" id="BLOGGER_PHOTO_ID_5462138189410963506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LwMVSqwappc/S81pzr1iVOI/AAAAAAAAAFI/lpIlmpBds30/s1600/Knipsel2.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 136px;" src="http://4.bp.blogspot.com/_LwMVSqwappc/S81pzr1iVOI/AAAAAAAAAFI/lpIlmpBds30/s200/Knipsel2.PNG" alt="" id="BLOGGER_PHOTO_ID_5462138259731797218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De aanvragen van de info gebeuren via OID's. Dit zijn een reeks getallen waaraan de asset weet welke info hij moet teruggeven. Enkele voorbeelden:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.1.3.6.1.2.1.1.3     = System Uptime (TimeTicks)&lt;/li&gt;&lt;li&gt;.1.3.6.1.2.1.1.1     = System Description&lt;/li&gt;&lt;li&gt;.1.3.6.1.2.1.1.5     = System Name&lt;/li&gt;&lt;/ul&gt;Met behulp van de klasse SNMPWalk.py en de klasse SNMPGet.py (hieronder weergegeven) werd het dan mogelijk om die informatie te gaan opvragen aan een asset.&lt;br /&gt;&lt;br /&gt;SnmpGet.py:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;from pysnmp import role, v2c, asn1&lt;br /&gt;&lt;br /&gt;class SNMPGet:&lt;br /&gt;&lt;br /&gt;  def __init__(self, host, port, community):&lt;br /&gt;      self.host = host&lt;br /&gt;      self.port = port&lt;br /&gt;      self.community = community&lt;br /&gt;&lt;br /&gt;  def snmpget (self, oid):&lt;br /&gt;      req = v2c.GETREQUEST ()&lt;br /&gt;      encoded_oids = map (asn1.OBJECTID().encode, [oid,])&lt;br /&gt;      req['community'] = self.community&lt;br /&gt;      tr = role.manager ((self.host, self.port))&lt;br /&gt;      rsp = v2c.RESPONSE ()&lt;br /&gt;      (rawrsp, src) = tr.send_and_receive (req.encode (encoded_oids=encoded_oids))&lt;br /&gt;      rsp.decode (rawrsp)&lt;br /&gt;      oids = map (lambda x: x[0], map(asn1.OBJECTID ().decode, rsp['encoded_oids']))&lt;br /&gt;      vals = map (lambda x: x[0] (), map(asn1.decode, rsp['encoded_vals']))&lt;br /&gt;      return vals&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-4576237093466433389?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/4576237093466433389/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-8-2703-0304.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/4576237093466433389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/4576237093466433389'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-8-2703-0304.html' title='Week 8 (27/03 - 03/04)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LwMVSqwappc/S81pvl3vkDI/AAAAAAAAAFA/t01LPLnbVjI/s72-c/Knipsel.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-7744953838948332766</id><published>2010-04-20T01:25:00.000-07:00</published><updated>2010-04-20T01:40:08.382-07:00</updated><title type='text'>Week 7 (20/03 - 27/03)</title><content type='html'>Na het afronden en testen van de functie om te telefoneren (zie week 6) heb ik enkele bugs uit de design gehaald en aan de design nog enkele dingen toegevoegd. Vooral met betrekking op de gebruiksvriendelijkheid.&lt;br /&gt;&lt;br /&gt;Ook is het weergeven van informatie van een gebruiker of fabrikant toegevoegd aan het CMDB. Dit is gebeurd aan de hand van een variant op Lightbox (hieronder een screenshot).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S81oWyaOzAI/AAAAAAAAAE4/201lRs0GRdI/s1600/Knipsel.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 218px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S81oWyaOzAI/AAAAAAAAAE4/201lRs0GRdI/s320/Knipsel.PNG" alt="" id="BLOGGER_PHOTO_ID_5462136663768484866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LwMVSqwappc/S81ncLHojMI/AAAAAAAAAEw/9iAejXDZifM/s1600/Knipsel.PNG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-7744953838948332766?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/7744953838948332766/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-7-2003-2703.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/7744953838948332766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/7744953838948332766'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-7-2003-2703.html' title='Week 7 (20/03 - 27/03)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LwMVSqwappc/S81oWyaOzAI/AAAAAAAAAE4/201lRs0GRdI/s72-c/Knipsel.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-571345832203920905</id><published>2010-04-16T05:40:00.000-07:00</published><updated>2010-04-20T01:18:40.134-07:00</updated><title type='text'>Week 6 (13/03 – 20/03)</title><content type='html'>Nadat het adminpanel volledig was afgewerkt in django, ben ik begonnen aan de eigenlijke website (voormalig php, nu django (python)).&lt;br /&gt;&lt;br /&gt;Omdat alle interne website's bij aserver beveiligd zijn via SSL, moest het asset management system ook over SSL worden aangeboden. Daarom is de login-pagina vervangen door SSL-Authentication&lt;br /&gt;&lt;br /&gt;De layout van de website is behouden (zie vorige posts).&lt;br /&gt;&lt;br /&gt;Deze week heb ik ook de resultpage van het zoekvenster aangepast. Het probleem was het volgende:&lt;br /&gt;&lt;br /&gt;Omdat de tabellen maar in 1 richting naar elkaar linken, en ik van elke query die opgezocht werd ook het IP-adres, het MAC-adres, enz wou ophalen, werd er eerst gezocht door alle IP-addressen van de verschillende machine's en dan gekeken welke naam ze hadden. Deze naam werd vervolgens vergeleken met de query.&lt;br /&gt;&lt;br /&gt;Probleem: Wat als een bepaalde asset geen IP-Adres heeft? Het management systeem bevat even goed assets die in de stock liggen bijvoorbeeld.&lt;br /&gt;&lt;br /&gt;Dus werd dit alles aangepast en werd er gezocht op naam. Eénmaal alle gezochte assets gevonden waren, werden ze opgenomen in 1 lijst, waar dan vervolgens de bijkomende info zoals vb. IP-Adres werd toegevoegd. Wanneer er bepaalde zaken niet werden gevonden in de database, werden deze vervangen door een "/"&lt;br /&gt;&lt;br /&gt;Hier ook nog even een screenshot ter verduidelijking:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S81fqvD7opI/AAAAAAAAAEo/i-GxVOywJhk/s1600/Knipsel.PNG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 151px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S81fqvD7opI/AAAAAAAAAEo/i-GxVOywJhk/s320/Knipsel.PNG" alt="" id="BLOGGER_PHOTO_ID_5462127110862381714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nadat dit probleem opgelost was ben ik begonnen aan de'Phone-To' gedeelte. Er werd namelijk gevraagd om het mogelijk te maken te telefoneren vanop het cmdb, zowel intern als extern.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Hoe?: Iedereen in het bedrijf is in het bezit van een IP-Phone. Daarbij heeft elke gebruiker zijn eigen SIP (id). Via deze IP-Phone's is het mogelijk om naar anderen te bellen zowel intern als extern. Wat nu nog nodig was, was een script dat het via Python/Django mogelijk maakt deze telefoons te gebruiken.&lt;br /&gt;&lt;br /&gt;Het eerste wat we doen is kijken of er een gebruiker is ingelogd en enkele variabelen definieren indien het SIP van de ingelogde gebruiker geldig is! Het asterisk_ip &amp;amp; port zijn het ip en de poort van de telefoon-server:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;def phonecall(request, usersto, usersip, phonenumber):&lt;br /&gt;    currentuser = checkvaliduser(request, request.META['REMOTE_USER'])&lt;br /&gt;    if currentuser:&lt;br /&gt;        if usersip != "None":&lt;br /&gt;            asterisk_ip = "172.19.0.8"&lt;br /&gt;            asterisk_port = 5038&lt;br /&gt;            callerid = "93242577"&lt;br /&gt;            errno = 0&lt;br /&gt;            errstr = 0&lt;br /&gt;&lt;br /&gt;            connectingto = Users.objects.get(user_id=usersto)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Daarna gaan we aan de hand van volgende code het telefoonnummer controleren van de gebruiker die we willen contacteren. Onderaan kijken we ook of de lengte van de contactpersoon gelijk is aan '3'. Indien dat zo is, wil dit zeggen dat we intern willen bellen naar een andere contactpersoon (via zijn SIP):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;phonenumber = phonenumber.strip()&lt;br /&gt;   if phonenumber.find("(0)") &gt; -1:&lt;br /&gt;       phonenumber = phonenumber.replace("(0)", "")&lt;br /&gt;&lt;br /&gt;   phonenumber = phonenumber.replace(" ", "")&lt;br /&gt;   phonenumber = phonenumber.replace("/", "")&lt;br /&gt;   phonenumber = phonenumber.replace(".", "")&lt;br /&gt;   phonenumber = phonenumber.replace("-", "")&lt;br /&gt;   phonenumber = phonenumber.replace("+", "00")&lt;br /&gt;&lt;br /&gt;   if phonenumber.find("0", 0, 1) &gt; -1 and phonenumber.find("00", 0, 2) == -1:&lt;br /&gt;      phonenumber = "0032" + phonenumber[1:]&lt;br /&gt;           &lt;br /&gt;   if len(phonenumber) == 3:&lt;br /&gt;      phonenumber = "SIP/" + phonenumber&lt;br /&gt;   else:&lt;br /&gt;      phonenumber = "IAX2/Hold/" + phonenumber&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tenslotten nog het in stand brengen van de eigenlijke connectie:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s.connect((asterisk_ip, asterisk_port))&lt;br /&gt;s.send("Action: login\r\n")&lt;br /&gt;s.send("Username: admin\r\n")&lt;br /&gt;s.send("Secret: amp111\r\n")&lt;br /&gt;s.send("Events: off\r\n\r\n")&lt;br /&gt;sys.stdout.flush()&lt;br /&gt;time.sleep(1)&lt;br /&gt;s.send("Action: Originate\r\n")&lt;br /&gt;s.send("Channel: SIP/" + usersip + "\r\n")&lt;br /&gt;s.send("Context: callout\r\n")&lt;br /&gt;s.send("Exten: s\r\n")&lt;br /&gt;s.send("Priority: 1\r\n")&lt;br /&gt;s.send("CallerID: Central\r\n")&lt;br /&gt;s.send("Variable: number_to_dial=" + phonenumber + "|callerid=" + callerid + "\r\n\r\n")&lt;br /&gt;sys.stdout.flush()&lt;br /&gt;time.sleep(2)&lt;br /&gt;s.close()&lt;br /&gt;           &lt;br /&gt;return dialing(request, currentuser, connectingto)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-571345832203920905?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/571345832203920905/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-6-1303-2003.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/571345832203920905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/571345832203920905'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/04/week-6-1303-2003.html' title='Week 6 (13/03 – 20/03)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LwMVSqwappc/S81fqvD7opI/AAAAAAAAAEo/i-GxVOywJhk/s72-c/Knipsel.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-7450685969204222496</id><published>2010-03-16T01:18:00.000-07:00</published><updated>2010-03-16T01:33:18.730-07:00</updated><title type='text'>Week 5 (06/03 - 13/03)</title><content type='html'>Na men vorige post ben ik het admin-panel gaan opbouwen specifiek gericht op het asset-management-system. En het resultaat ziet er als volgt uit:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S59BuWdeytI/AAAAAAAAAEQ/tm_Hcb9b9Og/s1600-h/django-admin-grappelli.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 152px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S59BuWdeytI/AAAAAAAAAEQ/tm_Hcb9b9Og/s320/django-admin-grappelli.png" alt="" id="BLOGGER_PHOTO_ID_5449146338700610258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S59B2mhdQVI/AAAAAAAAAEY/ysyB0o14__k/s1600-h/django-machine-overview.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 152px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S59B2mhdQVI/AAAAAAAAAEY/ysyB0o14__k/s320/django-machine-overview.png" alt="" id="BLOGGER_PHOTO_ID_5449146480451207506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LwMVSqwappc/S59B-zXioRI/AAAAAAAAAEg/1WdU2rwifFY/s1600-h/django-edit-machine.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_LwMVSqwappc/S59B-zXioRI/AAAAAAAAAEg/1WdU2rwifFY/s320/django-edit-machine.png" alt="" id="BLOGGER_PHOTO_ID_5449146621338231058" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-7450685969204222496?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/7450685969204222496/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-5-0603-1303.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/7450685969204222496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/7450685969204222496'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-5-0603-1303.html' title='Week 5 (06/03 - 13/03)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LwMVSqwappc/S59BuWdeytI/AAAAAAAAAEQ/tm_Hcb9b9Og/s72-c/django-admin-grappelli.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-3315767817550065386</id><published>2010-03-16T00:59:00.000-07:00</published><updated>2010-03-16T01:17:59.757-07:00</updated><title type='text'>Week 4 (27/02 - 06/03)</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;Deze week is het project een beetje gewijzigd. Aangezien de meeste mensen op A-Server programmeren in Python, werd mij gevraagd het asset-management ook in Python te maken.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Na een beetje research ben ik op het &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.djangoproject.com/"&gt;web framework Django&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; gebotst. Het bevat een soort admin-panel dat het mogelijk maakt je website in python te onderhouden. Voor mijn opgave specifiek wil dit zeggen dat het vanuit dit admin-panel mogelijk zal zijn om asset's toe te voegen, te verwijderen en aan te passen. Het browsen tussen de verschillende asset's zal dan gebeuren in de website zelf waarvan ik de design zal gebruiken die in men voorgaande posts wordt weergegeven.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Om het admin-panel iets overzichtelijker en aantrekkelijker te maken, ben ik op de &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://code.google.com/p/django-grappelli/"&gt;website van grappelli&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; gestoten. Dit is een layout die specifiek is opgebouwd voor het Django adminpanel.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Het werken met databases in Django is een heel stuk anders opgebouwd dan in bijvoorbeeld php. Normaal gezien is het de bedoeling verschillende 'Models' aan te maken in je Python/Django code, en deze Models worden dan door Django zelf opgeslaan en verwerkt in de database. (MySQL in mijn geval). Omdat ik men database reeds had opgebouwd toen ik in php werkte, moest ik een manier vinden om via mijn bestaande database te werken.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Django werkt enerzijds met een aantal tabellen die hij zelf automatisch aanmaakt (Dit voor authenticatie van het admin-panel) en anderzijds met de zelf aangemaakte models.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Het is via volgende code mogelijk om van een bestaande database automatisch de Models te laten genereren: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;python manage.py inspectdb &gt; models.py&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Deze code zal de database gaan bekijken en dan de Models ervan zelf toevoegen in het &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;bestand 'Models.py'. Deze Models zien er dan ongeveer zo uit:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;class Datacenter(models.Model):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    datacenter_id = models.AutoField(primary_key=True)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    datacenter_name = models.CharField(('Name'), max_length=135)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    datacenter_location = models.ForeignKey(Location, verbose_name='Location')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   &lt;br /&gt;   class Meta:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        db_table = u'datacenter'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    def __str__(self):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        return self.datacenter_name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-3315767817550065386?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/3315767817550065386/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-4-2702-0603.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/3315767817550065386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/3315767817550065386'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-4-2702-0603.html' title='Week 4 (27/02 - 06/03)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-1610167135472183312</id><published>2010-03-04T05:04:00.000-08:00</published><updated>2010-04-16T05:37:26.790-07:00</updated><title type='text'>Week 3 (23/02 – 26/02)</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Nu de layout min of meer op punt staat, ging ik verder met de implementatie van het asset management system. Wat er ook gevraagd is, is een overzicht-pagina van een bepaalde rack. Wanneer op de detailpagina van een asset op een rack werd geklikt, moest er een overzicht gegenereerd worden waarop alle se&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;rvers - die zich in die betreffende rack bevinden -  worden getoond. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Leuk is natuurlijk ook een overzichtelijke grafische weergave. Doordat de meeste server-merken zelf ook visio-templates uitbrengen voor hun modellen, (zoals hp, cisco,... ) werd het mogelijk voor een bijvoorbeeld een dell poweredge 750 ook effectief die afbeelding te tonen in het rack. Verder werden deze dan ook aanklikbaar gemaakt. Op die manier komt in de lijst aan de rechterkant de assetnaam in het vet op het moment dat je met de muis over de afbeelding van de server gaat.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Met behulp van image replacements en visio-templates, ben ik er in geslaagd onderstaande overzichtpagina te genereren:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LwMVSqwappc/S4-yX9knnSI/AAAAAAAAAEI/ShqEobdoT9s/s1600-h/rack.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_LwMVSqwappc/S4-yX9knnSI/AAAAAAAAAEI/ShqEobdoT9s/s320/rack.png" alt="" id="BLOGGER_PHOTO_ID_5444766599249108258" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-1610167135472183312?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/1610167135472183312/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-3-232-262.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/1610167135472183312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/1610167135472183312'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-3-232-262.html' title='Week 3 (23/02 – 26/02)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LwMVSqwappc/S4-yX9knnSI/AAAAAAAAAEI/ShqEobdoT9s/s72-c/rack.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-7216028708214702632</id><published>2010-03-04T04:46:00.000-08:00</published><updated>2010-04-16T05:37:43.097-07:00</updated><title type='text'>Week 2 (16/02 – 19/02)</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Nadat ik erin geslaagd was om een volledig overzicht weer te geven in php, heb ik verder gewerkt aan een zoekfunctie, een login-functie, en overzicht-weergave's.&lt;br /&gt;Ook werd het tijd iets aan de design van het project te doen, met dit als resultaat:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LwMVSqwappc/S4-usjJKCcI/AAAAAAAAADo/7akpiYgdOf4/s1600-h/login.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_LwMVSqwappc/S4-usjJKCcI/AAAAAAAAADo/7akpiYgdOf4/s320/login.png" alt="" id="BLOGGER_PHOTO_ID_5444762554885343682" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S4-u2gPN1sI/AAAAAAAAADw/thVIHE4wEwY/s1600-h/search.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S4-u2gPN1sI/AAAAAAAAADw/thVIHE4wEwY/s320/search.png" alt="" id="BLOGGER_PHOTO_ID_5444762725904144066" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LwMVSqwappc/S4-u-E2e3KI/AAAAAAAAAD4/XU_f84as3s4/s1600-h/overview.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_LwMVSqwappc/S4-u-E2e3KI/AAAAAAAAAD4/XU_f84as3s4/s320/overview.png" alt="" id="BLOGGER_PHOTO_ID_5444762855991598242" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LwMVSqwappc/S4-vR4n00rI/AAAAAAAAAEA/RXSF69S9dxA/s1600-h/asset_details.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://1.bp.blogspot.com/_LwMVSqwappc/S4-vR4n00rI/AAAAAAAAAEA/RXSF69S9dxA/s320/asset_details.png" alt="" id="BLOGGER_PHOTO_ID_5444763196306281138" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-7216028708214702632?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/7216028708214702632/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-2-162-192.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/7216028708214702632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/7216028708214702632'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-2-162-192.html' title='Week 2 (16/02 – 19/02)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LwMVSqwappc/S4-usjJKCcI/AAAAAAAAADo/7akpiYgdOf4/s72-c/login.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-2963415346268001482</id><published>2010-03-04T04:16:00.000-08:00</published><updated>2010-04-16T05:38:07.101-07:00</updated><title type='text'>Week 1 (09/02 – 12/02)</title><content type='html'>&lt;span style="font-family:verdana;"&gt;De eerste week is ten einde. Bij de start van mijn stage heb ik reeds een database ontwerp gekregen dat een weerspiegeling is van wat er allemaal in het asset management system moet komen. Ook een basis overzicht in html-formaat van welke details ze allemaal willen te weten komen over een bepaalde opgevraagde asset.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:verdana;"&gt;Hier even enkele screenshots:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LwMVSqwappc/S4-rAdpr_cI/AAAAAAAAADY/tzKBN57Uk5Q/s1600-h/test.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="http://2.bp.blogspot.com/_LwMVSqwappc/S4-rAdpr_cI/AAAAAAAAADY/tzKBN57Uk5Q/s320/test.png" alt="" id="BLOGGER_PHOTO_ID_5444758498962046402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LwMVSqwappc/S4-rLA797hI/AAAAAAAAADg/x6HrQk8XEE4/s1600-h/screen.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 203px;" src="http://3.bp.blogspot.com/_LwMVSqwappc/S4-rLA797hI/AAAAAAAAADg/x6HrQk8XEE4/s320/screen.jpg" alt="" id="BLOGGER_PHOTO_ID_5444758680232652306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;De eerste week heb ik dus vooral de nodige klasses in php aangemaakt en ervoor gezorgd dat de bovenstaande html-file vervangen werd door een php-file. Daarin werden de waarden van de verschillende assets dynamisch ingeladen via templates &amp;amp; php.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-2963415346268001482?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/2963415346268001482/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-1-92-122.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/2963415346268001482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/2963415346268001482'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/03/week-1-92-122.html' title='Week 1 (09/02 – 12/02)'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LwMVSqwappc/S4-rAdpr_cI/AAAAAAAAADY/tzKBN57Uk5Q/s72-c/test.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3703702985061045693.post-8494183925029385227</id><published>2010-03-04T03:52:00.000-08:00</published><updated>2010-03-04T04:15:01.551-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stage'/><category scheme='http://www.blogger.com/atom/ns#' term='asset management system'/><category scheme='http://www.blogger.com/atom/ns#' term='a-server'/><title type='text'>Implementatie van een asset management system</title><content type='html'>&lt;span style=";font-family:verdana;font-size:100%;"  &gt;De stage bij &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;A-server&lt;/span&gt; is begonnen. Om deze stage een beetje toe te lichten, geef ik hieronder een omschrijving van de stageopdracht:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Als snel groeiend bedrijf is AServer op zoek naar een nieuwe asset management system. Het doel van de tool is alle informatie over assets (servers, switches, CDU's, KVM's, ...) die zich wereldwijd bij klanten zullen bevinden te centraliseren op 1 plaats. De tool moet alle gegevens bijhouden over de assets: gebruikte hardware, welke server op welke switchpoort is aangesloten, in welk rack de asset zich bevindt, welke IP adressen op de server geconfigureerd zijn, logins en wachtwoorden, ... &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Het is ook de bedoeling dat het asset management systeem gekoppeld wordt aan het bestaand monitoring systeem, gebaseerd op Zenoss en aan het bestaande ticketing systeem, gebaseerd op Atlassian Jira. Het hele systeem moet webbased te beheren zijn en moet een interface bevatten om makkelijk data in te voeren. Een aangepaste interface die makkelijk toegankelijk is vanaf een GSM of een ander mobiel toestel is een pluspunt. Een migratiescript die de huidige data overpompt vanuit het huidige systeem zou ook mooi meegenomen zijn.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Om dit alles te realiseren zijn we op zoek naar een gemotiveerde stagair die zich thuis voelt in IT omgevingen en zijn weg kent in de wereld van PHP en MySQL of Postgresql. Een gezonde interesse in systeembeheer is een pluspunt.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Vereiste kennis: &lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: verdana;"&gt;&lt;li&gt;PHP&lt;/li&gt;&lt;li&gt;HTML&lt;/li&gt;&lt;li&gt;Javascript - ajax&lt;/li&gt;&lt;li&gt;MySQL of Postgresql&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3703702985061045693-8494183925029385227?l=koendhoore.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://koendhoore.blogspot.com/feeds/8494183925029385227/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://koendhoore.blogspot.com/2010/03/implementatie-van-een-asset-management.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/8494183925029385227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3703702985061045693/posts/default/8494183925029385227'/><link rel='alternate' type='text/html' href='http://koendhoore.blogspot.com/2010/03/implementatie-van-een-asset-management.html' title='Implementatie van een asset management system'/><author><name>Koen</name><uri>http://www.blogger.com/profile/15464381460366991230</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
