Application Quality Enablement with TFS 2012 and MTM 2012 at SDC Tomorrow

by Angela 14. November 2012 05:00

Not sure if you’ve been to any of the sessions held by the Software Development Community in Chicago but they are always good. This month I get the opportunity to speak there myself and wanted to let folks know.  If you cannot make it to my session tomorrow, I will be presenting the information again at the Visual Studio launch event in Chicago (“The New Era of Work”) later this month as well.  Be sure to sign up for notifications of future SDC meetups, it’s a great group! 

In the meantime, here is the info for my session tomorrow:

When: Thursday, November 15, 2012 -- 5:45

Where:  i.c.s -- 415 N Dearborn, Chicago, IL (map) -- 3rd Floor, Sign will be posted at the door.

Session: Application Quality Enablement with TFS 2012 and MTM 2012 - With the rise of modern apps and the modern data center, we require a modern lifecycle approach that supports the need to increase velocity, deliver continuous value and manage change while enabling quality. See a unique and full lifecycle perspective on quality enablement with rich demos infused along the way to illustrate our the software testing/QA story. Demos will include:
• Product Backlog
• Storyboarding
• Exploratory testing
• Client Feedback


Multi-Tenant TFS Data Tiers? Yes You Can!

by Angela 6. November 2012 08:27

Multi-what TFS? In other words, hosting multiple instances of Team Foundation Server data tiers and all of their associated databases on the same data tier.

So we ran into quite the conundrum here, wherein we had just one physical server available to act as a TFS Data Tier, but needed to host at least 2 TFS 2010 instances on it to try some stuff out in relation to a coming upgrade. I needed to upgrade a number of our project collections to TFS 2012, while leaving some number still on TFS 2010 until we could do further validation on some customizations. It seemed risky, maybe even impossible, but mostly because I had never tried.  I certainly never saw that as an option in the installation docs or on MSDN.  It wasn’t until I sat down with a DBA who looked at it purely from a database perspective that I thought to just give it a try and see what happened. Obviously this is a development environment and NOT their production TFS Smile  You certainly COULD do this in production but it would make me nervous when it came to things like DR, so I’m not going to even entertain that notion.  But, in my situation, I already had a dual tier TFS 2010 environment setup in DEV, and I had a second AT server to use as a test bed for the upgrade to TFS 2012, but my main issue was how I could take collections from a single TFS instance, and upgrade only half of them to 2012 while the others were still available on 2010. I wondered, “can I upgrade the new app tier to 2012 while leaving the other app tier, hitting the same data tier, on TFS 2010?” The answer is, “sure you can!” 


Now if you look at TFS merely from the front end perspective this might seem odd, or risky, but like I said, I had a DBA who knew nothing about TFS but knew databases really well helping me to noodle through it.  I knew just enough about SQL Server to be dangerous, so together we made quite the team when it came to “let’s just try it and see what happens, it’s only DEV after all!”.  What I came to understand, and maybe I should have realized this sooner, is that when you upgrade TFS, or do any operations on it from the App Tier, it only affects the databases that are referenced by its configuration database.  So, 3 separate App Tiers have 3 separate Configuration databases, and 3 separate sets of databases (Collections, warehouse, etc.) that can coexist on a single data tier. So upgrading an AT from TFS 2010 to TFS 2012 only updates the schemas of the databases specified in the Configuration database associated to that AT.  Main requirement here is that it is a version of SQL that can support both products, so SQL 2008 R2 + current Service Packs.

So here is what I am running today:


Looking back, knowing what I now know, it makes sense too. Now, once again, I spent many many hours researching this on-line and could not find any documentation to confirm or deny that this was even possible. It took a few emails to some folks in North Carolina, you know – the dudes who WROTE the software – to confirm that yes indeed, you can host multiple instances of TFS on a single Data Tier. Turns out, they do it too! So I was pretty stoked to discover that I could in fact host 2 different TFS instances on a single Data Tier machine AND that it was a supported (although completely undocumented) scenario.

Rad huh? When you dig into the SQL Server instance it can become a confusing mess of config databases, and collection databases to manage, but it can also be a useful thing to know for upgrade and testing scenarios where you simply cannot get additional hardware for the DT.  Now yes, this absolutely can make things tricky for the DBA too if you are not using the TFS Backup and Restore Tools for backing up data. I certainly recommend using the built in TFS Backup tools if it is an option. But that is a discussion for another day… and another blog post.

