darkoshi: (Default)
I've been trying to support independent journalism by getting paid accounts on some news sites whose articles I occasionally read (even though most of the time, the pages I read are ones that other people have linked to).

I had made a note that Slate.com charges $49 for a year's subscription. Today the site even shows an introductory price of $35/year. So I decided to sign up. But after fighting with their website for the last half hour, I've changed my mind.

First problem: The Join Slate Plus page says what the membership costs and what special perks you get. But there were no fields for signing up, and no link or button for any sign up page. I had to click NoScript's "Temporarily Allow All This Page" icon 4 times for the fields to finally be displayed. (Each time you click that icon, NoScript allows JavaScript for the domains that were previously blocked, but then encounters additional domains which the page indirectly references, and for security reasons, NoScript doesn't allow them until you click again. And so on.)

Furthermore, the fields that show up aren't for buying a paid account, but rather for "Try it Free for 2 Weeks!" That's not what I wanted.

So instead I used their normal Sign Up page to create an account. It asks for an email address, display name, and password. It took me a while to decide on a display name to use. Upon submitting my info, the site then brought up the Terms of Service. But there was no Accept button. I repeatedly clicked the "Allow All This Page" icon, until 30 or more domains were unblocked (and my laptop fan started spinning on high speed from all the crap it was trying to load each time, because underneath the ToS, the page showed a bunch of news articles), and still no Accept button displayed. Yet when I tried to go to my account page, it kept re-displaying the Terms of Service, like it was waiting for me to accept them.

Then I tried a different browser without NoScript. That way, I was able to log in and open my account profile. The account page has a "Manage subscriptions" link. But when I click the link, it only opens the slate.com homepage. So I can't see whatever email lists they may have added me to by default. Hopefully I'll be able to unsubscribe from them somehow, supposing they did add me to any lists.

Then I tried logging in from my normal browser again. But when I click the login button, it ...

(oh thank goodness for Dreamwidth's AutoSave. I just closed both browser windows, to see if I was only having trouble because I was still logged in from the other window, not realizing that I was also closing the tab where I was writing this post.)

When I click the login/account icon, nothing happens. I have to again allow JavaScript from a bunch of domains, just to get the login fields. But then when I enter them, I still don't get logged in. Sigh.

This is way too much trouble. I no longer like their website, so I don't want to give them any money after all. The articles I see on their site today don't seem so great either (or is that sour grapes speaking?).

opera browser

Wednesday, June 7th, 2017 02:44 am
darkoshi: (Default)
I was getting ready to install one of the Opera browsers on my phone, but I noticed that their Google Play pages say "contains ads" - even though the browser itself supposedly contains ad-blockers. So where do the ads get displayed? Do they block the normal ads and inject their own instead?

The app details mention: Opera Mini may show ads from Facebook. To learn more, see https://m.facebook.com/ads/ad_choices
But that link results in a Facebook page with message "The page you requested was not found."

I did a web search and didn't find more info on that, but found this (from July 2016): Opera browser sold to a Chinese consortium for $600 million.
That is news to me.

It reminded me of something else I read recently that surprised me too. I thought that Lenovo was a part of IBM, and that IBM was still a PC/laptop manufacturer. But IBM sold "off its personal computer (ThinkPad/ThinkCentre) and x86-based server businesses to Lenovo (2005 and 2014, respectively)". And Lenovo "is a Chinese multinational technology company with headquarters in Beijing, China."

other things

Sunday, June 4th, 2017 02:47 am
darkoshi: (Default)
Still tweaking other things on my new cell phone too.

I found out that one can remove the pages from these old family photo albums (and put them back together again). Which means that scanning the albums shouldn't be that difficult after all (as long as each page fits on the flatbed - one of the albums does just barely. The other one would require using my mom's larger scanner). Which means that's another thing I want to get done.

Firefox addons; learn how to update them to use these new WebExtensions APIs.
Which also shows me that my JavaScript knowledge is woefully out of date. It's changed a lot in 20 years.

I've just installed 2 and a half years worth of Windows updates on one of Qiao's old Windows 7 desktop computers, which we haven't used in that long. Because it has iTunes on it, and I don't want to install iTunes on my laptop. But there are a couple of items I want to get, which are only available to download from iTunes. And of course, that meant I needed to install Windows updates too, right? I dunno. It seemed the thing to do even though it took all day. Makes me think I might even be able to get updates working again on my old laptop too, if I wanted to.
Simplifying updates for Windows 7 and 8.1 - a rollup for all updates through April 2016, with only one prerequisite that must be installed first.

