Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Bonfire Lit
Jul 9, 2008

If you're one of the sinners who caused this please unfriend me now.

nielsm posted:

Also it sets array_capacity to a potentially larger number than the actual allocation.
Bingo! (The parentheses were introduced in a commit intended to "fix gcc warnings", and no of course nobody does reviews here.)

Bonfire Lit fucked around with this message at 10:06 on Apr 18, 2016

Adbot
ADBOT LOVES YOU

Deep Dish Fuckfest
Sep 6, 2006

Advanced
Computer Touching


Toilet Rascal

Athas posted:

I see people using arrays of pointers to fake multidimensional arrays in the most nasty way. It is terrible and bad and probably confuses the compiler horribly. In C++, you can probably use some template magic to define a class that gives a nicer multidimensional array interface.

But then you have to deal with templates.

Arrays of pointers won't confuse the compiler any more than any other pointer dereferences. But if you're dealing with arrays of numbers (or other small types, I guess), a lot of common access patterns are going to do very bad things to your cache if you're doing reads all over the place in memory.

Beef
Jul 26, 2004

Jsor posted:

I'm taking a (grad-level) parallel programming class, and all our graphs are supposed to be done in a way such that the values get larger when they get faster (e.g. y axis is op/ns as opposed to ns/op). This isn't wrong, but it's so weird to me since outside this class I don't think I've ever seen people measure performance that way. The only place I can think of where this is standard is frames per second, and even then for most optimization purposes I see people measure (nano/milli)seconds per frame anyway. I guess processor-level operation speeds are also measured this way (e.g. FLOPS, the name MIPS), but most benchmark systems, and most results I've seen online and in papers, tend to do it the other way.

I don't know why, but it somewhat unreasonably bothers me, even if it's equivalent and I'm sure there are frameworks I'm not aware of that do it this way.

If you want to show parallel scalability, it is typically not a good idea to plot the wallclock times. The time-axis (e.g. Y) gets squashed too much as you add more processors (e.g. X axis), so it becomes hard to distinguish good from bad scaling.


But in practice, it is mostly because of human psychology: people like upward curves.

For instance, parallel speedup is typically an upwards curve (cannonball graph), which in conjunction with a 'dynamic' X/Y ratio can always be made to at least feel good. Everytime you see a speedup curve like the following, be suspicious: (no x=y ideal speedup line, X/Y ratio != 1)




What is actually important, is how close you are to the ideal speedup on the x=y diagonal. Plotting Parallel Efficiency (parallel speedup / number of cores) shows exactly that distance and is the more responsible way to plot the same data. However, it's a downwards curve:




I used speedup plots in my phd thesis, but at least I plot the x=y line and fixed my goddamn X/Y ratio to 1:1.

Beef
Jul 26, 2004

YeOldeButchere posted:

But then you have to deal with templates.

Arrays of pointers won't confuse the compiler any more than any other pointer dereferences. But if you're dealing with arrays of numbers (or other small types, I guess), a lot of common access patterns are going to do very bad things to your cache if you're doing reads all over the place in memory.

