|
|
Index: Home | What Is Izumi | Misc Links | Random Thoughts | Too Much To Read | The Rant Vault | Quotes Dev: Projects | Ideas For Dev | Nerdkill | Rig | Hint Rants: Roomba
$Id: The Rant Vault.izu,v 1.29 2007-02-22 05:34:46 ralf Exp $
It seems impossible to get a descent home printer now-a-day. I mean one you don't have to replace every other 2 or 3 years.
Last time I was ranting about how our last Brother HL-1440 sucked and we replaced it by an HP LaserJet 1012.
Turns out the HP LaserJet 1012 sucks too.
I always knew it was an "host-based" printer, meaning the Windows box is the one that prepares the image and sends it to the printer. What I didn't know is that it is actually a more powerful printer which is caped down due to some firmware bugs. These bugs are known by HP but they choose to ignore them, as one can read one this forum page: HP LaserJet 1012 Unsupported Personality PCL.
Having worked for hardware manufacturers in the past, I'm well aware that the issue is one of the tradeoff between credibility and cost. A low-cost printer may not be firmware-upgradable and even if it were there's a risk of bricking it, so it might be cheaper to tell users affected to buy another one. Problem is, users whom you tell that will probably buy another brand.
In my case, 3 years down the road, the printers works fine, very fine. When it decides to work that is, which isn't very often: Many times we now have an issue where the HP LaserJet 1012 will print one page and then decides there's no cartridge installed.
When that happens, power cycling the printer on the spot doesn't help. Eventually if it is left turned off for several hours or days, it will print again. When we're lucky it will agree to print more than one page before hitting the bug.
So fine, at first we thought the cartridge was empty or had a problem and we replaced it. Turned out to cost half of the cost of the printer and it was a waste of money. The issue continues with the new cartridge.
Next, maybe it can be a driver issue? So I wasted my time removing all the drivers from Windows XP, finding updates on the HP web site, just to find out they were the same in fact. Let's face it, there has been nothing new on this printer since 2005 nor will there be. And of course it didn't fix anything.
Smells like a firmware bug or an electronic board issue to me.
We can try to call the HP support but I know what they will say:
Low-tech cheap printers are designed this way. It's a one-shot design process. There's a technical in-house savoir-faire on how a printer should be designed, gained from experience. Marketing decides what should go in in terms of features compared to the target price, the target market and the expected competion. Some useful features will be left out just because they are reserved to the more expensive model. Then engineers will haggle with marketing to fit the max of their mechanical and software expertise in the design given the budget and time constraint. Pre-production models will be created, and once they get accepted by QA and enter final production, the life-cycle of the product is out of the engineers' hands. They will never fix any issue which has been left in the product, whether known or unknown, and will instead move on the next product, which has already been "designed" by the marketing by watching the competition.
So is another HP LaserJet going to suck too? Sure thing. Who's next?
They are doing it again. Mac zealots will never learn apparently: http://switchtoamac.com/site/macs-are-faster-blah-blah-and-I-can't-summarize-a-title.html
The sad part is that it's not going to motivate companies to port their apps to OS X. Remember the pain of dual booting between BeOS and Windows? Or between Linux and Windows. It really sucks. There's already a total lack of games and other serious ports-that-do-not-suck for OS X and this will give companies even less incentive -- the ones that would have done a port because they didn't have a choice, now they do and it doesn't cost them a cent. Who cares about consumers after all?
People who think the reverse are just part of the 0.1% core fan Mac zealots... Those have been proved to never be able to think straight so we can safely dismiss them as irrelevant (most of them actually told you last year that OS X on x86 was either impossible or a profanity. Whatever.)
And this idiot goes on and on: "Imagine the thought process for a consumer who sees a Mac running OS X and Windows side by side" (sic). Well yes I do imagine that pretty much. Loads of crap. First they are not really side by side. BootCamp means you run one or the other after a boring reboot. A virtualization like VMWare or VirtualPC means you still host one into the other and interaction between the two will never be perfect. This of course will give the better edge to the host operating system and OS X fans are not going to complain about it. Then we can't compare to Vista yet, which is what really matters. And finally OS X is not that much better than XP IMHO. Virus/trojans? Most of them are due to ignorant users and OS X has its own share of security issues that are yet to be discovered -- unless you go around advertising security thru ignorance as the solution (that worked pretty well for Microsoft for a long while after all.)
So Mac zealots are at it again. They build towers solely based on hope, hype and extrapolation of facts. Then they complain nobody wants to climb them.
Disclaimer: Note that I managed not to say that OS X sucks for once (OK maybe just right now :-p). There's a Mac right beside me and I enjoy using it. It kills my wrists and it's too shiny outside on the deck yet otherwise it's a nice machine and I love the keyboard illumination. It makes a very nice X11 server and combined with Firefox and XEmacs it's a perfectly usable operating system. And so do my other Windows XP machines with Cygwin.
This time let's rant about H&R Block. I used to do my taxes online using Turbotax. This time since we had a non-negligible amount of deductible expenses we though maybe it would be wise to have someone qualified prepare our taxes.
So we went to H&R Block at Westlake in Daly City and we were extremely disappointed. It was a total rip-off and we're sure not to go there again.
The woman who served us, Myriam something, was rude in my opinion.
It starts on a bad note when she ask how come we filed with Tg's name as the tax payer and me as the spouse. So what? Skip the sexist talk, we just like it this way and that's not her to comment about.
A few minutes later someone comes to tell her her next client is here. Huh wait
we've been there barely half an hour and were told on the phone that we would get
an hour and a half appointment. The end result is that she's rush us thru the
whole thing and will look very impatient each time we have to do something
Then later she's being rude and impatient again when asking us about the meaning of some cryptic line on a dividend form. Is it taxable or not? Hell we don't know, that's not our job to know. She eventually has us call the bank to find out and whilst Tg's one the phone, she keeps asking her questions then turns towards me and gives me a book, asking me to find which profession code matches what Tg does. I tell her I'll wait for Tg to decide all by herself and she gives me a bad look. Eventually Tg's done with her phone call and didn't learn anything useful from the bank, so we don't know if the thing is taxable or not so the woman just brushes the problem away and tell us, texto "I told you, it's not my problem". Well I beg to disagree, it's her responsibility to know what is taxable or not, that's the one reason we came here in the first place.
Next comes our expense list, which I carefully prepared at home, going thru all the bills and listing them by date. And no that's not good for her, now she's ranting how come this is not categorized? Well I don't know, I didn't know she needed it by categories and I don't even know what kind of categories would have been needed on the first place. So here we go, going thru all the list item by item trying to sum up categorizes with a hand calculator and each time she's like "next, next, next!". Just plain rude and impatient.
Eventually she asks if we want our return deposited on the bank account. Sure, I always do that. But oh wait I don't have my checkbook on me and for that she gratifies me with a condescending look and a derogative comment "you'll have to wait for the check to be mailed in then".
To top it all I was extremely disappointed we didn't have had a chance to review the paperwork before she e-filed it. How do I know she didn't make a mistake in it, after she rushed the whole thing on us? Do I need to mention that nowhere she gave us any professional advice or tax-saving tips, as they suggest they should be doing.
On a separate note, I was less than impressed by the software they use internally. It's a rather ugly Windows application which seems to have been designed by an accountant troll with a total lack of knowledge of good UI design. The workflow stream seemed pretty fluid most of the time just to be ruined by occasional pop up dialogs. List entries, such as itemized expenses, are allocated a ridiculous height displaying 3 or 4 items with a scroll bar in the middle of a form itself already scrollable. And most surprising, she had to enter our information (names, ssn, etc.) twice at the beginning, which was both a total waste a time and an error prone operation.
Finally, Tg was disappointed since she had been told on the phone there would be reduction coupons yet when we got there we got several different answers such as "oh the woman on the phone was not well informed", "oh it's not for this store" and "I don't have any left". This would have had been a pale compensation for the ridiculous amount we were charged which is about 5 times the "starting at" fee we were told on the phone (which apparently is only for the ultra basic federal and not even the state) and the fact there was no justification at all of the fee ("oh it depends on the number of forms filled"... yeah and that would be...?) The fee they indicate on the phone is a pathetic lie, oh sorry a "marketing message".
(20060402) Later we find out some errors in the expense list that woman entered on our forms and we finally found if the dividend form thingy was taxable or not. Should be no problem, right? Before leaving we had explicitly asked the manager what would happen if there was a mistake and he said they would simply fix it. Turns out that we call to have it fix and now it's a problem: they can't fix it, we have to wait for the tax refund to get here and file an amendment. Great. So that thing was just another pathetic lie, oh sorry a meant "marketing over-simplification".
So overall H&R Block failed to meet their announced quality of service on all levels. Unfriendly service, rushed with not enough time, lack of advise and not taking into account our complaint. Lousy bunch of moronic liars. The bottom line is that going to H&R Block sucks.
Last month Windows on my laptop died again. This time some crap occurred shortly after a Windows Update and when booting right before the logon I was getting a BSOD. Problem is the computer was instantly rebooting and thus there was no chance whatsoever of reading the blue screen info.
I tried the repair mode in Windows (after managing to locate the original CD, not a small feat in itself) but that didn't do anything. I then tried to replace the OS, which first started to remove it and reboot and then the Windows XP upgrade CD started to ask for the previous Windows 2000 CD... Outch. It's somewhere. In a box. In the garage. With a fox.
Eventually I found that CD (which it needed just to check it was a valid upgrade, assuming by default I rob Microsoft everyday and because of me they will be in bankruptcy real soon now -- yeah right.) Eventually I managed to proceed with the Windows XP install. And now it reboots. And now I get a different kind of BSOD...
Obviously the problem here is that I'm just a dumb user trying to reinstall Windows to fix a Windows crash and I'm trying to reinstall on top of the existing drive without erasing it all, because oh well I'm really dumb and I don't really want to loose all the installed stuff and data. How dumb is that? Freaking annoying users who don't want to loose their data, pff!
Sigh.
So finally it looks like I don't have a choice.
Unlike Linux, there's no "live" CD for Windows. You can't just pop it in the CD drive, boot from the CD with network and all peripherals enabled and expect to work from there or backup stuff. Nah, all you got is this lame "recovery console" which is as sexy as a command-line FTP client with no internet connection.
Serramonte Nissan, 650 Serramonte Blvd, Daly City, CA 94014.
Short version:
Medium version:
Long version:
It starts with a good schedule: I have a day off two days before leaving for vacation, my car desperately needs a full service and I find there's a Nissan garage pretty close to where I live now. I had called the week before and made an appointment, so here I am at Serramonte Nissan's service on a Tuesday morning around 8 AM.
I tell the guy I need to have the car receive the usual 120,000 miles services and a couple of extras such as getting new tires, have a crack in my windshield repaired and have the cruise control repaired.
Okay fine they can't do the windshield and it turns out they would simply bring the
car to a body shop on the other side of the city so I can just do that myself later.
And they probably do not have the tires I want but it's OK the guy will give me a
quote later on.
Oh and wait I really need my car tonight so please let me know when it will be ready.
Now it's all fine sir, just take the shuttle and we'll call you.
So here I am at home doing my stuff when I realize it's 3 PM. Since I had no news from the garage, I call. An automated system tells me I want to push 1 for the service center. This leads me to a voice mail. Leave a message and we'll call you back. I do just that.
Half an hour later I try again and this time try to get an "operator". This ends up on another voice mail that promises to call me back. But never actually does.
Around 4 PM I try again and get the voice mail again. This time I retry with the sales department and I finally talk to a human being who tell me he will transmit my request to know what's my car status. Nothing happens.
Around 4:30 PM or so I finally get grab of the guy. They did service the car, I need new tires (I told them), and new rear brakes (that's right I had forgotten) and they are still trying to figure out the electrical problem with the cruise control. But no problem he will call me back.
To make a long story a tad shorter, I got real piss when the guy called a quarter before 6 PM to let me know the car wasn't ready. Oh and the shuttle driver had left so I had no ride, so he needed the car one more day and would give me a rental for the day.
At 6 PM I get another phone call from a different person. She tells me she was told I need a rental but she just got the papers and the rental place is closed now. Oh and the guy I was dealing with just left. So she's sending the shuttle guy in the morning, say 7 AM? No 8 is more like it on my side.
Grrr. How do you spell "irate"?
Next day.
I get a call at about 8 AM asking if I asked for a shuttle. Yes indeed. The person asks for my address (like they don't have it on the papers I signed?) We go to the garage where I talk to the guy dealing with my car. He claims it should be finished by 11 AM and will definitely give me a call.
I eventually get a rental (some crappy Mazda 3 -- well ok it's not that bad but it's just a conventional american car that makes you feel like your driving on rubber and it's clearly underpowered) and manage to get to work.
At 11 AM, surprise, no call. At noon either so I try to call and again I get that annoying voice mail thingy and it's impossible to contact a human being. I try to leave some voice mails around for an hour or so and nothing.
Eventually at 2 PM the guy calls and tell me he's done with the car and I can come pick it up. Well I'm at work so I can't come right away, what about 4 PM? Oh I should rather make it 4:30 PM in this case (hmm how come if my car is ready?) Oh and he's sorry for my frustration and will give me a discount or something.
In any case, I arrive around 5 PM after dropping the rental and sure the car is ready. He explains the bill, especially the parts they couldn't fix (like the cruise control not working and they'd need at least 2 more hours to figure it out, at my expense of course -- apparently the "discount" is just that he's not charging me for the hours he spent not understanding why the cruise control isn't working.)
Overall I'm mostly disappointed by the lack of communication, the inability to let me know in advance the car wouldn't be ready (a big no-no in my book) and the inability to give me a rental instead before the rental place closes (how ridiculous is that?) and the inability to return my calls in due time.
I'm partly dissatisfied with the work, especially since they couldn't do it all and there's a smell of gas sometimes when I drive so I may have to go there just to complain. But then I'd have to leave the car for them to look at it. Also they failed to find out that the wiper blades were torn and needed to be changed and that one of the rear license plate lights needs to be replaced too (which was found by the Wheel Works guys when I went there to change my tires later.)
So overall as far as I am concerned Serramonte Nissan is a place to avoid to get my car fixed.
How much trouble makes a product get bad reviews? I sure don't know.
Clearly, when I shopped for a new motherboard two months ago, I carefully reviewed specs and looked for online reviews for whatever hardware it is I wanted.
I finally got an Epox EP-8KDA3J motherboard. I read a lot of reviews of gamers enthusiastically reporting how much their overclocked their system. Since I'm not the kind to experiment with overclocking, my reasoning was that if the Epox motherboard could handle more, then it should be very good when running under the manufacturer's specs.
Obviously, I was wrong on three points:
The nForce3 chipset on my Epox EP-8KDA3J comes with a small fan for active cooling. Although this fan looks cool, it is a real piece of crap. After a couple of weeks it started emitting some high-pitch noise when I was powering the system in the morning. Typically this noise would fade after half an hour, but that completely ruins the concept of having low-noise fans for the CPU and the power supply.The bottom line is that I wish there had been more bad reviews of the Epox EP-8KDA3J motherboard online so that I could avoid it.
Ironically, the "lesser" Epox EP-8KDA3I motherboard seems now like a better choice to me than the Epox EP-8KDA3J since it lacks the flawed Gigabit ethernet controller and it comes with passive cooling on the nForce3 chipset Obviously this is moot as next time I will make sure I stay away for any Epox product anyway.
Note that on the motherboard pictures on the Epox web site, both motherboards are shown with passive cooling on the chipset. This is not what is shipped.
On the other hand, I finally solved the systematic one-crash-a-day I was having (as reported earlier) by adding an extra fan at the bottom of the case that blows directly towards the chipset and the graphic card. This happened by mistake, sort of: the chipset fan was making such an horrible noise this week-end that I simply unplugged it. With the case open, I monitored the system temperature to notice that it was only slightly increasing then added an extra fan that would blow towards the chipset in order to replace the one I just had unplugged (probably not necessary but I just want to be on the safe side.) So actually besides looking cool, I'm really dubious on the purpose of the original fan present on the chipset. It's a source of annoyance rather than something useful and it appears I am not the only one to wonder why Epox choose to have a fan on the nForce3.
20050526 Updated original post with some pictures of the mobo.
Here I go ranting again like an old crummy guy :-)
This time it's about our printer, a Brother HL-1440.
It's a nice model at first... not too expensive (interestingly the Brother web site lists it with an MSRP of $150 yet in store it's generally about $200 new, less if refurbished but you really don't want that, c.f. below).
As for other printers, supplies are crucially important in the price decision. The price for the "high yield" TN-460 toner is $60-$90, and for the DR-400 drum $120-$150.
So overall it's a nice printer, it has a small footprint and compact design, it's straightforward to operate, drivers are easy to install and use and it prints fast with a nice resolution.
So what's wrong with it?
Let's just say that the first HL-1440 we had started to print papers with a gray background and some kind of vertical lines on the left side of the paper after a while (2 years or more, I am not quite sure.) The natural fix was to buy a new toner. This didn't change anything. I thus then purchased a new drum. Oddly that didn't solve the issue (maybe a little, I'm not sure, nothing obvious.)
Since the purpose of this printer is mostly for SOHO, the documents that get produced must look clean. If it were just to print some maps or quick stuff to trash it later, a laser wouldn't be adequate anyway (a cheap ink jet would just do it.)
Oh did I mention that this defect is listed in the troubleshooting? Page 6-12 says "Gray background: Install a new toner cartridge, install a new drum unit." Yeah right.
Next thing I know something needs to get printed nicely ASAP and I realize it may be simply cheaper & easier to buy a new one than to have it serviced (which implied finding out where it had been purchased, what kind of warranty and stuff like that.) That new toner and drum already had costed more than a new one!
So I do just that. I purchase a new one. That was two years ago (to do: find exactly when) at Fry's. It's then been working like a charm, except for a minor bug where we have to request a print twice under Windows XP (first time you want to print, it warms up, indicates it receives data and simply does nothing... next time it will actually print... probably a driver issue, we can live with that.)
And now we get the gray lines & background on every page again. That's on a "new" Brother HL-1440, 2 years old, with its original drum and toner. Good thing, I have that toner we never got to actually use much with the old one, so I try that and I still get the gray background... Grrr.
What options does that live: try buying a new drum & toner again, or once again realize it may be cheaper to get a whole new printer?
Maybe I'll do just that: buy a new printer, but this time another brand that can actually last more than a couple years (an HP LaserJet 1012 would seem appropriate, around $200 w/ $50 rebate and $70 for Q2612A cartridges, requires extra USB cable. User manuals here.)
I really have a lot of issues with the concept that a new printer is less expensive than its supplies; this is really wrong from an economic and environmentalist point of view.
Happy Earth Day!
As mentioned in The Blog, I recently upgraded most components of my PC. Basically the only thing I kept was the case and the hard drives then I added an Athlon 64 3000+, a GeForce 6600, an Epox EP-8KDA3J motherboard and a Seasonic Super Silencer power supply.
This ran very smooth for a while then I started having two kind of problems.
My first problem was the integrated gigabit ethernet on the Epox EP-8KDA3J motherboard that stopped working for no apparent reason. It did that twice and each time the computer had been running for several hours with a low CPU load (basically idle.) The symptom were simple: Windows telling me the network cable was unplugged and the corresponding led being off on the hub. First time I though maybe my ethernet cable got broken so I tried another one. To solve the issue I eventually had to shutdown the PC which then would not restart immediately unless I actually waited a couple of minutes with the power off. A third time I had been using the computer the whole day and eventually I wanted to transfer some file from the LAN server just to realize the transfer was estimated to take several hours... weird. Looking at the network stats, the transfer was using 0.1% of the bandwidth rather than the usual 50-75%. I immediately stopped the whole thing, plugged a 100mbps PCI network card I had and was transferring full speed again.
About the same time, I also started having stability problems.
Typically once a day, the PC would just freeze.
Not necessarily under a lot of load, but generally as soon as I was starting
doing something for a while.
Eventually when playing Wow it would freeze
on me once, in generally in the first 30 minutes of playing.
What is weird is that once it frozes, it won't do it again for that session.
Somehow I think there are two different issues here: the freeze in
Wow happen when there's a lot of DirectX
stuff going on and the CPU is under a lot of load.
On the other hand the freezes I get sometimes during the morning
(i.e. when working or doing email, not playing) cannot be explained by that
as generally the system temperature is cool and I have no DirectX applications
running.
Naturally my first reflex was to email the motherboard manufacturer's support, Epox. I've not been exactly thrilled by their level of support. The first reply I got after explaining my problems was basically to make sure the system was well installed, all drivers installed on a clean Windows installation, BIOS updated with default settings and to change the AGP aperture to 64 MB. Since I had reinstalled all the system from scratch after the upgrade, that part was taken of, the only thing I actually tried was to change the AGP aperture from 128 to 64 and that changed nothing to the stability, except I think Wow was taking a bit more time to display some heavily loaded scenes.
Since the first answer did not say anything about the onboard
ethernet failing mysteriously, I wrote back again about that. This time the
answer was even more cryptic: my 300 W power supply unit was not enough for
this system. This was the totality of the message: you need a 400 W PSU.
No justification as why. It could be a random answer that I couldn't tell the
difference.
To make it even more obvious how rude I found the reply to be, I must point out
that I selected my PSU after looking at the
Epox EP-8KDA3J motherboard
user manual online. That manual explicitly says page 3-9 that the board requires
a 250 W PSU and that 300 W or more are recommended. Since it says 300 W, I selected
a 300 W. If they think a 400 W is more adapted for today's needs,
why not explicitly writing it in the user manual?
So anyway, I did order a new XClio 400BL power supply instead. Newegg.com customer service is nice enough to let me order a new one first and then send the old one back to get a refund -- they even told me they would wave the 15% restocking fee, yet since I did open the various plastic bags and mounted the unit I still expect them to charge for a reconditioning.
Oh yeah then I was also said by Epox's customer service that I could simply send my motherboard, they would test it in their lab and give me a replacement if it is proven to be defective. Of course all fees are on me, I have to spend an hour disassembling the system then put in it all back together and I'm out of a working computer for "5 to 15 bus. Days" (sic)
So we'll see if a stronger PSU solves this. Otherwise I may have to have the Epox EP-8KDA3J motherboard tested which means I can't use my system for a while (Win XP Pro installs stuff specific to the mobo/CPU so moving the drives to my old dual P3 won't be enough to work... I may need to install a fresh XP Pro on an old HD in the old system.)
Note that you can find plenty of good Epox EP-8KDA3J reviews on the net. The fact I experience problems does not mean their products are all bad. On the other hand, I really think customer support should be rated by end-users too. For example we all know Newegg.com is good for they support service and they make it very obvious on their web site that items such as motherboard are only supported by the manufacturer (I guess they know it's too much trouble.)
Evening update: upgrading to the latest nVidia drivers may solve the crash I regularly get in Wow. The latest driver (71.84) has several fixes specific to this game.
20050411 Update: Nope, the nVidia driver update doesn't actually help with that freeze. Got only one freeze in 3 days though, which is better than one per day.
Follow-up links:
Most rants are now written in the blog.
Very seldom is there a rant that I'll actually write here. And if it is, it will probably be referenced in the blog too.
So here's what I find in my Apache logs:
218.25.171.113 - - [21/Dec/2004:23:18:02 -0800] "SEARCH /\x90\x02\xb1\x02\xb1 \x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02 \xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1 \x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02 \xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1\x02\xb1 [...] \x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90" 414 271 "-" "-"Etc., you get the idea. That sucker is 32807 characters longs (log line, not payload).
A quick search indicates most people link this to an IIS WebDav exploit. So sure I don't feel quite concerned here, yet it's annoying.
By the way note that Apache replies with 414: Request-URI Too Large. LOL, I had no idea such an error code existed (I was probably not careful enough last time I read RFC 2616 HTTP/1.1 as I probably didn't really care about it yet yes it is right there in ch. 10.4.15.)
So it's really really harmless as far as I am concerned.
So is there a way to prevent Apache from logging those? Probably not. Unless it crashes Webalizer or something (doubtful), it's best to log it for stats anyway.
Blog Archives:
Most recent posts
2004/12/18 - 2004/02/25
2004/02/23 - 2003/12/23
2003/12/20 - 2003/07/01
[RSS]
|
|

This work is licensed by Raphaël Moll under a Creative Commons License.
|
|
| Color Theme: | Gray | Blue | Black | Sand | Khaki | Egg | None |
|
|
|
|