Researching family tree stuff. Old census records. Found out my great-great-grandmother had at least 10 children, and possibly 5 more that didn't survive.
Need to determine what kind of open-source program I should use for doing a family tree, so that the data can be exported/imported in a widely compatible format.

Want to replace all the screws for the door lock strike-plates and hinges with 3-inch long screws. And replace some of the strike-plates with ones that take 4 screws instead of 2.

I finally took down the rest of the xmas decorations and put the boxes away. My mom helped me take down the xmas tree a few weeks ago. She and Qiao are as bad as me - once I made my mind up to take them down, they both said "I think you should just leave them up", making me debate it internally all over again.
darkoshi: (Default)
About 6 years ago at work, I set up an online group on one of the corporate websites intended for that purpose. It was a group for our developers to share information and post questions & answers. Many coworkers joined the group, and it got a good bit of use in the first years (about 180 posts/threads). But the activity eventually lessened, and the last post was 2 years ago (for various reasons, I suppose).

Recently all group owners were notified that the website was being shut down soon, in favor of some other new site on different technology. We were told that if we wanted to save our group's content, no tools were being provided for doing so, but that we could copy and paste the content into Word documents.

I harrumphed at the thought. Opening each and every post, and copying/pasting it into a Word doc? You've got to be kidding. As the group hadn't even been used in 2 years, and much of the info there was no longer pertinent, there didn't seem much point in trying to save the content.

But yesterday I took some screenshots of the pages which listed the post titles, for memory's sake, or nostalgia, or because maybe that could somehow be useful.

Today a coworker emailed me a question. It reminded me of one of those posts, which explained how to find the foreign key relationships of a table in SQL Explorer. So I went back and read that post. It helped me answer the question.

Then I wondered if I could find an easier way to save the group data after all. I discovered that each thread had an option for saving to a PDF file - and to get that PDF, you only had to append ".pdf" to the URL of the thread's page.

If I could get a list of all those URLs, then I could save off the PDFs. Scrolling through the posts, 20 titles & URLs are shown per page. So I saved off about 10 HTML pages like that. Then I used File Locator Pro (an awesome tool; I highly recommend it) to parse out the URLs along with the titles. I used a reg-ex search query, and saved off the matches, using this method: export just the content found by a regex expression.

Then I determined how to save off the PDFs from the URLs. After logging into the website in my browser, entering the command "start firefox [URL]" in a command window would open the URL in a new tab of the browser. So I divided the URLs into groups of 10, and used a batch file to open the URLs, ten at a time. (I didn't want to do all 180 at once, as I had a feeling that would either crash the browser and/or get me into some kind of trouble, as in who's this person fetching a zillion pages from our webserver all at once?).

Then I used a Firefox plugin, Mozilla Archive Format, to save all open tabs to a MAFF file. A MAFF file is a zip file containing a folder for each tab. Each folder has an index.html (or in my case index.pdf) file, along with a RDF file which has metadata including the page's original filename.

So, once I had saved off MAFF files for all the URLs (about 18 MAFF files), I unzipped them all, extracted the PDFs, used another batch file to rename them back to the original numeric filenames (which puts the posts in order by date), and to include the post titles as part of the filenames.

For creating the batch files, I use Notepad++'s column editing to edit a bunch of lines at once, and macros to apply the same changes to each line.

And voila, I now have the group's entire content exported as PDF files which can be browsed or searched. And it only took me a few hours to do, most of which was figuring out how to do it as opposed to actually doing it.

I'm not sure what I'm going to do with the files now, but at least I have them.

Figuring out how to do things like that makes me feel clever.
darkoshi: (Default)
Yesterday while trying to get my LJ login to persist, I accidentally deleted all cookies. And now today it was Dreamwidth that kept logging me out! Even though I didn't change my Dreamwidth exception, which was working before.

Obviously I didn't completely understand how the cookie exceptions work, so I read up on them, and did some more testing.

Cookie settings - from http://blog.teamtreehouse.com/how-to-create-totally-secure-cookies :

Path: The default value of “/” means every request will get the cookie, while “/forums/” would limit the cookie to just that path.