Also, there are array notation extentions for C/C++ supported across multiple compilers (such as https://www.cilkplus.org/tutorial-array-notation) that will have your compiler optimize the snot out of your array code. Hacking your own multidimentional arrays and using raw pointers is a good way to prevent your compiler from doing its job.

edit: VVV Well yeah, that's why those array notation extensions exist. It gives the compiler more information about the dataflow. All of those (GCC vector extension, Intel CilkPlus, C++ valarray) either do not allow alias/overlap or make it undefined behavior.

Beef fucked around with this message at 20:18 on Apr 19, 2016

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe

YeOldeButchere posted:

But then you have to deal with templates.

Arrays of pointers won't confuse the compiler any more than any other pointer dereferences. But if you're dealing with arrays of numbers (or other small types, I guess), a lot of common access patterns are going to do very bad things to your cache if you're doing reads all over the place in memory.

The compiler will generally have trouble proving that the sub-arrays in an array of pointers don't alias each other. Depending on what you're doing, that could matter a lot.

bobthecheese
Jun 7, 2006
Although I've never met Martha Stewart, I'll probably never birth her child.
php:
<?
//turn a date into a unix timestamp
//$date comes in as YYYY-MM-DD - with dashes
//returns YYYYMMDD000000
function toUnixTimestamp($date){
    $res=mktime(0,0,0,substr($date,5,2),substr($date,8,2),substr($date,0,4));
    $result=date("Ymd",$res)."000000";
    return $result;
}
?>
I hate everyone.

Deep Dish Fuckfest
Sep 6, 2006

Advanced
Computer Touching


Toilet Rascal

Beef posted:

Also, there are array notation extentions for C/C++ supported across multiple compilers (such as https://www.cilkplus.org/tutorial-array-notation) that will have your compiler optimize the snot out of your array code. Hacking your own multidimentional arrays and using raw pointers is a good way to prevent your compiler from doing its job.

edit: VVV Well yeah, that's why those array notation extensions exist. It gives the compiler more information about the dataflow. All of those (GCC vector extension, Intel CilkPlus, C++ valarray) either do not allow alias/overlap or make it undefined behavior.

I didn't know about those; every time I've used SIMD stuff was through opaque datatypes and functions which I guess eventually boiled down to some form of hand-crafted inline assembly or something. I'd still assume that the compiler knows about the semantics of those SIMD instructions and will be able to do more than just treat them like a black box, though, even without language extensions enabled.

rjmccall posted:

The compiler will generally have trouble proving that the sub-arrays in an array of pointers don't alias each other. Depending on what you're doing, that could matter a lot.

Ah, that is true. That will definitely constraint the compiler's ability to re-order stuff around, for one, and run-time instruction re-ordering probably doesn't have nearly a high-level enough view on any non-trivial function to approach what the compiler could do with a contiguous piece of memory.

Kal
Jun 3, 2007

I came across this while browsing through the terrible codebase of the terrible iOS app I have to work with



gently caress

Kallikrates
Jul 7, 2002
Pro Lurker
Ah, the ubiquitous NSDate+Formatting file in every iOS App ever. And the other horrors. At least it will be easy to search and replace that code to fix the locale issue.

Kallikrates fucked around with this message at 15:16 on Apr 20, 2016

Klades
Sep 8, 2011

Hey, at least their needlessly copy-pasted code also has copy-pasted comments to go with it.
Documentation! :pseudo:

Deep Dish Fuckfest
Sep 6, 2006

Advanced
Computer Touching


Toilet Rascal
So how many more times is that copy pasted after the image cuts off? Not that mashing ctrl-v 6 times isn't already enough to qualify as an horror, but I'm curious.

CPColin
Sep 9, 2003

Big ol' smile.
I wonder if that person had any idea why that was suddenly necessary.

Deep Dish Fuckfest
Sep 6, 2006

Advanced
Computer Touching


Toilet Rascal
At least they're being honest I guess?

Dessert Rose
May 17, 2004

awoken in control of a lucid deep dream...
It doesn't look like the linked stackoverflow came to any conclusion about the problem either.

VikingofRock
Aug 24, 2008




CPColin posted:

I wonder if that person had any idea why that was suddenly necessary.

I'm not sure I understand why that was suddenly necessary. Is it a locale thing?

CPColin
Sep 9, 2003

Big ol' smile.
Me today: "Hmm. What's this unit test here that doesn't seem to run ever? Oh, it fails! Whew, fixing it was a simple change. Now what other code was calling what this test was testing? Oh, nothing. This test tests code that only the test itself calls. Great." :suicide:

Deep Dish Fuckfest
Sep 6, 2006

Advanced
Computer Touching


Toilet Rascal
The perils of test driven development.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane
I'm sure I'm not the first one to say this, so I doubt it will be interesting in any way, but: WordPress is the ur-coding horror. If you want to see what software looks like when it's cobbled together by people who have only the very faintest clue about how software should be engineered, this is what you get. It makes everything non-trivial an exercise in utter frustration, all in order to make the most basic of updates slightly easier (assuming you wouldn't benefit from having an actual structure to your data for any reason). That's before we get into the frequent vulnerabilities and the inexplicable difficulties in hardening it to any degree.

Why must it have such strong name recognition that all my clients request it? I'm going to start applying a surcharge for dealing with this nonsense.

ErIog
Jul 11, 2001

:nsacloud:

PT6A posted:

That's before we get into the frequent vulnerabilities and the inexplicable difficulties in hardening it to any degree.

Why must it have such strong name recognition that all my clients request it? I'm going to start applying a surcharge for dealing with this nonsense.

Everything about it is designed such that first 15 minutes of using it are smooth to new users, but this ends up making it completely awful for anyone who's used it for longer. The fact that themes are just php files that get uploaded through the admin panel as zip files and then executed by the web server is nuts. I wonder how many WP installs have been owned by malicious plugins and themes even outside of all the ways it can be exploited from the outside.

TheresaJayne
Jul 1, 2011
Ok this just appeared on SO:

http://stackoverflow.com/questions/36787613/due-to-500-server-error-404-page-not-found

What is laughable is that it sounds like someone on the Dev team for VISA is asking normal People to respond and help them solve what is a serious issue with a secure financial website.

iron buns
Jan 12, 2016

TheresaJayne posted:

Ok this just appeared on SO:

http://stackoverflow.com/questions/36787613/due-to-500-server-error-404-page-not-found

What is laughable is that it sounds like someone on the Dev team for VISA is asking normal People to respond and help them solve what is a serious issue with a secure financial website.

That looks more like a middleman service for getting Indian visas in Bangladesh. Nothing to do with VISA or financial services.

TheresaJayne
Jul 1, 2011

iron buns posted:

That looks more like a middleman service for getting Indian visas in Bangladesh. Nothing to do with VISA or financial services.

Well that is then a government office so again the devs shouldnt be just posting their problems on SO

Soricidus
Oct 21, 2010
freedom-hating statist shill

TheresaJayne posted:

Well that is then a government office so again the devs shouldnt be just posting their problems on SO

middleman service. as in, nothign to do with the government, they just charge you money to file the forms for you or w/e

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

ErIog posted:

Everything about it is designed such that first 15 minutes of using it are smooth to new users, but this ends up making it completely awful for anyone who's used it for longer. The fact that themes are just php files that get uploaded through the admin panel as zip files and then executed by the web server is nuts. I wonder how many WP installs have been owned by malicious plugins and themes even outside of all the ways it can be exploited from the outside.
You have no idea. I've used WordPress professionally and the entire ecosystem is a hellhole. The WP API is just global functions running under a full-access SQL user. There's no templating system or plugin wrappers or the like, everything's just full-blown PHP included straight into the server. So imagine every plugin/theme being written by someone who just looked up their first PHP/mySQL tutorial full of injections and code execution.

This is probably why it's so popular. Users see a really friendly CMS interface with tons of plugins and themes because there's no barrier to entry. Devs instead have to fight poorly cobbled-together code that probably only worked on the author's personal computer and full of comments like "} // DO NOT REMOVE", just to get it to work and fit client specifications. Paid content just means it's obfuscated and DRMed to hell, with barely any support provided. And don't trust anything "free", that's code for "loaded with adware and exploits" and the only protection is a handful of plugins that run regexps to try and detect them.

Hughlander
May 11, 2005

CPColin posted:

Me today: "Hmm. What's this unit test here that doesn't seem to run ever? Oh, it fails! Whew, fixing it was a simple change. Now what other code was calling what this test was testing? Oh, nothing. This test tests code that only the test itself calls. Great." :suicide:

I really wish the jet brains unused code analysis tool would flag things only invoked from tests. I'm sure there's some refactored that have removed valid code paths in the code at work but not the tests.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



I told a guy who does Wordpress sites for people on the side about how the Panama Papers were exfiltrated through a vulnerable WP plugin and he thought that was great because it would probably lead to more side jobs fixing things :eng99:

canis minor
May 4, 2011

Recently one of our WP "devs" requested that .htaccess needs to have 777 because one Wordpress plugin modifies it

:allears:

edit: going through task list - one of the devs was asking about forms in emails...

canis minor fucked around with this message at 14:45 on Apr 22, 2016

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

ErIog posted:

Everything about it is designed such that first 15 minutes of using it are smooth to new users, but this ends up making it completely awful for anyone who's used it for longer. The fact that themes are just php files that get uploaded through the admin panel as zip files and then executed by the web server is nuts. I wonder how many WP installs have been owned by malicious plugins and themes even outside of all the ways it can be exploited from the outside.

Yeah, there's a good reason why I'm building my own theme from scratch and writing all my own plugins as needed for this project. It's actually going faster than previous projects I've done where I've had to try and unfuck other people's horrible themes and plugins.

But, no, everyone wants WordPress, and woe betide you if you offer an alternative that's better and more secure, because inevitably they will phone you and bitch about how they can't do X, Y or Z that some guy told them they could do with WordPress. I'm starting to think that the quality of all things, tech-related or completely unrelated, is going down because consumers are actively expressing a preference for lower quality goods and services.

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

PT6A posted:

Yeah, there's a good reason why I'm building my own theme from scratch and writing all my own plugins as needed for this project. It's actually going faster than previous projects I've done where I've had to try and unfuck other people's horrible themes and plugins.

But, no, everyone wants WordPress, and woe betide you if you offer an alternative that's better and more secure, because inevitably they will phone you and bitch about how they can't do X, Y or Z that some guy told them they could do with WordPress. I'm starting to think that the quality of all things, tech-related or completely unrelated, is going down because consumers are actively expressing a preference for lower quality goods and services.

To be fair, to them it's not lower quality. Quality to them means "can I do X fast, and if I can't, can I get it done cheaply and quickly." Software is a magic black box to many folks, and if you say "PHP exploits, injection attacks, ..." you might as well be talking about dark moon unicorns. They don't give a poo poo: theyneed the marketing thing up by Tuesday or the boss is going to yell at them.

That said, I'm sorry you have to work with WordPress. :smith:

ErIog
Jul 11, 2001

:nsacloud:
Reposting from elsewhere since it's relevant. I was forced into a WordPress security 2 day course at work given by an outside vendor you have heard of. I tried to edit out all the fluff, and then I realized it was all insane so I only deleted like 3 lines. It was a magical eye-opening experience.

erIog posted:

Today's highlights:
- Some of you may be using managed hosting where software installation is done for you, and today I'm going to show you how that's done.

- Walked the class through setting up a site bookmark in Filezilla. Instructed to save the password in Filezilla. No mention of the fact that Filezilla saves passwords in plaintext.

- Ports are like magic doors into your computer. No discussion of how ports map to running services.

- IPv6 is gonna be cool because then your refrigerator can have an IP.

- Antivirus can detect viruses in files, but it can't detect viruses in IP packets because the data is all chopped up. So the computer must assemble the packets 'somewhere else' then test the file with antivirus to know if it's a virus. This is what firewalls do.

- Placing your web server in a DMZ in your router settings will protect your LAN. No mention of server-side firewalls to protect a web server you've put in a DMZ.

- Simply running your database software on a separate server can help prevent it from being hacked. No further explanation given about configuration in regard to this.

- You can admin a Linux server almost exactly the same way as you would a Windows server if you install a desktop environment like Gnome.

- Called the SSH fingerprint pop-up in the terminal emulator a "strange screen," and instructed users to just hit accept to close it with no explanation as to what it was.

- SELinux Status: disabled (It was not instructed that we do this, but I checked it on the class test machine during the ample downtime I had available.)

- You can use FTP to upload files to your server and that's totally no problem, but if you "care about security" then you could also use SSH if you "felt like it."

- "ls -l" is how you check permissions on Linux, this is the user column, 777 means anybody can do anything. This single sentence was the entirety of the explanation of Linux permissions. The line in the syllabus stating that this would be explained ended up being longer than the actual explanation given by the teacher.

- Called TLS 'TSL' and mentioned it as an example of an encryption algorithm.

- When you install WordPress it's handy to unzip the file on your local machine and then upload the folder to your server.

- If you want to have multiple WordPress installs use the same database then you need to change the "wp_" table prefix.

- Changing the db table prefix from "wp_" to something else will make it harder for hackers to know if your server is running WordPress.

- Copy paste these keys from the class share folder into your WordPress config. No explanation given as to what these keys do or how you would go about generating your own keys.

- Innumerable instances of the class being instructed to use demonstration configuration settings with no mention of a caveat or explanation of what you should actually do in the real world.

--Day 2--

- The WordPress theme we were instructed to install is too big to upload through the WordPress admin page. It's cool, though, he changed the PHP setting so we could do it.

- Setting your log files to 606 permissions is more secure than setting them to 666 permissions. I'm sorry I ever wished for him to give a more detailed explanation of permissions.

- Be careful with write permissions on executable files. It's important that Apache have write permissions to your CGI scripts.

- A person in the class called the teacher out on what we were doing being fake when he instructed all of us to echo a line to what he said was an Apache config file using the ">" operator on the class web server.

- WordPress has a history of being hacked so the WordPress developers are really careful now.

- If you have to use old versions of WordPress due to dependency issues you can fend off some of the security issues by deleting the default WordPress admin account.

- It can be good for security to create honeypots like fake admin accounts with no privileges to throw hackers off the scent.

- Asked the professor about 606 permissions during the break:
"Well this is just a sample for people to work from."
Slide in question describes the 606 permissions as "Preferred" with no caveats.

- Tried to demonstrate password strength to us by using a brute force tool on an encrypted zip file. Gave up when he couldn't figure out how to create an encrypted zip to use the tool on.

- Gave an insane lecture on public/private key encryption with a whiteboard diagram. I have notes on this, but I don't have the energy to pick through it. It wasn't wholly inaccurate, just not a very useful description of how auth or crypto works.

- TSL stands for Transfer Secure Layer. His inability to remember the TLS acronym persists from yesterday.

- If you use a key file with SSH then there's no need for a password.

- If you use HTTPS then your communications will be completely secure, but it takes more work for the web server to do it. It's best to limit HTTPS only to important parts of your site.

- You can know if you can trust a site by its TLD. For example, .to is bad because anyone can register one. .com is much better.

- Had us portscan the server using nmap. When talking about the open MySQL port he mentioned you could customize the port to obfuscate it from hackers.

- Had us use WireShark in an attempt to demonstrate passwords being sent in the clear. Couldn't find his own password despite it being clearly labeled as a POST request to wp-login.php from his IP to the server IP. He wasted 10 minutes futzing with it before giving up.

- Took pity on the professor during the break and told him which entry his password was in. I've used WireShark exactly twice in my life, today and when diagnosing a weird switch problem at my job 5 years ago. The class machines weren't even in my native language.

- Talked a little bit about how important HTTPS is. Has not explained anything about certs or how to go about using HTTPS on a server.

- Walked back his recommendation of changing the db table prefix because a hacker can just use WireShark to figure out if you're using WordPress.

ErIog fucked around with this message at 15:19 on Apr 22, 2016

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Lumpy posted:

That said, I'm sorry you have to work with WordPress. :smith:

It's partially my own fault. I've been bitten so many times by the "what do you mean I can't do [exact thing WordPress does] with no additional work from you, despite the fact I never asked you about this in the first place?" that now I just go with WordPress if it gets mentioned during the initial consultation, and hating my life until the project can be handed off to some cheaper WordPress "guru" which is why they want WordPress in the first place anyway.

Soricidus
Oct 21, 2010
freedom-hating statist shill

ErIog posted:

Reposting from elsewhere since it's relevant. I was forced into a WordPress security 2 day course at work given by an outside vendor you have heard of. I tried to edit out all the fluff, and then I realized it was all insane so I only deleted like 3 lines. It was a magical eye-opening experience.

lol that's amazing

Evil_Greven
Feb 20, 2007

Whadda I got to,
whadda I got to do
to wake ya up?

To shake ya up,
to break the structure up!?

ErIog posted:

Reposting from elsewhere since it's relevant. I was forced into a WordPress security 2 day course at work given by an outside vendor you have heard of. I tried to edit out all the fluff, and then I realized it was all insane so I only deleted like 3 lines. It was a magical eye-opening experience.
:catstare:
That's... wow.

DICTATOR OF FUNK
Nov 6, 2007

aaaaaw yeeeeeah

ErIog posted:

Reposting from elsewhere since it's relevant. I was forced into a WordPress security 2 day course at work given by an outside vendor you have heard of. I tried to edit out all the fluff, and then I realized it was all insane so I only deleted like 3 lines. It was a magical eye-opening experience.
This is hilarious, and reminds me of a Magento conference I attended once where a guy spent drat near the entire presentation fellating modman, which is basically the worst idea ever for a any framework-based application.

Hell, the second sentence of the description on Github is completely false :v:

Mush Man
Jun 25, 2010

Nintendo announces Frolf means Frog Golf.
Oven Wrangler

PT6A posted:

But, no, everyone wants WordPress, and woe betide you if you offer an alternative that's better and more secure

I hate to be the clueless idiot, but part of my job is working with WordPress and I don't know what the better or more secure alternatives are. The only other CMS I've gone near was someone else's hacked Joomla site. A lot of the appeal of WordPress is that our clients are don't need to call us every time they want to put up new content because they can do it easily themselves...

While I'm here I guess, how should I manage WordPress? (Too much of this stuff is inside baseball so it's hard to find good information. :()

ErIog
Jul 11, 2001

:nsacloud:

Mush Man posted:

While I'm here I guess, how should I manage WordPress? (Too much of this stuff is inside baseball so it's hard to find good information. :()

A lot of the ways to manage Wordpress sensibly involve shutting off features like plugin management from the admin panel. If you think you're good enough at explaining these issues to the customer then that's the way to go. However, a lot of people are put in the very bad position of getting bitched out when they try to do this and so end up deploying sites they know are vulnerable just to please the client.

Just apply basic sys admin security knowledge to Wordpress. It's not rocket science. However, WordPress itself will fight you every step of the way.

Carbon dioxide
Oct 9, 2012

Mush Man posted:

I hate to be the clueless idiot, but part of my job is working with WordPress and I don't know what the better or more secure alternatives are. The only other CMS I've gone near was someone else's hacked Joomla site. A lot of the appeal of WordPress is that our clients are don't need to call us every time they want to put up new content because they can do it easily themselves...

While I'm here I guess, how should I manage WordPress? (Too much of this stuff is inside baseball so it's hard to find good information. :()

The answer, for corporate websites at least, is to use a CMS that isn't php-based. The disadvantage is that you need at least a VPS for that, because sadly regular stock web hostings won't run anything but php.

At my job we use OneHippo which is Java based and completely customizable. I personally think it's not a bad CMS. It differs from the most common ones by being component-based instead of page based. Basically, you define pages by putting reusable components together (header, footer, textbox, form, ...) , which may or may not have the same text/pictures/whatever in them. It gets quite powerful, especially if you're willing to dive into the code.

I don't know much about security, and of course it depends on how much you customize the code, but it's gotta be better than wordpress because php is inherently broken.

jiggerypokery
Feb 1, 2012

...But I could hardly wait six months with a red hot jape like that under me belt.

Carbon dioxide posted:

php is inherently broken.

Sure buddy. Whatever you say

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane

Carbon dioxide posted:

The answer, for corporate websites at least, is to use a CMS that isn't php-based. The disadvantage is that you need at least a VPS for that, because sadly regular stock web hostings won't run anything but php.

Not true; I have a shared hosting account that runs Python, which allows to me to use Django. It's obviously much more client-specific to set up since it's a framework and not a full CMS, but I usually get a far better result because I can actually give structure to the data that needs to be added/edited on a regular basis, so the people who edit it don't also have to worry about formatting it. If you're going to hire a web developer anyway, why not let them do all the heavy lifting?

Your point is well-taken in general, though, since Django hosting is unfortunately rare and "we want to use our current web hosting" is a common reason, again, I get pushed into running WordPress for a lot of clients.

Adbot
ADBOT LOVES YOU

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Carbon dioxide posted:

I don't know much about security... php is inherently broken.

"I don't know what I'm talking about. Here is an obviously stupid generalization."

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply