Can You Understand How Technology Works Without Understanding Code?

from the yes-and-no dept

There's an interesting debate that's broken out in the tech world, kicked off by tech/coding superstar Jeff Atwood arguing that people shouldn't learn to code. He was mostly responding to an announcement by NYC Mayor Mike Bloomberg that he wanted to learn how to code:
Jeff found this to be a misuse of Bloomberg's skills:
A noble gesture to garner the NYC tech community vote, for sure, but if the mayor of New York City actually needs to sling JavaScript code to do his job, something is deeply, horribly, terribly wrong with politics in the state of New York.
He goes on to explain why he thinks this is a bad idea, even as he's a fan of programming himself. I won't go through his full list of points. You can read them on his site yourself, but it does feel like a lot of his complaint isn't so much about people learning to code, but the idea that people learning to code will mean more people coding for a living. For example, there are these two points: While I understand the points he's raising in both of these cases, it feels like he's taking the "everyone should learn to code" argument way beyond what is generally meant in that discussion. I don't think anyone is saying that people should learn to code for a living. Lots of people learn math, but don't become mathemeticians or even use math in their daily jobs -- but it doesn't mean it hurts to understand math.

In fact, I think that Jeff recognizes this. He notes that a better focus would be:
The general populace (and its political leadership) could probably benefit most of all from a basic understanding of how computers, and the Internet, work. Being able to get around on the Internet is becoming a basic life skill, and we should be worried about fixing that first and most of all, before we start jumping all the way into code.
And that's something I think everyone agrees on. It's just that some folks are suggesting that the way to better understand computers and the internet is if they have some familiarity with code. And thus, I actually think that Jeff and those arguing against him, may actually be in agreement. It's just that some people think that understanding code is a good way to understand computers and the internet.

One of the better responses to Jeff points out that learning to code is different than preparing for a job as a coder. As that post notes:
Learning to program is not the same thing as training for a programming career. Learning new skills opens up new perceptual avenues and cognitive spaces. I'm learning to sew right now, not because the world needs another tailor but because I want to be able to recognize quality in clothing and create pieces that I can't find. Novice coders feel the same way about their digital goods and should be encouraged to continue. Learn to program.
Perhaps where the major difference comes in is that Jeff believes that learning to code is not a stage in understanding computers and the internet, and he compares it to plumbing:
I can also recognize plumbing problems when I see them without any particular training in the area.
However, as esmoov writes in his response, Jeff may have just internalized what he has learned about plumbing:
He may not have had formal training (the professional/personal equivocation again) but he has been trained by an unruly digestive movement, a low water tank and the horrible things 18-22 year-olds do to and around toilets. My dad showed me how to fix a broken chain in the tank. Before I learned that, toilets had three states: working, clogged and broken. After learning to fix the chain, I added a new state to which my toilet-perception could resolve: loose or broken chain. Again, the ability to take in, cut up and categorize the world is a product of the things learned.
Indeed. I don't think that learning the basics of programming solves all internet/technology illiteracy, but it certainly helps people to understand the lay of the land better. It's not necessary, but it can help them better understand the problems and potential solutions when they come up -- even if they don't intend on programming themselves. It can lead them to recognize, for example, how bizarre it might seem to copyright an API or patent software itself. That's a concept that's a little harder to comprehend if you don't understand programming at all. That isn't to say that understanding programming is completely necessary, but it certainly can help in getting people to a point of digital literacy.
Hide this

Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.

Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.

While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.

–The Techdirt Team

Filed Under: code, jeff atwood, mike bloomberg, nyc


Reader Comments

Subscribe: RSS