Domain: Setting “www.example.com” will mean only the exact domain “www.example.com” will be matched, while “.example.com” will also match again any subdomain (forums.example.com, blog.example.com).

Secure: tells the browser (or other http clients) to only send the cookie over SSL connections.

HttpOnly: tells the browser that it should not allow JavaScript to access the contents of the cookie. This is primarily a defense against cross site scripting.

(so apparently "HttpOnly" has nothing to do with HTTP vs HTTPS, but "Secure" does.)

The DW cookies have Path = "/", Domain = ".dreamwidth.org", HttpOnly = true, Send for = "any type of connection" (which must mean Secure=false). So the cookies are sent from the browser to the DW server when any DW page on any subdomain is opened, and for both http and https.

But the Exceptions are what control how long the cookies are stored.

Based on the following pages, you don't have to enter subdomains (and you shouldn't use wildcards) in the URLs for Exceptions - all subdomains are included by default. Ie. "yahoo.com" includes "mail.yahoo.com".

Based on my testing, HTTP and HTTPS exceptions are mutually exclusive. Adding an "http://" exception will only work on pages using HTTP. Adding an "https://" exception will only work on pages using HTTPS. So if you've set your cookies to be deleted when closing the browser, but you want your "ljloggedin" cookie to persist whether you've logging in from an HTTP *or* an HTTPS dreamwidth page, you need to have "Allow" exceptions for both "http://dreamwidth.org" and "https://dreamwidth.org". Whereas if you are careful to only login from the HTTPS pages, you should only need the latter.
darkoshi: (Default)
I'm configuring my "new" laptop. 13 months after getting it, I've finally moved my files over to it, and started using it as my main computer. I realized I might never finish doing all those other things I wanted to do before moving the files, so finally just went ahead and did the move.

Now, I kept being logged out of LiveJournal, even though I was selecting the checkbox to stay logged in.

My Firefox configuration is set to delete cookies when I close the browser, but I had added an exception for http://livejournal.com. I added another exception for http://www.livejournal.com, but still kept being logged out. Looking at the cookies after logging in showed that they were still set to expire at the end of the session.

Finally, I tried adding an exception for https://livejournal.com. That did the trick. So even though the LiveJournal login page shows "http" in the URL bar, it must be using https behind the scenes.

I didn't have the same trouble with Dreamwidth, as I had added its exception using "https" to begin with, thinking that the Dreamwidth pages used https by default. But now I see that the Dreamwidth pages show "http" in the URL bar too. I must have configured my old laptop to redirect to https for Dreamwidth. Still need to do that here.

I don't see anything on Firefox's Cookies page to indicate whether a cookie was added via HTTP vs HTTPS. I wonder if there is any way to know which version of the URL you need to add as an exception, other than trial and error.


Monday, May 9th, 2016 12:26 am
darkoshi: (Default)
Every once in a while, Firefox shows me error messages (like Page Not Found) in German. I don't know why. I happen to be able to read and understand German, but what could that have to do with it? This time, Google is doing it to me:

The only reason Google shows me as signed in, is because I signed into YouTube. Yet my YouTube pages are still in English.

I bet it is related to one of my plug-ins. But why would it happen so intermittently?
darkoshi: (Default)
The "View - Reload" menu item has been removed from version 25 of Firefox. Apparently for quite a while already, "Reload" was only available when pressing "Alt+V" to view the menu. But now it's no longer there at all. I wonder why the Firefox designers feel the need to remove functionality from the menus, when the menus aren't even visible by default anymore.

Why do little changes like this bother me so much? Because it's like coming home to find that all your door handles have been removed and replaced by knobs, and furthermore, the knobs are on the top of the doors rather than in their hitherto-normal positions. Then you find out that for the last 10 years, 98% of other people have been using wireless mobilephone apps to remotely open all their doors, rather than using the door handles.

Now I have to remember to use either F5 or Ctrl+R to refresh the page when I don't have my hand on the mouse. I feel like I'm too old to learn new mnemonics. I can never even remember that Ctrl+Tab is for switching between tabs, even though I constantly use Alt+Tab for switching between windows. (I also can never remember the hotkeys for indenting or outdenting a block of text, in my email program at work).