I will happily accept dark chocolate in tribute Smile


ALM | Agile | SDLC | Power Tools | TFS 2010 | TFS 2012 | TFS Administration | TFS Power Tools | Team Foundation Server


Why Isn’t TFSService In My Service Account Dropdown List?

by Angela 5. November 2012 09:45

Ever been migrating a TFS 2010 server and when you got to the place in the Application-Tier Only Wizard where you had to specify a Service account and POOF, your TFSService account did NOT appear as a possible option? Ruh-roh!  This is a known issue in TFS 2010, and you won’t encounter this in 2012 thankfully, but nonetheless. If it happens to you, hopefully this also works for your implementation!


Now you certainly don’t want to be specifying a user account for this, but what on earth is a TFS admin to do? I got into this situation and fear not, there is NOTHING documented on-line to help you ::maniacal laughter:: Maniacal mostly because I beat my head on my desk for at least half a day trying to figure this out.  Nothing I could find on MSDN, the MSDN forums or any other searchable resource shed any light on the issue. I found the solution by calling in a favor with a couple of folks I know on the TFS product team.  I might seriously send them a cookie basket for being so awesome.  Seemed silly not to share my good fortune because this is a DOOZY if you ever run into it yourself.

Turns out, the values that go into this dropdown get collected by taking a poll of all of the TFS related SQL databases (configuration, warehouse, collections) referred to by the configuration file selected in the previous step. Obviously you need to select an account that can access all of the databases.  The account should a) not be dbo, b) not be db_owner, and c) needs to be a valid user with TFSADMINROLE and TFSEXECROLE. In my case, some folks had been having issues creating new Team Project Collections (because their TFS Admin accounts did not have proper permissions on the Data Tier) and so they logged into the AT as TFSService to create the collections ::head explodes::  Doing that makes TFSService dbo and dbo_owner and therefor pulls its name out of the proverbial hat to be used as the service account going forward.

So how do you fix it? a) make sure your TFS Admins have the appropriate rights on all of the servers they need to get their jobs done going forward and DO NOT take no for an answer.  Trust me, it’s brutal otherwise; b) Take TFSService OUT of the administrators group on the local server so no one can login as that user in the first place; c) go fix the TFSService account in the TFS related databases in SQL Server. This may seem scary, but I don’t know of another way.  Ask your DBA if you need to, it’s possibly their fault you got in this situation anyway Winking smile 

So what you need to do in SSMS to fix it?

  1. 1) Iterate through all of the TFS databases and change the Owner to something OTHER than TFSService; this will also reset the login associated to the dbo user. Keep in mind if this user is already in the Users group for that database, then they will need to be deleted from there first.
  2. Untitled

2) Add TFSService as a database user (Database | Security | Users –> New user…)

3) Assign them the following roles: TFSADMINROLE and TFSEXECROLE.



And after you’ve given yourself carpal tunnel with the billion mouse clicks necessary to do this, you can restart the Application Tier Only wizard and you will find that now TFSService appears in your list. HUZZAH! ::throws confetti::


Now ideally you will never get into this situation in the first place, but if you do, it’s not really documented other than this blog post – at least not that I know of. BIG THANKS to Brian MacFarlane and Ed Holloway on the TFS Product Team for helping me noodle through this issue.


ALM | Application Lifecycle Management | MSDN | TFS | TFS 2010 | TFS 2012 | TFS Administration | Visual Studio


So I ran into this issue today while creating a TFS 2010 Backup Plan

by Angela 31. October 2012 13:30

So as you would expect, I as a consultant do not have god-like access to things in production like I do in the dev and test environments.  So occasionally I get tripped up on access rights, and when it comes to TFS, well, they could do a much better job of listing out all the places where you do and do not need Admin rights, sysadmin rights, farm admin rights… Well, it’s all out there between the Ranger Guidance, best practices documents, install docs and MSDN documentation but you have to do a LOT of cross referencing to get it all.  And sure, ideally anyone who is a TFS admin would be able to just ask nice and smile and get all those rights, but this is the real world and many large companies are PARANOID about handing out access like that to production.  I had to fight to get the minimal rights documented in the TFS guidance, let alone anything extra.

