pointyhatuk
Its also why we invoice and take wire payments rather than storing CC details. There's just so much to go wrong.
Also PKI is shit for this sort of thing. As demonstrated, the moment that public key is gone, then the whole system falls like a house of cards. For the non believers of this fact, why else would there be a certificate revocation list and root CA updates for windows periodically...
Same grade turd, just with a bigger price tag and more consultants than you can shake a shitty stick at.
Nostalgia here:
http://coderjournal.com/2008/02/lotus-notes-aol-corporate-wo...
vom
(adblock)
Logic suggests that you should keep as much processing functionality outside something which can't be scaled cheaply or easily and push it to cheaper front end servers.
On this basis, anything which implies more work than collecting and shifting the data over the wire shouldn't really be in the database. Parsing / processing JSON is one of those things that's going to eat CPU/memory.
Fundamentally there's nothing wrong with storing JSON inside the database and processing it externally, but processing it inside the database is a big risk.
I've seen the same thing over the years with XML in the database and more recently people adding CLR code to SQL Server stored procedures.
We've got them on Windows too - .msi files :)
The main advantage of standalone packages is I can choose whatever version of package XYZ I want and push it out rather than being stuck with the package version the repository ships with until either the maintainer updates it or you patch it yourself or argue with some shoddy backport.
Acer Timeline 1810TZ, Acer Timeline 3810TZ, Sony Vaio VPC-J1, Lenovo ThinkPad T61, Dell Precision 390, Dell Precision T3500.
All have irritating bugs, hibernation and sleep problems, random crashes despite being absolutely bog standard Intel hardware across the board supposedly fully supported by Linux. The same kit doesn't exhibit any problems under Windows.
The Timeline series machines under Windows 7 got a whopping 8-10 hours battery life of average load OUT OF THE BOX. Under Ubuntu, even with all the powertop tweaks etc, 3 hours was pushing it.
Current Ubuntu, CentOS and Debian were tried on each machine at the time.
Just can't be bothered any more. Linux (Debian) sits inside a VirtualBox VM on Windows on my T61 where ironically the battery lasts longer when it's in a VM than on bare metal...
I only say this because I've been there, with SQL Server's XML processing stuff, then spent nearly 2 years getting rid of it.
Integration is hell. This is a universal fact.
I'd rather pick a tool which doesn't add integration requirements!
What distinguishes your product is not how it stores or presents the data but what value it derives or extracts from that data.
Most CRUD apps are just a form of lock in which provide no value past storing your stuff in one place. That covers pretty much the entire enterprise software space and most trendy startups these days.
I wouldn't drop down to C ever at application level. There is virtually no need to do this these days without introducing more risks from a security and memory perspective and the inevitable situation of "integration hell". I'd rather throw it in a JVM than drop to C. Then again if I started with a JVM I wouldn't have the problem to start with as it solves both ends of the problem. The CLR is equally applicable here. Go hits the mark too.
From my experience here dealing with a massive 100kloc python project. Python maintenance:
a) Horrible to refactor. I mean really horrible. You don't get everything right the first time and when it comes to fixing that it's hell.
b) no type safety or contracts which is hell when working with other developers.
c) indentation issues which are totally horrible at merge time as it introduces a shit ton more work to do.
Reliability:
a) Some algorithms don't scale the same way as they do in other languages due to the points the article raises. It gets to the point that for something in Java is O(N), it can approach O(N^2) due to all the dict fudging and copying which is not good.
b) It's slow anyway - I mean really slow. If something feels slow, it is slow. PyPy may fix this but (c) below causes an issue as well.
c) Optimisations aren't consistent across python versions (consider how crappy IO was in the first py3k drop).
I wouldn't use Python for a new project now. The only utility I see is quick disposable bits of glue.
Even off the shelf functionality doesnt have the same time/complexity properties as say c#, java or go resulting in a fairly basic algorithm reaching ridiculous time constraints very quickly.
As for CRUD type apps, you are probably right but its the bits that aren't CRUD which add the most value to your product.
I would have thought they'd get the point by now and stop acting like asshats.
Oh and unsurprising SCO mention. This crap has been going on behind the scenes forever.
Watching the corporate battleground is tiresome and makes me drift away from all parties.
[1] I own a windows phone before anyone marks me up as a hater.
With all the distractions and unnecessary meetings to make certain staff feel functional?
This is basically all the disadvantages of working in an office projected on home working.
A management dream!
EDIT: perhaps I'm just cynical and an isolationist :)
Citation: I live on a fairly busy road in London, UK. I just watched 45 cars go past my living room window with only one person in, followed by a double decker bus with about 5 people in it. Hardly efficient!
1) The last generation of computers that people already own (Intel i3/5/7 with Windows 7) is actually pretty damn good and covers most requirements perfectly well. In fact my 5 year old Core 2 Duo 2.0GHz ThinkPad T61 with a Samsung 840 Pro SSD is really fast to the point I have no plans to upgrade any time soon. I see people hanging on to these sorts of PCs now because they are the first generation to work pretty flawlessly, ever. People hang on to stuff that works and I don't blame them for doing that. Businesses do the same and to be honest, with some heel dragging, they're good until Windows 7 EOL in 2020.
2) Windows 8 is just horrible. I've tried it several times at different points of time on different machines ranging from laptop to desktop to touchscreen desktop and the usability has just completely gone out of the window. It doesn't work on a laptop and doesn't work on a desktop in any adequate way. It physically hurts you if you have to use it on a touch screen desktop either through mouse hoop jumping or aching arms. New device paradigms are being pushed but they all feel awkward and a bit Heath Robinson. I do think they got Windows Phone pretty spot on but that experience doesn't scale up to larger devices well.
3) Consumers used to drive a big chunk of sales, but this has been relatively scuppered by other vendor's consumption devices such as tablets and smart phones.
I find the whole idea objectionable at every level and about as innovative as "rate my poo".