A special CMS



  • So years ago I used to work for a large charity.

    They used a very special cms. I think I am one of the few developers to ever really work with this platform.

    It was a really crap knockoff of other CMS's that Existed circa 2005.

    I was hired by the company that originally made it in 2014.

    This is how it worked.

    • Web request came in
    • It was routed badly to the CMS
    • The CMS would decide via if else statements if it should go to the C# part or the python part.
    • If it was python part, the CMS would spin pipe commands to a python 2.6 installation, the python script would execute and pipe back the output ...
    • but it didn't always do it. Sometimes it would use the IronPython Runtime to get it running.
    • the .NET part runs in Debug mode so if you send it a link that is unqualified the server will give you the yellow screen of death.

    To make things even worse ... if you didn't have magic files on your computer it wouldn't even compile. Also debugging the python part unless you had the magic set of options running would require piping to a log tile.

    The only developer that knows how it works is a bigger Alcoholic than me. It is still in use to this day even though the company died last year in a large insurance company in the UK. The guy used to fuck off to the pub every lunch time for more than two hours work on some code that would work on Mono on his mac and then check it in.



  • Some stuff I forgot. It made a jump from version 1 to 4. Version 5 included Ajax!



  • @lucas1 Did it char.ToUpper(s[0]) + s.Substring(1); or s[0].upper() + s[1:] random words in the output?


  • 🚽 Regular

    @lucas1 said in A special CMS:

    log tile

    0_1483010277674_tile-8bf0cc.jpg



  • Wait, what was the reason behind. NET/python split?

    Just arbitrary, or did they need one platform for something special the other couldn't provide?


  • Winner of the 2016 Presidential Election

    @cartman82 said in A special CMS:

    Wait, what was the reason behind. NET/python split?

    Maybe the author replaced his Gin with Absinthe at some point?



  • @cartman82 said in A special CMS:

    Wait, what was the reason behind. NET/python split?

    Someone wanted to learn python. IronPython has been effectively dead for a while.


  • FoxDev

    @lucas1 said in A special CMS:

    IronPython has been effectively dead for a while.

    Was it ever alive?



  • @RaceProUK It was under active development until fairly recently, the last announcement was earlier this year, however releases have become much slower and I don't think there is any plans to support python 3 and above. IronRuby died much earlier.



  • There is even an IronScheme - something so batshit crazy even I am astonished by it, Lisp Weenie or no. It was started in 2007, and last checked into this past April (apparently, the author has skipped from one host to another a few times). I don't know of any CMS written in it, fortunately.

    Last time I checked, it had a really crappy REPL and nothing else, supporting only the bare minimum to count as a Scheme implementation and nothing close to the planned R6RS support in sight, but that was a few years ago and I would need to look at it again to see if an progress has been made. Not gonna do that.

    Seriously, if I want a Lisp on CLI, there's the CLI version of Clojure, which is pretty damn good from what I understand. While that wasn't around then, and I have to grant that actual R6RS Scheme implementations are sort of thin on the ground in general, I don't see the point in this. When a huge Scheme fan like me says your Scheme implementation is pointless, you done fucked up.


  • BINNED



  • @ScholRLEA
    The IronPython port is pretty good actually, intellisense works really well. It just a bit two brained and it feels odd using it tbh, it didn't help that my only major exposure to it this monstrosity.

    I was looking at Clojure for some projects, but it is a bit left field. The crazy thing is that the Daily Mail of all places uses it for their tech stack. A lot of places are using F# (which while isn't a LISP) had a good REPL and you have all the nice things about .NET.



  • @antiquarian Yeah, I've read part of it before, and I am re-reading parts of Lisp In Small Pieces right now, which covers writing several different implementations for Scheme interpreters and compilers. That just underscores my point, though: it is dead easy to write a Scheme interpreter, and not much harder to write a compiler, but doing it well is a real pain in the ass. This guy wasn't doing it well when I last checked. Maybe it's different now, though.



  • @lucas1 Interesting. Maybe I should look into it after all.



  • @lucas1 Oh shit I forgot about some stuff.

    • Everything frontend was XSLT (which was standard at the time, but in 2013 it is just painful).
    • Your had to map a processor to a URL. So a processor if I remember correctly was a method in a python file. If any of this was wrong it would silently fail.
    • Instead for resizing images and generating things like thumbnails it required imagemagick to be installed. Again it fired up imagemagick by piping stuff to the commandline. We had a lot of bugs reported by testers because ImageMagick wasn't installed on some of UAT machines.


  • @lucas1 said in A special CMS:

    Everything frontend was XSLT

    Could be worse. It could be using XSLT for the backend.


  • FoxDev

    @anonymous234 said in A special CMS:

    @lucas1 said in A special CMS:

    Everything frontend was XSLT

    Could be worse. It could be using XSLT for the backend.

    Could be worse. it could be using XSLT for the whole system (it's Turing complete).


  • :belt_onion:

    @lucas1 said in A special CMS:

    Some stuff I forgot. It made a jump from version 1 to 4. Version 5 included Ajax!

    Version 5 always includes Ajax.



  • @cartman82 The idea was that customers could write extensions in an easy language, but it is impossible to debug so no customers ever did.


  • Winner of the 2016 Presidential Election

    @RaceProUK said in A special CMS:

    it could be using XSLT for the whole system (it's Turing complete).

    IIRC it's only Turing-complete if you call the XSLT processor in a loop, which is cheating.



  • @El_Heffe

    That's because AJAX was born in version 5. Version 5 of Internet Explorer.

    Re. IronPython: I've used this in a project which I started in 2014 and I was very pleased with it. Both with Python as a language as well as how it integrates with .NET.



  • @lucas1 said in A special CMS:

    the C# part or the python part.

    My two favourite languages. If I wrote a CMS I would use either of those. If I wrote a CMS for myself I would maybe use both.



  • @marczellm It will be maybe the second worst CMS after this one then. It really isn't a good idea.



  • @lucas1 BTW I been working with various CMS systems since 2005 in one form or another and the best system I have worked with but possibly the most painful is sitecore. Painful because version 7 in 2012 would bring a Core 2 Duo 2.9ghz machine with 8gb of ram to its knees (I was running Chrome , SQL Server 2008 R2, VS2013 and Winamp and probably skype) and mp3s were skipping because the CPU kept on temporarily maxing at 100%. Ironically Crysis 3 ran fine on the same system a year later.

    If someone could make a less painful version of sitecore that was open source, you could do pretty well.



  • @lucas1

    Have you ever worked with Episerver? I'm using that at work now and I'm growing quite fond of it. It's very developer focused and sticks quite close to how you'd build a regular website with ASP. NET.

    No XML, no complex configuration and deployment, all you need to do is write your models in a code first style.



  • @AlexMedia No, but Sitecore is basically ASP.NET but with it own layer over it as well. Both are horrendously expensive and the free alternatives tbh aren't really that good in the .NET world.

    Sitecore is pretty much ASP.NET but it overrides part of the pipeline. The slowness is to do with spinning up their stuff over ASP.NET which is IMHO well designed.

    I dunno how Episerver works but Sitecore uses a "Single unit of content principle" which is just basically OO content. So every piece of content has a template. So each like OOP programming, every template could be thought as of a "Class" and every piece of publish content is an "Object".



  • @lucas1

    Sounds like Sitecore and Episerver have something in common: bloody expensive. If you manage to find any prices at all...

    A difference between Sitecore and Episerver is how easy it is to get started. Sitecore doesn't even let you access their binaries if you aren't Sitecore certified, Episerver just gives them away through a NuGet feed that's publicly accessible.

    If you want free... have you looked at Umbraco? I toyed with it in the past and I was quite pleased.



  • @AlexMedia said in A special CMS:

    If you want free... have you looked at Umbraco? I toyed with it in the past and I was quite pleased.

    Yeh I have. I only evaluated it to see if I would like it, it seemed okay.

    I believe the term is a segway into a story about the company:

    The other part of this story was that the company at the time only had one real client that was the large insurance company. The parent company only had 1 big contract (which they lost a few weeks before I left).

    So the whole dev team was 4 guys and we were building working on a CMS that while had some good ideas took 4 days to get working (I had the record btw) on a dev machine before the super alcoholic guy left ... it took us 2 weeks because we had to find all the strange scripts he had for the "local version".

    Anyway. One of the contractors really rated me and told management to ask my opinion. I was called downstairs afterwards. Now one of the managers had the smelliest armpits ever and I walked into a room with him and the other bellend that were running the office on that particular site. I mean the smell was unreal, I was literally gagging because of the smell of his pits.

    They asked me about leading the project after they threatened to sack me 2 weeks earlier (being threatened to be sacked is a regular part of my working week) on the current CMS. I said they should just keep 2 contractors doing work for "Large insurance company" and we should standardise all new contracts on Sitecore or another mature CMS to keep development costs down.

    I said Sitecore for several reasons:

    • I am familiar with it and they wanted me to lead projects.
    • I know if you become a Sitecore partner. Sitecore will recommend you to people that want a Sitecore ... the business didn't have many clients coming in but were asking Sitecore prices for this bespoke CMS.
    • I then told them that the Custom CMS market is non-existent and isn't a sound business model. Because not even large software houses in the area could afford dedicated development of the CMS system and building custom sites at the same time.
    • I was told no they wouldn't consider anything other than working on the existing product.

    The business was going nowhere at that point and I knew it would only be a matter of time until it went under. So I jumped ship about 2 weeks later.

    The business was liquidated a week after I left.



  • @lucas1 said in A special CMS:

    I believe the term is a segway into a story about the company:

    Segue:
    A smooth, uninterrupted transition from one thing to another.

    Segway:
    0_1483151778963_upload-101d9efc-f9b0-496f-a5fb-c008c4803e80



  • @lucas1 said in A special CMS:

    • the .NET part runs in Debug mode so if you send it a link that is unqualified the server will give you the yellow screen of death.

    How does that even make sense?

    I helped build a site in this .NET CMS called Orchard, that seemed pretty decent, as far as CMSes go.



  • @UndergroundCode If you try to concatenate certain characters onto a URL it can cause .NET version 4.0 and blow to crash. I can't remember what they are. But it basically an unqualified URL Scheme as I remember (it was over 2 years ago now).

    If a site is in debug mode this will hit the ASP.NET request lifecycle before the global.asax and thus you can't catch it and do something with it. And the server will produce a yellow screen of death.


  • Garbage Person

    @asdf said in A special CMS:

    @RaceProUK said in A special CMS:

    it could be using XSLT for the whole system (it's Turing complete).

    IIRC it's only Turing-complete if you call the XSLT processor in a loop, which is cheating.

    WtfFramework checking in.


  • kills Dumbledore

    @RaceProUK said in A special CMS:

    Could be worse. it could be using XSLT for the whole system (it's Turing complete).

    The first bit of work I did in a paid programming job was implementing Zeller's algorithm in XSLT. At the time I thought it was a sensible and elegant way to solve the problem


  • FoxDev

    @Jaloopa I'm glad to see you were given the appropriate treatment and got better ;)


  • kills Dumbledore

    @RaceProUK said in A special CMS:

    got better

    Who said I did? It's not like being turned into a newt


  • Trolleybus Mechanic

    is this thread about cervical mucus?



  • @UndergroundCode said in A special CMS:

    How does that even make sense?
    I helped build a site in this .NET CMS called Orchard, that seemed pretty decent, as far as CMSes go.

    Just noticed this.

    Baically say you have a link with a funny character at the start and .NET is in Debug mode. If it looks like a relative URL .NET will try to concatenate that with the site route (probably from IIS) ... I think that would be something like HttpContext.Current.Request.RawUrl (it all gets a bit hazy here because tbh I don't know off the top of my head) and then tries matching that to a existing url if you haven't overridden things like routes e.g. MVC etc.

    Some Characters would create a route that is unqualified. If .NET is setup properly and their is a web.config error page or Application_Error handles it sensibly it should catch it. But the whole site was running in compilation=debug mode and had none of that shit setup .... so it used to yellow screen of death. Which is really fucking bad, because you can just keep on probing it for stuff like the database conn string etc.



  • @HardwareGeek I've heard the term in conversation. It sounded the same as the brand so I made the assumption that the brand named itself on a smooth transition from one thing to another.



  • @lucas1 Oh, the brand name Segway is definitely meant as a pun on 'segue', but unfortunately, most people seem to have been unfamiliar with the term itself, meaning that for many people, a) the pun is lost on them, b) when they do run across the term in conversation, they assume it is spelled the same as the brand name, and c) when they see the term in writing, they don't make the connection, and assume it is pronounced 'segoo' or something like that (which was often the case before Segway appeared anyway - I made that mistake myself years ago when I first saw it).



  • @ScholRLEA I was making the same error. I've only recently heard it on Podcasts and I just thought "oh Segway must be a actual word meaning".


  • kills Dumbledore

    @ScholRLEA said in A special CMS:

    most people seem to have been unfamiliar with the term itself, meaning that for many people, a) the pun is lost on them, b) when they do run across the term in conversation, they assume it is spelled the same as the brand name, and c) when they see the term in writing, they don't make the connection, and assume it is pronounced 'segoo'

    👋

    A monthly event I used to go to had interval singers called The Segue Sisters. When I heard it, I thought they'd be riding Segways or something. When I saw it written down it took a while to connect that with the name I'd heard, then I had to look up the word once I realised what was going on



  • @ScholRLEA I Knew how the word was spelled but I'd never heard it spoken before the Segway was around. I assumed it was pronounced 'sayG' and I figured when people said 'segway' not meaning the vehicle they were making a joke similar to how people sometimes intentionally say 'fox pass' and the like.


  • I survived the hour long Uno hand

    @ScholRLEA I've heard people pronounce segue to rhyme with 'egg'.



  • @Yamikuronue The bloke from the Rubin Report who is Gay and Well spoken says it like Segway.

    It is now pronounced "segway"

    🚎



  • @lucas1 said in A special CMS:

    The only developer that knows how it works is a bigger Alcoholic than me.

    So, what you are saying is, this guy is always drunk ? 😜



  • @TimeBandit Yes he is. I am only sometimes drunk.

    The bloke made me drunk from just fucking breathing.


Log in to reply