While upgrading TFS 2010 to 2012 at this current client, I am stopped dead in my tracks at least a few times a week, sometimes a few times a day, by “Access Denied”. My most recent one was extra tricky because it involved a Power Tool and as you know, those are often not documented very well. So, on to my story…  I was setting up a Backup Plan on TFS 2010 using the nifty Power Tools feature (see screen below) from the Admin console.  I login to the TFS application tier with my account, a TFS Admin user.  I know that my account has sysadmin rights on SQL because I am a TFS Admin, and when it comes time to providing the account to run the backup plan under I provided the TFSService account which I know has Administrator and sysadmin rights on the data tier server:


So between those two accounts I would think everything was OK. I don’t know for sure, but if the Backup Plan is running as the TFSService account the way it is setup here, well that account is king of the world so everything should “just work”. And yet:


So to hopefully make this something that comes up when someone else does a search on this message, here is what I saw - “Error    [ Backup Plan Verifications ] The current username failed to retrieve MSSQL Server service account. Please make sure you have permissions to retrieve this information.” 

WTH?! And when I opened up the error log the first error I encountered was:

TFS upgrade xp_regread() returned error 5, 'Access is denied.' xp_regread() returned error 5, 'Access is denied.' 

Again, WTH?!

So the DBA goes off and starts researching what xp_regread() does, and tried to figure out why this isn’t an issue in our dev and test environments given that everything was setup the same, and I start digging through forums.  Finally I find one sad and lonely little post on the MSDN forums related to the issue that recommends 1) logging in as a TFS Admin user (OK, I’m with you) and 2) “ensure that the user who perform this Backup Plan have required permission in SQL Server”.  Wait, what?  Be more specific please. What *ARE* the required permissions??  This happens all the time. Don’t tell me to “make sure you have appropriate permissions” without clarifying what those are. Otherwise, well, duh! I *think* I have the right permissions but clearly I am mistaken.

I dig through the Ranger Guidance which as far as I can tell is the only place this tool is documented.  It doesn’t say the person CREATING the backup plan has to be an admin on SQL, and it IMPLIES the account specified to run the job has to be an ADMINISTRATOR but only because the example specified a  Administrator account. Here, right from the guidance:


But even that doesn’t necessarily imply a SQL admin, and nowhere in the doc does it say what rights either account (logged in user or “Account”) should have. I just went back and read it AGAIN, does not say anything IRT rights of either of those users in the Guidance. I suppose if you knew what it was doing behind the scenes you could infer the rights needed from the MSDN docs (I found this later). I made an educated guess that because in dev and test I am a server Administrator on the DT, and the Backup worked just fine there, that me being a SQL Server Admin must be a requirement.  So I logged back into my production TFS AT with another account that I knew was admin on every server in the TFS implementation (I know, I know), and the backup plan was created just fine. .

Our DBA does NOT like making TFS admin accounts SQL Administrators, but if I can show him explicit rules that say YOU CANNOT DO YOUR JOB AS A TFS ADMIN WITHOUT IT, he will do it.  So please Microsoft, don’t make it so darn difficult to divine what rights all of the accounts need for the various tasks the user will do. Particularly the Power Tools which make people nervous anyway.


ALM | Application Lifecycle Management | MSDN | Team Foundation Server | TFS | TFS 2010 | TFS 2012 | TFS Administration | TFS Power Tools | TFS Rangers


Default Roles and Permissions for TFS 2012 in and Handy Dandy Spreadsheet

by Angela 23. October 2012 11:47

So we’ve already had one situation where we had to use a recover command and lost all of our permissions, roles, etc. Restoring them can be a HUGE PITA because while Microsoft was kind enough to document them, you need to cross reference two different pages to see both the default permissions themselves, and the default assignments of those permissions to TFS groups and roles. BUT you cannot easily visualize them in the format you would see them in when setting your permissions.  IOW, you are setting values in a dialog like this:


But the documentation is provided in this format:


NOT HELPFUL right? I had to search the pages by role or group, highlight where they showed up, and :: scroll, scroll, scroll:: to find all of the places where they existed to set the values. The documentation is NOT in line with the implementation. I kept thinking “if only this was in Excel, I could sort, and filter and SEARCH. There would be unicorns and rainbows!!” I searched, no one seemed to have posted a permissions matrix on-line and my buddies on the product team claimed no knowledge of one. They did say if I created one they would love to have it. And after the help they’ve given me lately, how could I say no?  Smile

