• Fristy (unregistered)

    I wonder why they didn't have the equipment on a UPS.

  • Wiggin (unregistered)

    So the AC units ate all the power to the servers and such? Nice implementation, there.

  • stupid old me (unregistered)

    To fix the problem they should open an office in the opposite hemisphere so that when it's summer in office #1, it's winter in office #2. Just have each office work half the year.

    Or better yet, relocate the office to an arctic region!

    Problem solved!

  • KattMan (cs)

    The problem isn't that the AC units drew all the power so the switches would not work. The problem is that when the AC units kicked in on the same circuit, they would generate serious line noise as evidenced by the buzz heard even on the phone call.

    With this information, simply switching to a separate circuit might not solve the problem, you may need to add shielding around your lines and server closet also.

  • Patrick (unregistered)

    I call bullshit.

  • Marcel (unregistered)

    "Credit Report access is installed and tested. NOTE that this circuit only works when the air conditioning at the client's site is off. When the AC is on, the circuit is dead and credit reports will not work."

    If only my boss would take such crap from me.

    captcha: tastey

  • Dave (unregistered)

    It's also a good thing that the client's site wasn't someplace where it's hot year-round, like Houston. They wouldn't use the AC as much during the winter, but the credit reports system would still go offline periodically.

  • Arancaytar (cs)
    Maybe I'm alone, but I'm in awe of the fact that my computer doesn't just randomly catch fire and explode

    I feel with you, I used to use Windows too.

  • Carnildo (cs) in reply to Patrick
    Patrick:
    I call bullshit.

    It's quite believable. When I worked in a mechanical testing lab, we'd have to suspend testing every time the EDM cutter in the shop was turned on: that thing put out so much electronic noise that it would swamp the signal from our test sensors.

  • Jack (unregistered)

    I never made it to the topic article -- that first paragraph was enough "WTF" for me.

    I understand the author's sentiment, but that just might be one of the most confused explanations of computing architecture I've ever heard.

    I recommend Chuck Petzold's CORE for a good introduction to digital computer architecture for programmers.

  • Disgruntled Dutchie (unregistered) in reply to Jack
    Jack:
    I never made it to the topic article -- that first paragraph was enough "WTF" for me.

    I understand the author's sentiment, but that just might be one of the most confused explanations of computing architecture I've ever heard.

    I recommend Chuck Petzold's CORE for a good introduction to digital computer architecture for programmers.

    I like it actually, it gives a feeling of "I can believe it works, but I don't know the right terms or technical details". Kinda like how I think about everything. :D

  • FredSaw (cs) in reply to Patrick
    Patrick:
    I call bullshit.
    Does it come running?
  • Yuck.... (unregistered) in reply to Jack

    Petzold.... yuck. I struggled with his Introduction to programming in windows in C at uni. Sure the guy is a genious, and it reflects in his code. But for someone just starting out it was a little too complicated for most people I would say.

    If his CORE book is similar I wouldnt want to read it

  • Top Cod3r (unregistered)

    At my company, we keep the servers in the main room with all the employees. It saves alot of money because the employees and the computer equipment can share the same air conditioning unit, and in the winter the heat from the servers can offset your heating bills. This is what being a "green" company is all about.

    Another reason why we like it better this way is when you need to reboot the server you can walk right over to it and flip the switch. No need to ask the server admin.

  • Daniel Beardsmore (cs) in reply to Disgruntled Dutchie
    Disgruntled Dutchie:
    Jack:
    I never made it to the topic article -- that first paragraph was enough "WTF" for me ...
    I like it actually, it gives a feeling of "I can believe it works, but I don't know the right terms or technical details". Kinda like how I think about everything. :D

    I don't know whether Jake was being sarcastic or not, but have any of you watched Spellbinder, specifically the episode where Paul records himself on his camcorder pretending to be trapped inside of it and leaves it playing back on the LCD to distract the bad guys?

    Those of us who grew up with computers take the technology for granted but even the real programmers here will understand Jake's sentiment. Even trying to contemplate all the goings on of the OS alone is painful; it's like the realisation of every possible error that might occur in your program. "Wait! What if the file isn't found? Or it doesn't have read permissions? Or it's truncated? Or the header is corrupt? Or there are subtle mistakes when it got saved that will lead to buffer overruns ..." I remember using Paint Shop Pro Browser in Windows 3.11, and every now and then, one of the images in a given folder wouldn't open, and the import filter would explode and PSP Browser would crash and burn. So I'd remove the image and start the thumbnailing over. Then another image wouldn't open and the import filter would crash again, and the yet-unsaved thumbnails file would be lost. It could take like 40 minutes to thumbnail a folder of images in those days. Whoever wrote the WPG import filter wasn't paying attention to what might go wrong.

    It takes little imagination to apply this to a whole computer. The CPU alone has how many thousands of microscopic electronic components etched onto it. Then you have at least five million memory locations to access at a speed of hundreds of millions of times per second. Hard drives are more of an impossibility than the flight of a bumble bee -- trying to pick and place minuscule magnetisations at over 7000 RPM. Look at the motherboard of any computer and trying to imagine the sheer volume of electrical activity that is all perfectly synchronised and gracefully unaware of voltage fluctuations, even ones that make the lights flicker, like switching on a vacuum cleaner.

    And when you think that you can leave all this lot running for months, years on end without a single hiccup, you have to give credit and be in awe that it works.

    Jake is right. It really is a wonder that it ever works at all.

  • Quinnum (cs) in reply to Daniel Beardsmore
    Daniel Beardsmore:

    Jake is right. It really is a wonder that it ever works at all.

    I agree wholeheartedly. When you realise what actually goes into a computer it's quite amazing.

    Unfortunately most programmers these days have no concept of how the hardware works, and think a java vm is 'low level'.

  • Crazy old computer user (unregistered) in reply to Daniel Beardsmore
    Daniel Beardsmore:
    Then you have at least five million memory locations to access at a speed of hundreds of millions of times per second.
    No I don't. I have a 286 with 640 KB of RAM designed to run at 8 MHz, turboed to 12 MHz.

    Captcha: (just kidding) Didn't expect that now did ya?

  • toweri (unregistered) in reply to Quinnum
    Quinnum:
    Unfortunately most programmers these days have no concept of how the hardware works, and think a java vm is 'low level'.

    They should be subjected to a task along the lines "Here's a microcontroller. Here's a box of miscellaneous active and passive components. Here's a CD with their data sheets. Make me a {desk clock | servo controller | <anything not too complicated>}."

    ...and if you're being nice, you could even let them use C instead of assembler only ;)

    And yes, I realize that not every programmer needs the mad leet skillz of an embedded systems programmer, but teaching a little humility and perspective is never a bad thing, yes?

  • wizardly (unregistered) in reply to Quinnum
    Quinnum:
    Daniel Beardsmore:

    Jake is right. It really is a wonder that it ever works at all.

    I agree wholeheartedly. When you realise what actually goes into a computer it's quite amazing.

    Unfortunately most programmers these days have no concept of how the hardware works, and think a java vm is 'low level'.

    As a tech-wizard first class, I can tell you that what you learn in your classes about computer hardware and how it operates is all a lie, to keep the magic hidden from the uninitiated.

    All the hardware functionality is done with smoke and mirrors - if you don't believe me, just let the smoke out of your computer and watch it stop working...

  • Grant D. Noir (unregistered) in reply to toweri
    toweri:
    Quinnum:
    Unfortunately most programmers these days have no concept of how the hardware works, and think a java vm is 'low level'.

    They should be subjected to a task along the lines "Here's a microcontroller. Here's a box of miscellaneous active and passive components. Here's a CD with their data sheets. Make me a {desk clock | servo controller | <anything not too complicated>}."

    ...and if you're being nice, you could even let them use C instead of assembler only ;)

    And yes, I realize that not every programmer needs the mad leet skillz of an embedded systems programmer, but teaching a little humility and perspective is never a bad thing, yes?

    As an embedded software guys, I am pretty squicked that someone (in a thread a few days back), can call SQL "low-level". To me, SQL is about as high-level as it gets (i.e. Application-layer).

  • olm (unregistered) in reply to toweri
    toweri:
    They should be subjected to a task along the lines "Here's a microcontroller. Here's a box of miscellaneous active and passive components. Here's a CD with their data sheets. Make me a {desk clock | servo controller | <anything not too complicated>}."

    ...and if you're being nice, you could even let them use C instead of assembler only ;)

    Exactly. That was the main part of the content of our 4th semester at the university. (Out of 10 semesters from newbie through BS to MS).

    We build a LEGO Mindstorms replacement using a Motorola 68k and some RAM/ROM/IO etc. And made a pretty nice multitasking OS along with it ;-)

    And that was way back in 2004! captcha: craaazy (Kids these days - right? ;-)

  • Wyle_E (unregistered) in reply to Grant D. Noir
    Grant D. Noir:
    As an embedded software guys, I am pretty squicked that someone (in a thread a few days back), can call SQL "low-level". To me, SQL is about as high-level as it gets (i.e. Application-layer).

    I once had a boss who was astounded that I could read a byte from eight DIP switches. This was when the first small-business systems were being built around processors like the Z-80 and the 6502, but his background was in Burroughs mainframes and COBOL.

  • Cloak (unregistered) in reply to Top Cod3r
    Top Cod3r:
    At my company, we keep the servers in the main room with all the employees. It saves alot of money because the employees and the computer equipment can share the same air conditioning unit, and in the winter the heat from the servers can offset your heating bills. This is what being a "green" company is all about.

    Another reason why we like it better this way is when you need to reboot the server you can walk right over to it and flip the switch. No need to ask the server admin.

    Wonderful, but this only works with Windoze. You only need to restart UNIX servers once a year and Novell servers once in 10 years.

  • Jerome (unregistered) in reply to Crazy old computer user
    Crazy old computer user:
    Daniel Beardsmore:
    Then you have at least five million memory locations to access at a speed of hundreds of millions of times per second.
    No I don't. I have a 286 with 640 KB of RAM designed to run at 8 MHz, turboed to 12 MHz.

    Then you have exactly 5,120,000 bits of memory, which sounds to me pretty much like "at least five million memory locations".

  • Paul (unregistered) in reply to Jerome
    Jerome:
    Then you have exactly 5,120,000 bits of memory, which sounds to me pretty much like "at least five million memory locations".

    Actually he has 5,242,880 bits of memory, but he's not accessing them at a speed of hundreds of millions of times per second. Probably only a million or two times a second with a 286 at 12MHz..

    (Was that in the days before SIMs? My first 'IBM' PC had real 'chips' (12x2 DIPs IIRC) in sockets in the motherboard, I think that was a 286 as well - Expanded Memory.. Yumm..).

    Still, just step back and think about it. Even accessing dynamic memory (a negligible bit of charge sitting in an almost non-existent capacitor) a million times a second is still amazing given that it works perfectly pretty much every time!

  • James (unregistered) in reply to Fristy
    Fristy:
    I wonder why they didn't have the equipment on a UPS.
    exactly, no excuses
  • vertagano (cs) in reply to Daniel Beardsmore
    Daniel Beardsmore:
    I don't know whether Jake was being sarcastic or not, but have any of you watched Spellbinder, specifically the episode where Paul records himself on his camcorder pretending to be trapped inside of it and leaves it playing back on the LCD to distract the bad guys?
    As an American, I wasn't part of the original Spellbinder era, but I discovered it early this year and have watched the first season (of the two seasons), and I must say, it's much better television than most of what I had access to as a child. Secondly, someone needs to develop a Power Suit complete with Power Stones so that I can start blasting things.
  • grep (unregistered) in reply to Top Cod3r
    Top Cod3r:
    At my company, we keep the servers in the main room with all the employees. It saves alot of money because the employees and the computer equipment can share the same air conditioning unit, and in the winter the heat from the servers can offset your heating bills. This is what being a "green" company is all about.

    Another reason why we like it better this way is when you need to reboot the server you can walk right over to it and flip the switch. No need to ask the server admin.

    Troll.

  • Mcoder (cs) in reply to Top Cod3r
    Top Cod3r:
    At my company, we keep the servers in the main room with all the employees. It saves alot of money because the employees and the computer equipment can share the same air conditioning unit, and in the winter the heat from the servers can offset your heating bills. This is what being a "green" company is all about.

    Another reason why we like it better this way is when you need to reboot the server you can walk right over to it and flip the switch. No need to ask the server admin.

    Even better is how any worker can acess the HR database server :)

    It must be nice to upgrade one's salary.

  • Chris Harmon (unregistered)

    I used to work for a power plant on their process control systems, which involved quite a large amount of networking - some of it serial RS232, others RS422, and for shorter distances some Ethernet communications. Their control systems were networked into a large process data historian (that also was used for controlling the units that generate the power) and all of that interfacing was done through Ethernet.

    The issue was that the network switches used to connect the control systems to the data historian cluster sat in a closet in the Operations area, which happened to be where they store their equivalent walkie-talkies (I know they were much nicer than what you and I would call walkie-talkies but you get the point).

    The problem was that there were only 2 power outlets in the closet, and sometimes something else would be plugged in in addition to single network switch. When they needed to charge up those walkie-talkies, something would get unplugged... sometimes it was the network switch :)

    It took awhile to figure out that this was the problem, but it WAS resolved properly - electrical wired over a completely separate set of outlets for critical use.

    The real irony is that out of all the places I have worked at, the biggest issue involving power for computer systems BY AND FAR has been at power plants or power company corporate offices. Mind you, over half of my work experience has involved working with power companies but still :)

  • el jaybird (unregistered) in reply to toweri
    toweri:
    They should be subjected to a task along the lines "Here's a microcontroller. Here's a box of miscellaneous active and passive components. Here's a CD with their data sheets. Make me a {desk clock | servo controller | <anything not too complicated>}."

    That sounds like fun. I actually made a desk clock out of discrete TTL logic chips in my second year of engineering. A friend and I were bored and thought it would be fun. We used 7-segment LED's, 7447 decoders, 74163 counters, 7400-series logic (NAND, OR, etc), on a big breadboard and what turned into a rat's nest of wires. Our first effort used a 555 as an oscillator. We didn't realize how much current that thing sucked until we turned it on and it drained the 4 AA batteries in about 45 minutes. Our next attempt was to clock down a pulse derived from 60 Hz line current (again using discrete counter IC's)...

    By 4th year we had learned how to properly program HC11 microcontrollers in C and made remote controlled robots for our fourth-year projects.

  • akatherder (cs)

    The CS curriculum at my school included Digitals I and Digitals II which was playing around with wires and microchips. We also had a compilers course which blew my mind.

    I'm happy with my very VERY high level .Net and php.

  • Henry (unregistered) in reply to Wyle_E
    Wyle_E:
    Grant D. Noir:
    As an embedded software guys, I am pretty squicked that someone (in a thread a few days back), can call SQL "low-level". To me, SQL is about as high-level as it gets (i.e. Application-layer).

    I once had a boss who was astounded that I could read a byte from eight DIP switches. This was when the first small-business systems were being built around processors like the Z-80 and the 6502, but his background was in Burroughs mainframes and COBOL.

    LOL. I remember keying a bootstrap loader into front panel switches just to get the department PDP-11 to boot.

  • Random832 (cs) in reply to Jerome
    Jerome:
    Crazy old computer user:
    Daniel Beardsmore:
    Then you have at least five million memory locations to access at a speed of hundreds of millions of times per second.
    No I don't. I have a 286 with 640 KB of RAM designed to run at 8 MHz, turboed to 12 MHz.

    Then you have exactly 5,120,000 bits of memory, which sounds to me pretty much like "at least five million memory locations".

    If it's not addressable, it's not a location. 640KB on an x86 architecture is only 655,360 locations. (incidentally, I doubt there's actually only 640KB of ram in his system - 1MB seems more likely, see http://en.wikipedia.org/wiki/Conventional_memory.)

  • EpeeBill (unregistered)

    I had a customer with a similar problem. Every night, their synchronized servers would go into a tizzy because they couldn't see each other and go into fail-over mode, despite the fact that both were up and running great. It seemed to happen between 10 and 10:30 every night.

    The short version is that their server room was on the other side of a wall from the kitchen. And one of the night shifters took a break between 10 and 10:30 and made a microwave dinner. This dropped the voltage on the circuit badly enough that the network hubs would reset themselves. Causing juuuuust enough of down time for the servers to fail.
    
     The servers, for their part, were on UPS backups so the voltage drop never bothered them. But the UPSes beeping finally helped tip of the IT guy when he made up his mind to sit in the server room one night to find out what was going on.
    
  • It's a Feature (cs)

    I think we did recommend the client re-wire their office so that the AC wouldn't affect the network lines, but unfornately, that costs money and takes time. They may have finally gotten around to getting things re-wired, but since credit reports were generally needed every day, and re-wiring could take weeks just to get an electrician in, the email was sent out to us so that if the client called our support department, at least we could tell them where to shove it.

  • Loren Pechtel (unregistered) in reply to wizardly
    wizardly:
    All the hardware functionality is done with smoke and mirrors - if you don't believe me, just let the smoke out of your computer and watch it stop working...

    Oh? It didn't fail!

    Somebody didn't read a spec sheet and gave me a test box that fed 120v to a interface card that couldn't take more than 24v. The entire output section of the card went up in smoke but the computer still worked fine.

  • lurch (unregistered)

    The best one I heard were the team who set their servers up only to find every 5 minutes they would crash in completely random ways. Cue days searching for the problem - electrical engineers called, telecomms engineers, server engineers. Not a clue.

    Then someone noticed ... the servers were installed along a wall, 5 feet behind which ran the Docklands Light Railway. Every time a train came past it would create a huge magnetic surge that knocked out the servers one-by-one.

  • Leonidas (unregistered) in reply to Random832

    That is why it is called k(ibi)Byte instead of k(ibi)Bit.

    And it better be 'accessed' every second or so ... just for refreshing it ;)

  • Innocent Bystander Passing By (unregistered)
    but I'm in awe of the fact that my computer doesn't just randomly catch fire and explode

    Seems you don't have a Sony laptop battery...

  • NotanEnglishMajor (unregistered) in reply to FredSaw
    FredSaw:
    Patrick:
    I call bullshit.
    Does it come running?

    If you've ever seen a bull do that sort of thing you wouldn't need to ask that question! The answer is most definitely yes.

    Captcha: Stinky - Yes it is.

  • gwenhwyfaer (cs) in reply to FredSaw
    FredSaw:
    Patrick:
    I call bullshit.
    Does it come running?
    And if so, do you go with the flow?
  • gwenhwyfaer (cs) in reply to Leonidas
    Leonidas:
    That is why it is called k(ibi)Byte instead of k(ibi)Bit.
    *scratches Leonidas' eyes out*
  • gwenhwyfaer (cs) in reply to toweri
    toweri:
    Quinnum:
    Unfortunately most programmers these days have no concept of how the hardware works, and think a java vm is 'low level'.
    They should be subjected to a task along the lines "Here's a microcontroller. Here's a box of miscellaneous active and passive components. Here's a CD with their data sheets. Make me a {desk clock | servo controller | <anything not too complicated>}."

    ...and if you're being nice, you could even let them use C instead of assembler only ;)

    Absolutely! I'd welcome the chance to do something like that for an interview, and we don't need no steeenkin' compiler either!

    ...just don't make me use a soldering iron. My sense of adventure runs out at the wrong end. ;)

  • seejay (cs) in reply to Loren Pechtel
    Loren Pechtel:
    Somebody didn't read a spec sheet and gave me a test box that fed 120v to a interface card that couldn't take more than 24v. The entire output section of the card went up in smoke but the computer still worked fine.

    Way back when, I was doodling around inside a machine that was opened up, plugged in, and on. I dropped a small screwdriver onto the powered up motherboard. It didn't fall far, but it created some sort of circuit that not only cause a puff of smoke to waft into my face, but immediately powered down the entire thing.

    Considering it was a work machine and the only one I had for the stuff I needed to do, plus I wasn't supposed to be fiddling with it that way, I wasn't amused.

    It didn't power back up right away, but after five minutes I was able to turn it on and it booted fine.

    Not sure if I shorted out something permanently or what since it didn't crop up... but you never know... 1/0 in the calculator might have returned the value of pi or a recipe for pork chops for all I know.

    Learned my lesson about sticking screwdrivers into powered up machines though.

    -- Seejay

  • Christophe (unregistered) in reply to Jack
    Jack:
    I never made it to the topic article -- that first paragraph was enough "WTF" for me.

    I understand the author's sentiment, but that just might be one of the most confused explanations of computing architecture I've ever heard.

    I recommend Chuck Petzold's CORE for a good introduction to digital computer architecture for programmers.

    What?? You mean it's not all ghosts and tiny little animals working together?

  • some dude (unregistered)
    Meanwhile, the hardware team was in the server closet

    My question is did the hardware team ever come out of the closet?

  • gwenhwyfaer (cs) in reply to some dude
    some dude:
    Meanwhile, the hardware team was in the server closet
    My question is did the hardware team ever come out of the closet?
    Whether they were Scientologists isn't specified...
  • Quinnum (cs) in reply to wizardly
    wizardly:
    Quinnum:
    Daniel Beardsmore:

    Jake is right. It really is a wonder that it ever works at all.

    I agree wholeheartedly. When you realise what actually goes into a computer it's quite amazing.

    Unfortunately most programmers these days have no concept of how the hardware works, and think a java vm is 'low level'.

    As a tech-wizard first class, I can tell you that what you learn in your classes about computer hardware and how it operates is all a lie, to keep the magic hidden from the uninitiated.

    All the hardware functionality is done with smoke and mirrors - if you don't believe me, just let the smoke out of your computer and watch it stop working...

    Is that the computing equivalent of Phlogiston? :-)

    Damn, I miss the old days of hacking the Amiga and programming the hardware directly. Cracking games and replacing the disk drive routines to bypass the protection was my favourite.

    68K assembler is a thing of beauty, not like the hacked shit that passes for x86 instructions and memory addressing.

    sigh

  • Jack (unregistered) in reply to Quinnum
    gwenhwyfaer:
    Absolutely! I'd welcome the chance to do something like that for an interview, and we don't need no steeenkin' compiler either!

    That's the sprit!! Unfortunately that level of enthusiasm is rare.

    One of my programmer interview questions is: "A user clicks a button on the mouse. Your application gets a message. Explain what happens in between at as many levels as you can." What I'd like to hear is a several minute presentation of hardware vs. software, A/D converters, system buss, logic control units, interrupts, polling, cpu privilege levels, drivers, kernel space, events, messages, queues, etc. etc. etc.

    Worst answer ever: "You're kidding, right? Like, Windows is watching the mouse and then the 'mouseclick' code or whatever gets called" (and then he rolled his eyes!) When I prompted him to explore the concept a bit further and talk about the various layers of control and segmentation involved he said "Who cares, that's all handled by drivers and stuff. That's hardware. I do software."

    It was clear he had never even thought about it (which is bad enough) but more seriously, he didn't care and wasn't curious in the least. It tells me that this is a person who will do not be eager to try new ideas or learn new concepts. That's what ended the interview.

    Speaking of interviews, the best line of questions I was ever asked in an interview (Atari) was "You have three points. How do you determine whether they are in clockwise or anticlockwise order." So I said "first test to see if they form a ray then simple x/y coord value comparisons". "OK, give me another way" followed by complete silence. "Hmm... compare angles using geometry". OK, another: "algebra, compute the slope of the line of 1st two points, compare the third point. If below, it's CW, if above, CCW." OK, give me another... and so it went for about five minutes. It was tough but actually a hell of a lot of fun! Until he said: OK, fine, let's move on. This time in 3D. 3 points in CW order define a plane. how do you determine if the 4th point is on the CW or ACW side of the plane." We spent something like 20 minutes on that one. Each time I presented an idea, he'd shoot it down saying "no, too slow. There's a faster way. What is it?" Talk about pressure! I presented three techniques before running out of ideas but then woke up in the middle of the night later with a forth and wrote some code on my Apple ][ in integer basic to prove it worked. I dropped off a floppy to the office the next morning. (this was before email.)

    Another question was: "Tell me everything you can about the Heap". I spoke for a few minutes about usage and drew some diagrams before asking "is that sufficient?" to which the interviewer's response was "yes, if that's all you know." I felt like an idiot.

    And so it went for two hours. I left thinking I flunked but a few days later was offered the job and told I did "quite well" on the interview. The interviewer, who was very quiet and stern in the interview, happened to be the friendliest, most outgoing person to work with. He was just trying to put pressure on me in the interview to see if I'd crack and give up or work hard for an answer.

    Quinnum:
    68K assembler is a thing of beauty, not like the hacked shit that passes for x86 instructions and memory addressing.
    Reading that warms my heart. When I moved from the 6502 Apple ][ to the Mac Plus, that was the way I felt -- 68k assembler was like a high-level language. Elegant and easy to read. 386 Assembly wasn't bad if your project allowed you to switch the processor into extended mode for flat addressing, but otherwise felt like a tour of a sausage factory. Segment indexing is the work of the devil.

Leave a comment on “Cold. Hard. Credit Report.”

Log In or post as a guest

Replying to comment #:

« Return to Article