Hmm. To press either F5 or a Control key combination, I have to look at the keyboard. Maybe that's why I find the menu mnemonics using the Alt keys easier to learn/remember. If I need to copy/paste something while typing, I still tend to use the Alt-Edit-Copy and Alt-Edit-Paste keys. My fingers however, know that Ctrl+Ins, Shift+Ins,and Ctrl-C can also be used.... but I don't use Ctrl-V much because how am I supposed to remember that V is for Paste?

Hmm. When editing text (as opposed to typing), my left hand is in the normal position, but my right hand is centered on the arrow keys. That lets me scroll through the text with my right hand, and also lets me do copy/paste/delete operations using the keys on that side.


I've found that it is much easier to iron clothes while they are still damp from the washer. No need to first let them dry. No need to put water into the iron, nor to drain it out afterwards. Ironing damp clothes makes them dry faster too.

This makes me more likely to iron clothes right after I've washed them, avoiding an ever-increasing accumulation of wrinkled clothes waiting to be ironed. If I know that I won't have time to iron right after washing, I may not even put those particular items into the wash.


I've been noticing a recent tendency to bite my lower lip while washing dishes, especially if I'm in a hurry. It's an odd subconscious thing; as if biting my lip will somehow make me get done faster. I have to consciously put effort into not doing it, as it's not a habit I want to have.

google interfaces

Thursday, August 29th, 2013 11:22 pm
darkoshi: (Default)
On the Google Play website, where can you view the permissions required by an app, before downloading or installing it? I seem to remember when browsing apps a few months ago, each app had a link or tab for showing the required permissions. But the site looks different now, and I can no longer find the information. Oh**, nevermind.

Note: I prefer to browse the available apps on my computer before downloading the chosen ones to my phone. And I'm using Firefox - that shouldn't limit what I see, should it?

I'm trying not to gripe much about Google products seeming user unfriendly, as my difficulties may simply be due to my inexperience with the interfaces.

Yesterday evening while trying to do a web search on Chrome, I got annoyed by a microphone window unexpectedly popping up. I muttered "F*ck You", and it proceeded to show a page of search results for "F*ck You". That was amusing.

I then tried some other verbal searches... but it didn't give me time to finish my thoughts, and instead searched on the first few words I had said. I suppose I'd need to formulate my question before starting to speak it.

At work, I found a free app/plugin/whatever-Chrome-calls-it, on the Google site, that I wanted to install to my Chrome browser. Besides not being able to find the permissions, there was no obvious way to install it. There was a button at the top of the page labelled "Free". When I eventually clicked this button, it showed me the required permissions, and after my accepting them, apparently installed the plugin. As I recall, I didn't get a confirmation message that it had been installed, but when I checked the installed plugins, it was listed. Why do they label the install button "Free" instead of "Install" or "Add to Browser"?

When I tried to use the plugin, I got a prompt requesting extra permissions. Why weren't all the permissions listed to begin with? And then to top it all off, the plugin didn't even seem to work. It kept showing an hourglass.

** This page says that the only way to see permissions now is to click the Install button. But it seems that the install button doesn't display unless you're logged in with a Google account. Even then, if it's an account other than the one you've set up for your phone, you *still* won't be able to see the permissions. You'll just get a message "You haven't accessed the Google Play Store app (the white shopping bag icon) on your device with this email account." Sheesh. gripegripegripehategooglehategooglegripegripe

No option for turning off the navigation bar auto-hide "feature" when using Chrome on a tablet. gripegripe. Even Opera for Android seems to have done the same thing! grrrrr.
darkoshi: (Default)
Based on an articles such as these, I've gone ahead and disabled Java in my browsers:

As it turns out, I had a fairly old version of Java on my machine, due to having turned off updates a couple of years ago. So I updated to the Java version with the latest patches (1.7.0_11) and turned updates back on. As I had disabled Java in the browsers, I decided to have Java to check for updates on a weekly rather than daily basis.

The next day after I booting my computer, my ESET firewall notified me that Java Update Scheduler (jusched.exe) was attempting to access the internet. In order to track how often Java was checking for updates, I only gave it temporary permission and did not create a firewall rule for it yet. I also changed the Java settings to check monthly instead of weekly, to see if that would make a difference.

Yet jusched.exe still attempts to access the internet every day! I'm not even clear why jusched.exe is accessing the internet. From what I understand, it is only a scheduler, and jucheck.exe is the program which should check for updates.

In addition, the Java "Automatic Update Advanced Settings" dialog is quite odd. There isn't really a setting to control how often it checks for updates. There is only a setting to control how often you are *notified* of updates.