I am more than a bit OCD and just sucked it up and spent the time building this in a spreadsheet format that was sortable and filterable.  It is EXPLICIT permissions only, so those listed in the two referenced source pages. So I spent about 2 hours building this, but in the long run it will save me FAR more than 2 hours. JUST LOOK!


You can access the spreadsheet here, and all sorting and filtering work: https://skydrive.live.com/redir?resid=E796C9484DF4BAA3!10019&authkey=!AJ0OZWvOhG8OjHs  Note that I separated it into 2 worksheets, Server, Collection and project level in one, and everything else in the other.  I was going to put it all into one, but there were WAY too many columns and it was hard to read. 


Again I say, you’re welcome! Please let me know if you notice anything I might have missed, I am human after all.  Since it is SkyDrive updates will be posted in real time as I fill in any gaps or make corrections. If you feel compelled to repay my kindness I love dark chocolate and gerber daisies. Consequently if you meet up with me at a user group or tech event and want to thank me, I also prefer Hendricks gin Winking smile


ALM | Application Lifecycle Management | MSDN | TFS 2012 | TFS Administration | Team Foundation Server | Visual Studio 2012


So You Were Forced to Use the dreaded TFS Collection /Recover Command, Now What?

by Angela 11. October 2012 08:23

Since we have used Recover on a production database and lived to tell the tale I thought I would share our experiences. If you read this post you will know that one of my client’s got themselves into a world of hurt where we needed to restore a nightly backup that was not detached.  I know, I know, detached backups are the way to go.  Well, now THEY know that too Winking smile  Nonetheless, sometimes you may find yourself needing to recover a TFS Team Project Collection (TPC) database, and if you’ve read the MSDN documentation you’ll know this is not an ideal situation. The Recover command is very lossy, BUT you get your data back. And in our case it was worth the risk.

So here is the backstory…  Someone deleted a Test Plan with a month’s worth of data in it, and if you know MTM you know there is no “undelete”. Restoring a backup was our only hope. BUT our nightly backups are SQL backups of the entire SQL Server instance, so undetached (we are addressing this NOW). Plucking one TPC out of there and attaching it is just not an option. And we did not have hardware to restore the entire thing and detach it properly.  So here is what we did:

  1. Restore the backed up TPC from the nightly backup into our dev TFS environment
  2. Used the TFSConfig /Recover command, followed by TFSConfig /Attach to get it attached in dev
  3. Used the TFSConfig /Recover command to get the TPC into the proper state
  4. Detach the hosed TPC from production
  5. Restore that detached version of the TPC to production
  6. Attach the backup to production (we actually hit an interesting bug in TFS 2010 at this point, so the attach was quite harrowing and involved an emergency hotfix to our TFS sprocs, I may blog about later.)

Now, I would love to say everything was perfect but the recover command did blow away some things that we had to get back into place before people could use the TPC again.  What we lost:

  1. All the security setting ever!
    • Collection level groups and permissions
    • Team Project (TP) level groups and permissions in every TP in the TPC
    • Permissions around Areas and Iterations in every TP in the TPC
    • Permissions around Source Control in every TP in the TPC
  2. SharePoint settings  (in every TP in the TPC). Settings on the SharePoint server themselves will be fine of course but you will probably see a “TF262600: This SharePoint site was created using a site definition…” error when you try to open the portal site that was once attached to those TPs. You will need to fix this in 2 places.
    • Go to TFS Admin Console, select the TPC you just restored and make sure the SharePoint Site settings for the TPC are correct. It will probably be set to “not configured” now.
    • Open team explorer (as an Admin user), and for each TP go to “Team Project Settings | Portal Settings” and verify everything there is correct. Ours were just plain gone so we had to enable the team project portal and reconfigure the URL.
  3. SSRS Settings – this will probably be fine if you restored the database as-is but we also renamed it as part of the restore, and so had to update the Default Folder Location through the Admin Console for the TPC in order for this to work again.

So word to the wise, make sure you understand what the settings above are for all of the TPs in your TPC BEFORE you perform a Recover command because chances are you will have to manually set them all back up.


