3 ms·
I've worked on a CMS that was partially done in .NET, Iron Python and used an XSLT templating system to generate HTML for the front end. The architecture looke
by thepp1983 8y ago
I've worked on a CMS that was partially done in .NET, Iron Python and used an XSLT templating system to generate HTML for the front end.
The architecture looked like something from the Early Java days.
The system used Iron Python / C# in the following way.
1. A web request would hit the CMS
2. There was a massive switch statement to work out how the query would be rewritten
3. If it the url was prefixed with processor it would attempt to find the processor in the db.
4. The code would then find the python script associated with the processor.
5. The processor would then spin up a command line instance in a hidden command window on windows server.
6. The processor would have to return XML that had to be built up using strings (not element tree for you).
7. This would return the XML to the C# which would then try to render into the XSL Transform.
If at any time this failed. Silent failure. There was no way to debug easily (There was a magic set of flags that had to be set in Visual Studio or wise you couldn't debug the python scripts).
To get the software to build on a new machine. It took a contract 4 months to reverse engineer an XP machine. None of it was documented anywhere.
It used ImageMagick to generate thumbnails on the fly which doesn't work to well with windows server.
The lead engineer was an alcoholic. He used to go to the local pub for 4 hours in the middle of the day and come back smelling like a brewery.
- antoineMoPa 8y agoWhen you are just above the Ballmer peak.
- thepp1983 8y agoWe had a developer meeting a few weeks before he left the company and he said "I designed the system in the pub" ... I like my beers but this guy was on another level.
- goostavos 8y agoI actually laughed while reading this. I've encountered something eerily similar, but it was a Ruby app. Almost exactly your steps 1-3, however, what was returned from the db were ruby method names, which were then invoking other pieces of the code through some deep, twisted ruby magic. Uncovering what the hell was actually happening was like peering into the mind of a psychopath. Once myself and 3 other engineers spent 4.5 hours trying to figure out how to send an email from this treacherous app (a feature which had stopped working months before we showed up). After those 4.5 hours, none of us even came close. To top the whole thing off, page load times were in the minutes. The standard joke from the users was that they "get to take lots of coffee breaks." Much to the (new) manager's credit (and my sanity), we got buy in to just build a new version and let the old one die. I left the team shortly after the 2.0 beta launch, but God I wish I would have stuck around a little longer so I could have seen the official end of life for that calamity of an app.
- thepp1983 8y agoIn a weird way I kinda like these totally mental systems. It really ups your skill level for debugging if nothing else. I've worked with lots of proprietary CMS systems and I kinda got into a groove with working with them. I knew exactly how to manipulate the system within the parameters of said system. I kinda found it challenging. When a system is well built. I find it boring.