When you select "Weekly", it says, "Java will check every Sunday at 12:00AM and notify you within 7 days".

When you select "Monthly", it says "Java will check weekly on Sunday and notify you within 30 days".

Regardless if you select weekly or monthly, it claims that it will check weekly. Furthermore, what is the point of checking for updates but then waiting 7 or 30 days to notify you that updates are available? I would expect a program to notify me of available updates right after it has checked and found them. I want to control how often it checks for them, not how long it waits to tell me about them after it finds them.

I believe that this is why I turned off updates 2 years ago - it annoys me the settings dialog claims that it will check weekly when in fact it checks daily, and that I can't control how often it checks for updates.

This page explains how to set up your own task in Windows Task Scheduler to check for updates, rather than using the Java Update Scheduler. But each time this task runs, you'll get at least 1 popup window which you'll have to close, even when no updates are available.

I feel that one shouldn't have to go through that much trouble... I'm feeling rather disappointed by Java, which is a shame as it is currently my preferred programming language.


Saturday, August 11th, 2012 01:18 am
darkoshi: (Default)
A nice thing about open source software and add-ons:

Realizing there's a feature missing which would be useful for you,
and then realizing that you could possibly implement that feature yourself,
and then realizing that someone else might have already implemented it,
and then finding that yes indeed, someone else has implemented and made it available,
and all you need to do is install it.


Launchy, an add-on for Thunderbird and Firefox, which provides configurable context submenu options for opening links in your choice of browser or other application.
darkoshi: (Default)
Yesterday I encountered this problem again, where the wrong search term was passed in the Referring URL, when I clicked a result in Google's search results. I narrowed down that the problem only happened when NoScript was enabled.

More info can be found on this thread that I posted to the NoScript forum.

Other things that I've discovered in the last 24 hours:

If NoScript is set to block JavaScript for google.com, then on the Google page, you don't get the drop-down with search suggestions, as you type. (But the Firefox Search Bar does still provide search suggestions.)
When you open the main Google page, the focus won't automatically be set to the search box.
Most of the search functionality is still there even with JavaScript disabled, but small niceties like those are missing.

This page has info on using either "https://www.google.com" or "https://encrypted.google.com" for encrypting your searches. It also mentions some of the differences between them.

Using https google.com prevents referring URLs being sent, except for ad links.
Using encrypted google.com prevents referring URLs being sent, including ad links.

You can configure NoScript to force connections to google.com to use HTTPS:
Options - Advanced - HTTPS - Behavior - add *.google.com in the box for "Force the following sites to use secure (HTTPS) connections".

For certain pages to work, the following also need to be configured in the "Never force" box:

With NoScript forcing HTTPS for *.google.com, it appears that no referring URL is sent, even when you click on ad links in the Google search results.

There's no simple/obvious way to update the Firefox Search Manager settings to customize the URL/parameters that get used for each search engine. But with the above "Force HTTPS" NoScript configuration for google.com, any Google searches initiated via Firefox's search bar or the "Search Google for..." context menu item will get sent to the encrypted https://www.google.com site rather than the default non-encrypted http://www.google.com site.