ALM | Application Lifecycle Management | MSDN | MTM | Microsoft Test Manager | Microsoft Test Professional | TFS | TFS 2010 | Team Foundation Server | VS 2010 | Visual Studio | TFS Administration


Visual Studio 2012 Launch Event Coming to Chicago in September!

by Angela 29. August 2012 04:50

You might have heard that the official launch of Visual Studio 2012 is coming soon! Alas we cannot all afford to hop on a plane and head out to Washington State to party with the product team. BUT, lucky for you, there are also going to be local launches held at major cities across the U.S. You might not have noticed because all the marketing jazz has been heavily focusing on the Windows Azure part of that event, but there is going to be some great content around the development tools as well. Now you know!

Join Polaris Solutions at this free launch in Oak Brook, IL (about 20 miles west of Chicago) event to check out some of Microsoft’s newest leading-edge tools, including Microsoft Visual Studio 2012, Windows Azure, Windows Server 2012, and Microsoft System Center 2012. You'll get the opportunity to engage with the experts (like me), get hands on with the new technology, and learn how to build modern applications both on-premises or in the cloud using the Microsoft platform.

A special Visual Studio 2012 launch track was recently added to the CHICAGO event with a keynote from Brian Harry himself. I know, cool right?! Smile In his talk, you will learn about how Visual Studio 2012 can help you evolve your development practices to maintain relevancy, adapt to change and deliver on the needs of the business, rise to the challenge of the “New Normal”, and elevate your skills to keep pace with the fast changing world of application development and delivery. Be sure to stop by after the keynote and visit us at the Polaris Solutions booth as well!

At the event, you will also be able to participate in a raffle for a chance to win an Xbox 360 + Kinect Bundle.  Get registered soon before it sells out:  https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032521310&Culture=en-US&community=0


ALM | Application Lifecycle Management | Microsoft Test Manager | Microsoft Test Professional | SDLC | TFS 2012 | TFS | Team Foundation Server | Visual Studio | Visual Studio 2012


August Chicago ALM User Group - Announcing Git Integration with TFS

by Angela 16. August 2012 10:43

I know, Microsoft supporting non-.NET developers and non-Windows folks? Inconceivable! ::gasp:: 

OK, so if you’ve been paying attention for the past couple of years, you might already know that this has been happening slowly. But recently there have been some seriously MAJOR developments. First, Microsoft made Entity Framework open source, and now they have added MVC, ASP.NET and more to that list. Dogs and cats, living together, mass hysteria…and all that.  Then when you thought it couldn’t get crazier, they announced TFS integration with Git!  My head just exploded a little, how about yours?

Come to the Chicago Microsoft office on August 29th and meet one of the TFS product team members, you heard it, ONE OF THE DUDES WHO WRITES CODE FOR TFS ITSELF! Edward Thomson will be discussing how to take advantage of the new git-tf tool to synchronize a local git repository with Team Foundation Server.  This cross platform bridging tool is especially useful for cross-platform developers, such as iOS developers on Xcode.

Edward Thomson is a Software Development Engineer at Microsoft, where he works on cross-platform version control tools for Team Foundation Server.  Before joining Microsoft, Edward worked on numerous source code control tools for Microsoft and Unix platforms.

Register now to make sure you get a spot. Building security also requires it, and it helps me not order gobs of food no one will show up to eat.  So help a girl out huh?


ALM | Application Lifecycle Management | MSDN | SDLC | TFS | Team Foundation Server | VS 11 Beta | Visual Studio | Open Source | git | TFS 2012


Microsoft Test Manager (MTM) Tip O’ the Day–Filtering test lists

by Angela 3. July 2012 07:41

Now, I am no @ZainNab, the guru of “Tips and Tricks”, but I occasionally run across features that have been staring me in the face for YEARS and yet somehow went completely unappreciated, sometimes unnoticed.  And then one day it hits me and OMG my life is easier, and I want to tell everyone.  Sure, it’s a bit embarrassing to admit sometimes given that I worked at Microsoft for 5.5 years focusing on the Visual Studio tools, but who hasn’t done that?  Not you? Really?  I am skeptical…  There are after all, a bajillion commands to try and remember. For real, if you don’t believe me, look at the entire book that Sara Ford and Zain wrote about it. It’s worth every penny and Amazon has a great deal on it, pick up a copy! Smile