View by: Time | Thread


  • icon
    :Lobo Santo (profile), 17 May 2012 @ 10:14am

    Byte my Bits!

    Read this on his blog the day it came out...

    The comments there had already (quite vocally) expressed the same opinion I would have expressed:
    "In order to learn to code, one must learn to think in logical, ordered steps and embrace the basic if/then thought architecture (at a minimum.)

    The importance of learning to code isn't code, it's just an allegory for learning to think.
    "

    link to this | view in chronology ]

    • icon
      sehlat (profile), 17 May 2012 @ 10:17am

      Re: Byte my Bits!

      Well said, sir!

      link to this | view in chronology ]

    • icon
      GMacGuffin (profile), 17 May 2012 @ 10:28am

      Re: Byte my Bits!

      That sounds suspiciously like trying to draft a contract ...

      link to this | view in chronology ]

      • icon
        :Lobo Santo (profile), 17 May 2012 @ 10:53am

        Re: Re: Byte my Bits!

        Took business law in college and can say from experience that decoding legalese and reading somebody else's code are rather similar experiences...

        However, time has shown that I despise bureaucracy, and so I code.

        link to this | view in chronology ]

        • icon
          TtfnJohn (profile), 17 May 2012 @ 7:45pm

          Re: Re: Re: Byte my Bits!

          decoding legalese is like trying to read spaghetti coded perl without comment lines :)


          Still I can't see it hurting much if it allows Bloomberg to see the amount of even the best code dedicated to copying data contained in variable "copyRightTroll" into variable techdirtPost before posting the contents of the variable. Just to see how much processor time is dedicated to copying things around that have nothing whatever to do with "piracy".

          I'd be a little more concerned if he was learning that other bastion to spaghetti code called PHP though that would make the NYC web site a whole lot more interesting, I'm sure.

          That one would mean becoming used to the Web and Internet and having to learn about how it works. Not entirely a bad thing for a politician to learn about.

          If that's what Bloomberg wants to do by learning how to sling code around a bit then more power to him. Maybe he'd learn about the true meaning of the word "hacker" which is used by the media to describe what "crackers" do. ;-)

          link to this | view in chronology ]

    • icon
      Mike42 (profile), 17 May 2012 @ 10:54am

      Re: Byte my Bits!

      Came here to say this! Upvote -er- insightful vote for you!

      link to this | view in chronology ]

    • icon
      Josh in CharlotteNC (profile), 17 May 2012 @ 11:51am

      Re: Byte my Bits!

      100% agree. I was thinking the exact same thing reading through the article.

      Writing anything beyond 'Hello world.' requires logical thought process, something which is sorely lacking in politics and many other places in society.

      link to this | view in chronology ]

    • icon
      Pjerky (profile), 17 May 2012 @ 12:20pm

      Re: Byte my Bits!

      I have thought along those for awhile, but could never put them into words. Thank you for that.

      link to this | view in chronology ]

    • identicon
      Anonymous Coward, 17 May 2012 @ 2:07pm

      Re: Byte my Bits!

      Basically, they need to put the logic classes back in College, and maybe even bump them to high school level.

      So many people don't know in the slightest about how to think logically.

      link to this | view in chronology ]

  • icon
    sehlat (profile), 17 May 2012 @ 10:16am

    "Programming Hero"

    My wife uses the term derisively to describe coders who understand how the stuff works and when a problem arises, "Don't worry, dear, I'll take care of it for you." leaving her with no clue as to how the machine works or where the booby-traps are.

    Yes, there is a fair gap between "Learn Perl in 24 hours" and building a professionally-polished system.

    But keeping "the peasants" ignorant is the fastest way known to man to destroy a free society.

    link to this | view in chronology ]

    • identicon
      Mason Wheeler, 17 May 2012 @ 10:56am

      Re: "Programming Hero"

      It's not about "keeping the peasants ignorant." It's about the Dunning-Kruger Effect.

      The barrier to entry for programming is very low. Anyone who has a computer and knows how to use a search engine can easily get started at zero additional (monetary) cost. And if you read a few tutorials, it's easy to produce a very simple program that works right.

      The problem is that once someone's done that, they think they know how to write programs, and they don't. They know just enough to be dangerous, and they don't know enough to do more complicated things well, or to know that they need to.

      Software development is an engineering discipline that doesn't *look* like it needs to be one, and that's the problem. A lot of times you can do something in a very bad (but obvious) way and it looks like it works just fine, and if someone who knows what they're doing tries to explain the problems, the obvious (but wrong) response is to say that they're over-complicating things for no good reason.

      And these obvious-but-wrong issues don't really start to bite you until your code becomes large enough and complex enough that going back and fixing it is a serious hassle, assuming you even know enough to recognize the nature of the problem. And so you end up with a really bad program and no idea how to fix it.

      Jeff Atwood has a good point when he says that people who aren't good at programming shouldn't get jobs as programmers. Easily half the bugs I have to deal with at my job as a programmer (and pretty much 100% of the ugliest half) come from a few specific people who got hired without knowing the engineering parts of programming. A lot of the code looks almost like someone vomited all over a text editor, and I'd really prefer not to have to deal with it, but they give it to me because the people who wrote it don't know how to fix it.

      So yeah, I don't think we need to "keep the peasants ignorant," but to extend the analogy, we need to keep the peasants who are too ignorant to realize that they're still peasants and not skilled craftsmen out of skilled craftsman work until they've learned enough not to write horrible code.

      link to this | view in chronology ]

      • icon
        :Lobo Santo (profile), 17 May 2012 @ 11:08am

        Re: Re: "Programming Hero"

        You've made a very valid point, thank you.

        Half of being a genius is having the ability to recognize and admit when you were wrong--this is why there are so many stupid people in the world, it is the teeming mass of those people who cannot see their own mistakes, or admit to having made a mistake if they see them.

        link to this | view in chronology ]

      • icon
        dwg (profile), 17 May 2012 @ 1:33pm

        Re: Re: "Programming Hero"

        Great point. And for those who don't know: http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect. Powerful stuff.

        link to this | view in chronology ]

        • identicon
          Lawrence D'Oliveiro, 17 May 2012 @ 10:39pm

          Re: Dunning-Kruger Effect

          Interesting. That article makes it clear it’s a cultural thing.

          link to this | view in chronology ]

      • identicon
        Anonymous Coward, 17 May 2012 @ 1:44pm

        Re: Re: "Programming Hero"

        This has nothing to do with professional programming. That's where the problem is. It's like if John Carmack tweeted, "Gonna start playing Basketball on thursday nights! #exercise" and Michael Jordan responded with a blog post detailing how there are too many professional basketball players and that people shouldn't learn to play basketball.

        "We don't want a huge bastion of bad programmers writing terrible code and causing more work for everyone" is a solid sentiment with good backup. "Don't learn to program in your spare time" is not.

        link to this | view in chronology ]

      • identicon
        Anonymous Coward, 17 May 2012 @ 5:30pm

        Re: Re: "Programming Hero"

        code looks almost like someone vomited all over a text editor

        You just described most perl programs, although I usually describe them as looking as though a cat has walked across a keyboard

        link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 10:18am

    Its a noble gesture and might just be an eye opener, but I doubt he'll have the wherewithall to really understand the interworkings of technology underpinning the 'big picture' politicos would like to affect. For that he would need the time to create a time travel machine, go back to high school, break up with his girlfriends and drop sports. Popular people just don't have the time to embrace if they don't have a knack.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 10:20am

    Jesus, can that douche sound more elitist?

    link to this | view in chronology ]

    • identicon
      JEDIDIAH, 17 May 2012 @ 10:51am

      So called elitism.

      My biggest problem child in terms of PC support also can't follow a simple recipe.

      Being able to create precise instructions and being able to precisely follow instructions are both very important to understanding how a computer works.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 17 May 2012 @ 11:37am

        Re: So called elitism.

        There's a difference in having problems with the way your learning, and saying people should fuck off. Jeff basically said "fuck off, don't even try because you're all idiots and only us genius GODS may attempt learning things."

        link to this | view in chronology ]

        • identicon
          Anonymous Coward, 17 May 2012 @ 1:49pm

          Re: Re: So called elitism.

          I think it's just a context thing. The mayor basically said, "Woo I'm learning programming in my spare time!" and Jeff Atwood replied, "WE DON'T NEED MORE PROFESSIONAL PROGRAMMERS!" Hopefully Mr. Atwood has no problem with more people becoming hobbyist tinkers who write some code in their spare time.

          link to this | view in chronology ]

    • icon
      Mike42 (profile), 17 May 2012 @ 10:59am

      Re:

      I agree. Jeff seems to be increasingly obsessed with the health his lawn.

      link to this | view in chronology ]

  • icon
    Michael Long (profile), 17 May 2012 @ 10:26am

    The majority would be much better off learning to communicate in English...

    "However, there is a language you could master that teaches many of the same lessons, appears far more forgiving in terms of syntax, and has immediate broader appeal. The language you can learn is your own."

    If you can't even form a coherent sentence in a proposal, letter, or email, I'm probably not going to give you a chance to prove that you can write a coherent program.

    http://www.randsinrepose.com/archives/2012/05/16/please_learn_to_write.html

    link to this | view in chronology ]

    • identicon
      Rich Kulawiec, 17 May 2012 @ 11:25am

      Re:

      Well-played.

      It often seems to be the case that those who can express their thoughts cogently in prose can also do so in code, and vice versa. Is it then any surprise that obtuse specifications often result in unreadable, nonfunctional, unmaintainable code?

      link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 10:43am

    I plan to learn how to cement bricks together so I can design huge luxury homes.

    Duh.

    link to this | view in chronology ]

    • identicon
      JEDIDIAH, 17 May 2012 @ 10:55am

      Prideful ignorance makes you an easy mark.

      Ever laid tile or run romex?

      It gives you an entirely different perspective on "luxury" home. In fact, you may find a "luxury" home completely intolerable once you've don't your own brick laying.

      Given that a house might be the most significant asset you ever own, it might be worthwhile to do some relevant volunteer work just get a better handle on things.

      link to this | view in chronology ]

      • identicon
        Anonymous Coward, 17 May 2012 @ 11:17am

        Re: Prideful ignorance makes you an easy mark.

        Ever laid tile or run romex?, blah, blah, blah...>/i>

        Whoosh!

        link to this | view in chronology ]

        • identicon
          Anonymous Coward, 17 May 2012 @ 11:24am

          Re: Re: Prideful ignorance makes you an easy mark.

          (Correction:)

          Ever laid tile or run romex?, blah, blah, blah...

          Whoosh!

          By the way, its Romex, not romex.

          link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 11:08am

    Well I think it's good he wants to learn but still coding does not define technology. It defines a small part of it only.

    There are many crafts when it comes to technology. There are people with so much expertise in their field it can amaze anyone. But that person with all their knowledge in their field will be just as amazed when they see a Jedi in a different field.

    Look at the companies that product awesome computer hardware. Then the companies that product hardware to help hardware companies produce their hardware and so on.

    Technology is a term that none of us could ever fully begin to comprehend. There are too many skills required to just get it all.

    link to this | view in chronology ]

  • icon
    Liz (profile), 17 May 2012 @ 11:16am

    I think it's great that Bloomberg wants to learn to code. I'm just wondering if anyone still uses COBOL.

    link to this | view in chronology ]

    • icon
      Robert (profile), 17 May 2012 @ 11:44am

      Re:

      Actually yes. I was discussing this with someone who said they needed a COBOL developer and this discussion was in the summer of 2011. They have legacy systems laying around and also had really old database systems that could not easily be ported to something new.

      I must be too inexperienced with databases to understand how rules can be so complicated that you can't port from an old database to a new one and create rules to perform the same domain (real world) to database mapping.

      Either I'm naive and too green with DB's or the people they had offering their expertise were the non-programming programmers. I have experience with one like that who switched to CS because she did well in a Java course for some business program. She could not understand how to take three single function ("main") programs and merge into a single program. I was dumbfounded at how she managed to get into CS, especially at UWaterloo.

      link to this | view in chronology ]

  • icon
    Robert (profile), 17 May 2012 @ 11:21am

    Maybe not programming but protocols?

    Something that helps bridge the computer/Internet illiteracy gap is understanding protocols.

    I'm not talking about having someone memorize them, but if you want someone to understand why when they plugged in their new printer and it didn't work.. it helps to explain how devices talk (though technically USB should have fired that up to the OS with an interrupt, but I digress).

    My family does not need to learn to code, but I try to get them to understand what is happening. I use analogies that help them remember. Think of the old RS232. Request to send, clear to send, etc.. Easy analogy, you're at a bar, you make initial eye contact and smile, that's request to send, the woman smiles back, that's clear to send.

    In terms of explaining how the Internet works, I've had the privilege of trying to do that on the now non-existent a2f2a.com which was intended to bring artists and fans together. The intent was to open communication between the two parties and help artists understand how technology benefits them and how consumers can understand the value of investing/supporting artists.

    Quite often that barrier of background information existed and explaining things became tiring. Some just don't want to get it, but coding would not have helped.

    What does help is to explain that, the content you are viewing right now was copied from one computer (server likely) to your web browser and is sitting in areas of your memory (or in the case of Windows, being stored and retrieved numerous times to/from your harddrive - cursed virtual memory management).

    So in this case, explaining HTML or database coding wasn't necessary and even if the artist understood SQL they would not understand TCP/IP. So it would benefit more by explaining how computers communicate and how data is exchanged, hence protocols being of high importance.

    link to this | view in chronology ]

  • icon
    Brent Ashley (profile), 17 May 2012 @ 11:30am

    While I don't completely agree with Jeff, I do think there are those who don't apply perspective after learning some programming.

    I have in my time seen far too many people who learn a bit of coding and feel they can now code with the best of them or that their insight has equal value to professionals on technical consultations.

    It's as though they've learned to drywall their own basement and now they feel they're ready to trump your design decisions on a 20-storey condo development.

    link to this | view in chronology ]

    • icon
      kirillian (profile), 17 May 2012 @ 11:56am

      Re:

      Happens with everyone on both sides. Sometimes the people who have been in the business for a long time ALSO forget to take a moment to look at something from a different perspective. Everyone's guilty of it, though, I grant that the younger or newer programmers certainly have a greater tendency to do so. I don't think it's a problem with "new" programmers per se, but a problem with people who are incapable of seeing their own faults or have problems learning.

      link to this | view in chronology ]

  • icon
    drew (profile), 17 May 2012 @ 11:30am

    Valve approach

    Was reading the Valve staff handbook yesterday (don't ask) and one of the things they mention there is that they are a software company, even if you're not a coder, every thing you can learn on the way adds to the value you can bring to the company.
    In an increasingly technological world I think this translates wider as well. Whilst most of us won't be programmers, knowing a bit about how these things work can help us all.

    link to this | view in chronology ]

    • icon
      tqk (profile), 17 May 2012 @ 12:33pm

      Re: Valve approach

      Whilst most of us won't be programmers, knowing a bit about how these things work can help us all.

      Reading through all of this, I've been thinking of the judge in the Oracle vs. Google java kafuffle. The judge was a programmer and still writes code. When the lawyer for Oracle said some dinky little function was obviously stolen, he knew enough to call him on it.

      Knowing enough about something that you can call BS in situations like that is a good thing. It keeps people honest. He may never build the next great thing, but who cares? He can buy it when the specialist comes up with it.

      link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 12:34pm

    The best part of learning programming isn't knowing how to code. Its learning the thought process. Conforming logic (basic or complicated) to the frame of whatever language you're working in. Having politicians learn how to logic would actually rather beneficial, don't you think?

    link to this | view in chronology ]

  • identicon
    Aileron, 17 May 2012 @ 12:35pm

    Scripting and hard coding are not the same thing

    Stating the bleeding obvious but... Scripting and compiled coding are not the same thing and never will be. Everything seems to be called coding these days... But while scripting can make a web page or make calls to the software API, real programming code makes the software and API. Cutting and pasting a few lines of script can be taught to almost anyone... Real effective programming needs long hours of experience and a real programmers brain.

    link to this | view in chronology ]

  • icon
    jsl4980 (profile), 17 May 2012 @ 2:02pm

    You left out his main point!

    I'm disappointed that Jeff's main point was left out of this article. You'd have to copy the whole thing to provide 100% context, but his last few sentences are key:

    Please don't advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to …

    - Research voraciously, and understand how the things around us work at a basic level.
    - Communicate effectively with other human beings.
    These are skills that extend far beyond mere coding and will help you in every aspect of your life.

    I agree with Jeff completely. Learning to code is great but it's rarely the right tool for solving a problem. If your problems can be solved by coding then by all means get to coding, but learning how things work at the most basic levels will help people everywhere better define their problems and will lead to much better results. Jumping straight to coding a solution doesn't necessarily provide the best solutions.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 2:19pm

    Can You Understand How Technology Works Without Understanding Code?

    Can you understand the theory of relativity without understanding the math behind it?

    link to this | view in chronology ]

    • identicon
      proximity1, 19 May 2012 @ 11:08am

      Re: the theory of relativity without understanding the math

      I wonder: What's your answer to your question?

      link to this | view in chronology ]

  • identicon
    Anonymous Coward, 17 May 2012 @ 3:50pm

    In my opinion, it's better to understand the basics of communication (not that everyone has to read Shannon) and networking (not that everyone has to be able to understand network analysis, IP v 6, or how to do the math). Programming is what professional programmers do, and the really skilled ones are the best ones to do the programming - not the cheap folks billg likes to obtain from certain places, train for two weeks, then call them "java programmers". No offense, but in my opinion, they don't really qualify.

    link to this | view in chronology ]

  • icon
    Watchit (profile), 17 May 2012 @ 5:12pm

    I say, if the man wants to learn Java, let him! The worse that could happen is that he learns a new skill, the best being he starts to understand technology and how it fits in the modern world better. Is it so wrong for a man to want to better himself? especially a politician?

    link to this | view in chronology ]

  • identicon
    J, 18 May 2012 @ 6:36am

    Learning to do anything

    Learning any skill involves more than learning the syntax or one aspect of that skill. Think of it this way you learn the alphabet, the same one a skilled writer would use, you can write and combine all the letters, so does this make an author? Certainly not.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 18 May 2012 @ 7:05am

    I started coding when I was eight... I don't know what it would be like to not have a basic understanding of programming. It seems right up there with knowing how to read and write.

    I could see someone not being interested, but actively discouraging people from doing so is rather counter-productive.

    link to this | view in chronology ]

  • icon
    iani (profile), 19 May 2012 @ 5:39am

    Developed nations need "everybody" to programme

    I reckon not knowing how to programme in the 21st century, will be like not knowing how to read and write in the 20th. Just as our ancestors produced cave paintings, then speech and later writing, programming is the next evolution in the human journey and expresses our compulsion to exchange ideas and communicate enabled by cheap, easily accessible and readily available tools. Knowing how to code however is more profound than just another chapter in the history of human communication.

    The act of programming is actually about accessing a raw resource and manipulating that resource to produce something with value added. Comparable to how a furniture maker manipulates wood to make a chair or a seamstress manipulates cotton to manufacture a dress. A programming language is imbued with the fundamental properties required to make derivative goods and programming is the discipline necessary to manipulate those properties. Programming is the new Crude Oil of developed nations.

    link to this | view in chronology ]

  • identicon
    Anonymous Coward, 21 May 2012 @ 11:16am

    More people learning Javascript sounds like a good idea to me. I know if I didn't know how to write my own Greasemonkey scripts, I'd definitely start right away. Who wouldn't want to be able to reshape every website on the internet as they see fit?

    link to this | view in chronology ]

  • identicon
    subway tile, 23 Feb 2013 @ 8:23pm

    subway tile

    Thank you for providing this great post. This collection looks great and it makes any interior look fancy and modern.
    subway tile

    link to this | view in chronology ]


Follow Techdirt
Essential Reading
Techdirt Deals
Report this ad  |  Hide Techdirt ads
Techdirt Insider Discord

The latest chatter on the Techdirt Insider Discord channel...

Loading...
Recent Stories

This site, like most other sites on the web, uses cookies. For more information, see our privacy policy. Got it
Close

Email This

This feature is only available to registered users. Register or sign in to use it.