Changing the search engine which is selected in the Firefox Search bar also controls the search engine that is included in the context menu item "Search ... for ...". (It always struck me as preferential treatment that only a Google search entry was included in the Context menu; I didn't realize that it was controlled by the Search bar selection).

In Opera, it is easy to update the URL/parameters used for each search engine. Simply click the Search drop-down, select "Manage Search Engines", and click the "Add..." or "Edit..." button.

This page lets you manually add a search provider for IE7. I didn't test it. It might not work in IE9. There isn't any other obvious way of manually entering your own search provider in IE9.

In Firefox, you can configure whether or not referring URLs are passed (for all sites) via the network.http.sendRefererHeader setting on the about:config page.

In Opera, you can configure whether or not referring URLs are passed (for all sites) via:
Tools - Preferences - Network - Send Referrer information
Tools - Quick Preferences - Send Referrer information

Info on configuring ABE in NoScript. (need to whitelist the domain first)

Firefox 8

Friday, December 2nd, 2011 03:36 pm
darkoshi: (Default)
I finally switched my shortcuts over from the 3.6 version of Firefox to the 8.0 version. I wish they had kept the status bar. I much prefer the URLs to display unobtrusively on the status bar where I can look at them if I want to, rather than being distracted by a window which pops up and disappears. ... oh yay, this add-on prevents the popups and instead mimics the old functionality by displaying the URLs in the add-on bar.

I also wonder what happened to the little lock icon that you used to get, when you were on a secure/encrypted site... ah, this page explains it.

firefox tabs

Sunday, October 24th, 2010 11:41 am
darkoshi: (Default)
I just found out that when Firefox opens a new page in a separate tab, you can drag the tab out of that browser window and it becomes its own browser window. Yay!

I prefer not to use tabs. But the built-in right-click "Search Google for..." option, and some other add-ons, always open new pages in tabs.

(no subject)

Saturday, August 14th, 2010 06:35 pm
darkoshi: (Default)
I'm sitting in the passenger side of the car, travelling homewards. The traffic conditions on I-95 in Virginia were a nightmare.

We have a DC-to-AC converter plugged into one of the cigarette lighters, so that we can charge both our cell-phones and our laptops while driving. Qiao has a little GPS unit which is plugged into his laptop via a USB cable, and we are using a map program on the laptop to navigate with. I have my cell-phone tethered to the laptop, for internet access. I've used it to look up vegan restaurants in the area, and am now using it to post to LJ. For a little while, I had both laptops out on my lap, in order to copy some files from one to the other with a flash drive. I'm using the Opera browser with turbo-boost enabled, as my cell-phone's internet is at dial-up speed. But it works!
darkoshi: (Default)
I was able to update the ToggleDocumentColors extension to do what I wanted it to do. Now I can set my colors to whatever values I want, without it causing problems when I'm using the page-specified settings.

I emailed the add-on's author in case they want to incorporate my change into a new version of the add-on. But the change might confuse some people, and maybe most people don't set their colors like I did anyway, so it would not be an issue for them in the first place. So, I'm not really sure if it would be a good idea to update the add-on for other people, or not.

Instead of feeling accomplished by my accomplishment, I just feel tired. It took way longer to get it working than I was expecting, which is rather typical. Don't get me wrong - coding the add-ons does seem to be quite simple; it just takes a while to figure things out. (especially when the functions throw exceptions for undocumented reasons! grrr!)

modifying add-ons

Tuesday, April 21st, 2009 06:07 pm
darkoshi: (Default)
I'm feeling an urge to try modifying that ToggleDocumentColors add-on. It might be fun, especially if I am successful at it. I want the add-on to be able to save-off your specified text color, and when switching to the page-defined colors, to set the text color to black (since that is what many websites assume your text color is, even when it isn't), and then when switching back to your user-defined colors, to set the text color back to your selected color.

It's just a matter of having enough time to do it. My work has been rather stressful since the beginning of the year. It seems there is always a deadline looming to get something done, and too much to do, to get it done in that time. It's been scope-creep galore. So right now I'm debating with myself whether to connect to my work computer in order to continue debugging what I left off at this afternoon, or not. I think not. My scheduled work-hours are over, and I've got plenty of other stuff to do, even notwithstanding partaking in the joy of open-source coding.
darkoshi: (Default)
Firefox add-on ToggleDocumentColors - adds a toolbar button and keyboard short-cut which you can use to switch between the page-specified document settings (colors) and the settings you've specified in the Firefox options. (The Opera browser has this feature built-in.) So, for example, in the Firefox options, you can set your page background color to black and the text to bright yellow and links to bright green. Then whenever you open a page which has a bright white background, you can click the button on the toolbar to switch to your own colors. Comes in handy for me on the YouTube site, since I have to switch my monitor settings to nearly their brightest, in order to watch the videos, and then having bright white on the rest of the page hurts my eyes.

Hmmm. It seems that YouTube sets the text color based on *your* settings, even when you are using the page-specified settings. The page background color is set to white, based on *their* settings, and yellow on white is not nice. At first I thought it was a bug with the add-on, but it happens even with the add-on uninstalled. Oh well. As long as I can always toggle to my settings when on their site, I think it's still worthwhile to have the add-on.

Hummmmmmm.... I'm just trying out the latest version of Opera, and it doesn't even let you specify your own text color anymore! It only has settings for the page background and link colors. Maybe Opera decided not to have the text color setting anymore, because too many webpages, like YouTube, assume that the user's default text color is black.