So, back to my point. I was sitting in MTM, looking at a fairly daunting list of PBI based test suites, thinking “now which PBI’s were the ones where I had test cases to run again?”  I started thinking about writing a query, but that only helps is YOU are assigned to the test case, it doesn’t really help with test RUN assignment. Then it all came flooding back.  Wait, there’s this FILTER button to sort that out.  And conveniently it’s right there in front of my face ::face palm::  I felt a little better when no one else admitted to noticing it was there either. Maybe they were just being nice to me.  Either way, in case you didn’t notice it, check it out. Before:


After, I have MUCH fewer test suites that I have to look at:


That’s my Microsoft Test Manager tip o’ the day!  I won’t be posting them every day like Zain has been doing on his blog around Visual Studio 2010 for the past couple of years, of course I also don’t mainline 5 hour energy like he does Smile  I will do them whenever I can.  Hope this was helpful! Feel free to post any tips of your own or shoot me a note if you have other questions or comments.


June ALM User Group Meeting–Acceptance Testing Using SpecFlow!

by Angela 17. May 2012 06:12

Get ready, we have a packed summer full of great topics at the Chicago Visual Studio ALM user group! Be sure to join us in beautiful downtown Chicago at the Aon Center in June for this next session on how to improve your user acceptance testing practices using SpecFlow! Be sure to pre-register on our user group site so we can get you entered into the security tool, and please do keep us posted if you have to cancel! We don’t like throwing away food and it helps me to order the right amount.

Topic Description:

Imagine a project you’ve worked on in the past. Whether or not you or your organization makes use of Agile processes, you probably spent a good deal of time going back and forth with business stakeholders on the fine detail of how the software you’re building should behave. It’s possible you had to dedicate effort simply to producing a demo that the business will appreciate and understand. It’s even more likely that at some point, you and the business had disagreement(s) on whether something was “working”, “finished”, or “done”. Those types of discussions can leach away at your team’s time, expend effort, and impact morale as well as create tension between development teams and the business.

Now imagine if you could instead pour that blood, sweat, and tears into developing your application’s functionality. Imagine a scenario where new features are authored test-first, by non-tech staff in a plainly understandable, shareable, and versionable text format. Imagine a situation where the same set of specifications can be shared to drive a browser-based test suite at the same time that the specifications drive an integration test suite. These are the types of scenarios that tools like SpecFlow are particularly well-suited to address.

Unit tests are great for verifying atomic pieces of software functionality, but they are very poor at capturing and communicating specifications at any other resolution than fine-grained. They’re also completely useless to a non-technical user attempting to understand a system’s functionality.

This is where acceptance testing enters the picture. Although commonly classified as BDD (Behavior-driven design), tools and frameworks like SpecFlow serve to bridge the gap between proving the correctness of a piece of code from the inside, micro perspective and the correctness of an application as a whole from the outside perspective.

In this talk, we’ll go over what acceptance testing is, when it should be used, and how to add acceptance testing into an existing application using SpecFlow. We’ll also talk a bit about DSLs (domain-specific languages), the pyramid of returns vs. effort when it comes to different types of testing, techniques for authoring and designing tests and bindings, and finally, because this *is* a group about ALM, how to integrate SpecFlow into a CI environment and why you or your organization should do so.

If attendees wish to follow the demo on their laptops, they can save time by pre-installing the VS tooling for SpecFlow – http://specflow.org. The download there adds some tooling support within the VS IDE, and is not needed to run SpecFlow.


Speaker Bio:

Josh Elster is the founder and principal of his independent production and consulting company, Liquid Electron. With clients ranging from small media design shops to multi-billion dollar corporations, Josh’s experience spans a number of different sectors, projects, and roles. In February of 2012, Josh joined the community advisors board for Microsoft’s Patterns and Practices team for the CQRS journey project (http://cqrsjourney.github.com), as well as being a contributor. Like the common cold, but without the whole being ill aspect, it is Josh’s hope that he can infect others with his passion for software development. When not serving as Patient Zero, Josh can be found reading, playing video games or guitar, or coding. His website can be found at http://www.liquidelectron.com. His Twitter handle is @liquid_electron. His most recent demonstration project, the PostcardApp, can be found at http://www.postcardsfromskyrim.net.

Powered by BlogEngine.NET
Original Design by Laptop Geek, Adapted by onesoft