<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>while not keypressed (Posts about greener side)</title><link>https://www.keypressure.com/</link><description></description><atom:link href="https://www.keypressure.com/blog/tags/greener-side.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Thu, 23 Oct 2025 15:54:30 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Where are Those Gorgeous Facebook Notes?</title><link>https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/</link><dc:creator>Roman Yepishev</dc:creator><description>&lt;p&gt;Have you  searched for something lately and ended up reading a
&lt;a class="reference external" href="http://newsroom.fb.com/news/2015/09/updates-for-facebook-notes/"&gt;Facebook Notes&lt;/a&gt; post?&lt;/p&gt;
&lt;p&gt;Yeah, me neither.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;I gave Google a week to find my public note on facebook:&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/dropbox/fb-notes-google-nope.png" src="https://www.keypressure.com/galleries/dropbox/fb-notes-google-nope.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;All hope is lost.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;But it is really there:&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/dropbox/fb-notes-uuid.png" src="https://www.keypressure.com/galleries/dropbox/fb-notes-uuid.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;This page really exists!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Guess what? No search engine other than Facebook itself can know about
that post, because as soon as e.g. Google hits
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;https://facebook.com/roman.yepishev&lt;/span&gt;&lt;/code&gt; it sees this:&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/dropbox/fb-home.png" src="https://www.keypressure.com/galleries/dropbox/fb-home.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;Welcome to the walled garden.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;There is no entry point to Facebook Notes. Will there be one?
Maybe... No. Look at  Facebook's robots.txt - it does not really
want the search engines to look inside, but it does not mind if you
end up with a direct link.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-1" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-1" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-1"&gt;&lt;/a&gt;...
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-2" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-2" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-2"&gt;&lt;/a&gt;User-agent: Googlebot
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-3" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-3" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-3"&gt;&lt;/a&gt;Disallow: /ajax/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-4" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-4" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-4"&gt;&lt;/a&gt;Disallow: /album.php
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-5" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-5" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-5"&gt;&lt;/a&gt;Disallow: /checkpoint/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-6" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-6" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-6"&gt;&lt;/a&gt;Disallow: /contact_importer/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-7" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-7" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-7"&gt;&lt;/a&gt;Disallow: /feeds/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-8" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-8" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-8"&gt;&lt;/a&gt;Disallow: /file_download.php
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-9" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-9" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-9"&gt;&lt;/a&gt;Disallow: /hashtag/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-10" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-10" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-10"&gt;&lt;/a&gt;Disallow: /l.php
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-11" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-11" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-11"&gt;&lt;/a&gt;Disallow: /live/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-12" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-12" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-12"&gt;&lt;/a&gt;Disallow: /p.php
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-13" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-13" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-13"&gt;&lt;/a&gt;Disallow: /photo.php
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-14" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-14" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-14"&gt;&lt;/a&gt;Disallow: /photos.php
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-15" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-15" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-15"&gt;&lt;/a&gt;Disallow: /sharer/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-16" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-16" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-16"&gt;&lt;/a&gt;Disallow: /topic/
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-17" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-17" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-17"&gt;&lt;/a&gt;
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-18" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-18" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-18"&gt;&lt;/a&gt;...
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-19" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-19" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-19"&gt;&lt;/a&gt;User-agent: *
&lt;a id="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-20" name="rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-20" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/#rest_code_2476e5a7b7a74a7f8c3f2d09776a7dc7-20"&gt;&lt;/a&gt;Disallow: /
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;So how can people read the notes?&lt;/p&gt;
&lt;p&gt;There are two ways - they are either already browsing Facebook, and
somebody on Facebook shared the note to their friends (less likely -
they specifically search for the text in the note). Or, alternatively,
if somebody &lt;strong&gt;outside&lt;/strong&gt; of Facebook posted a direct link to the page.&lt;/p&gt;
&lt;p&gt;But it does not have to be that way. You can find the only reference to
my unique post hosted here from the &lt;code class="docutils literal"&gt;sitemap.xml&lt;/code&gt; generated by
the &lt;a class="reference external" href="http://getnikola.com/"&gt;blog engine&lt;/a&gt; directly. And Google found it. Google is awesome at
finding things:&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/dropbox/blog-unique-note.png" src="https://www.keypressure.com/galleries/dropbox/blog-unique-note.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;It took Google almost a week, but it found the page. Because I
want my posts to be found.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;So please, publish your stuff on the open web (contrary to how it looks,
&lt;a class="reference external" href="https://medium.com/"&gt;Medium&lt;/a&gt; is &lt;a class="reference external" href="http://scripting.com/liveblog/users/davewiner/2016/01/20/0900.html"&gt;not so open&lt;/a&gt;), somewhere the search gods (and mortal
people) can actually find you.&lt;/p&gt;</description><category>facebook</category><category>greener side</category><category>notes</category><category>search</category><guid>https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/</guid><pubDate>Sun, 07 Feb 2016 18:16:47 GMT</pubDate></item><item><title>From Zoho Vault to KeePassX</title><link>https://www.keypressure.com/blog/zoho-vault-to-keepassx/</link><dc:creator>Roman Yepishev</dc:creator><description>&lt;p&gt;I am constantly searching for the greener side. Sometimes I find one, sometimes
I have to go back to the way I used to do things.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://vault.zoho.com"&gt;Zoho Vault&lt;/a&gt; is like &lt;a class="reference external" href="https://lastpass.com"&gt;LastPass&lt;/a&gt; - you provide your encryption key
to the web page and it decrypts your data, you can also use an Android app.
It is also completely &lt;strong&gt;free&lt;/strong&gt; for personal use of a single account.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/dropbox/zoho-vault.png" src="https://www.keypressure.com/galleries/dropbox/zoho-vault.png"&gt;
&lt;/figure&gt;
&lt;p&gt;And so, having spent two months using Zoho Vault, I decided to migrate back to using
&lt;a class="reference external" href="https://www.keepassx.org"&gt;KeePassX&lt;/a&gt;, though.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;I found the web interface slightly annoying with the credential
search taking a noticeable amount of time, password copy/paste depending on
flash and constantly trying to mask the password that you've just unmasked to
copy.&lt;/p&gt;
&lt;p&gt;The firefox plugin was making the experience better (earlier versions would block
your browser while you are logging in to Zoho, much improved now), but I again
stopped feeling happy about off-loading all the keys to my kingdom to a third-party
resource.&lt;/p&gt;
&lt;p&gt;And then I also found that KeePassX has released a new major version, 2.0, making it
compatible with the newer releases of &lt;a class="reference external" href="http://keepass.sourceforge.net/"&gt;KeePass Password Safe&lt;/a&gt;,
a .NET application (which you can run under linux with &lt;code class="docutils literal"&gt;mono&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;KeePassX 2.0 is a substantial improvement over the 1.x version - the UI became
simpler, the addition of custom tags made it easier to store related
things together, and basically this is the future, so upgrade now.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/dropbox/zoho-keepassx-fake-import.png" src="https://www.keypressure.com/galleries/dropbox/zoho-keepassx-fake-import.png"&gt;
&lt;/figure&gt;
&lt;p&gt;But KeePassX also uses the new .kbdx format, and can only import the older .kdb one.&lt;/p&gt;
&lt;p&gt;So, since I am usually going head-first without leaving an easy way back,
I now had to get the data out of Zoho Vault and into KeePassX 2.&lt;/p&gt;
&lt;p&gt;So I got the Zoho Export CSV, wrote a python script that would convert the entries
to the .kdb format and then imported them into the new KeePassX 2 built in my
&lt;a class="reference external" href="https://copr.fedorainfracloud.org/coprs/rye/keepassx2/"&gt;Copr project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since there's currently no way to create kdbx files directly,
I used the &lt;code class="docutils literal"&gt;kppy&lt;/code&gt; module to generate the v1 database:&lt;/p&gt;
&lt;script src="https://gist.github.com/80737d1f595795073504.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;pre class="literal-block"&gt;#!/usr/bin/python3

"""Convert Zoho Vault Export CSV to KeePass KDB

Usage: zohovault2keepass.py ZohoVault.csv keepass.kdb

You will be prompted for the encryption password.
"""

import csv
import collections
import getpass
import sys

import kppy.database


EXPORT_GROUP = 'Zoho Vault'

ZohoVaultEntry = collections.namedtuple('ZohoVaultEntry', [
    'secret_name', 'description', 'secret_url', 'secret_data',
    'notes', 'custom_data', 'tags', 'classification', 'favorite',
    'chamber_name'
])


class ZohoVaultConverter(object):
    """Zoho Vault Converter"""

    def __init__(self):
        """Initialize converter"""

        self._database = None
        self._group = None

    def _prepare_db(self, path, password):
        """Prepare KDB database and group"""

        self._database = kppy.database.KPDBv1(
            filepath=path, password=password, new=True
        )

        # This returns boolean, so we need to hunt for the group
        self._database.create_group(title=EXPORT_GROUP)

        for item in self._database.groups:
            if item.title == EXPORT_GROUP:
                self._group = item
                break

        if self._group is None:
            raise RuntimeError("Created group is not found")

    def convert(self, input_path, output_path, password):
        """Convert CSV-ish data exported from Zoho Vault to KDB"""

        self._prepare_db(output_path, password)

        entries = []

        with open(input_path, 'r', encoding='utf-8') as filehandle:
            reader = csv.reader(filehandle)
            # fast-forward through the header
            next(reader)
            for row in [v for v in reader if v]:
                entries.append(self._process_row(row))

        for entry in entries:
            entry["group"] = self._group
            self._database.create_entry(**entry)

        self._database.save()
        self._database.close()

    @staticmethod
    def _process_row(row):
        """Process Vault Entry"""
        if len(row) &amp;gt; 10:
            assert row[10] == ''
        entry = ZohoVaultEntry(*row[0:10])

        secret_data = {}

        for line in [v.strip() for v in entry.secret_data.split('\n')
                     if v != '']:
            key, value = line.split(':', 1)
            secret_data[key] = value

        comment = []

        if entry.description.strip() != '':
            comment.append(entry.description)

        if entry.notes.strip() != '':
            comment.append(entry.notes)

        if entry.custom_data.strip() != '':
            comment.append(entry.custom_data)

        return {
            "title": entry.secret_name,
            "url": entry.secret_url,
            "username": secret_data.get("User Name", ''),
            "password": secret_data.get("Password", ''),
            "comment": '\n'.join(comment)
        }


if __name__ == "__main__":

    if len(sys.argv) != 3:
        print(__doc__)
        sys.exit(1)

    converter = ZohoVaultConverter()
    master_password = getpass.getpass()

    converter.convert(
        sys.argv[1],
        sys.argv[2],
        master_password
    )
&lt;/pre&gt;
&lt;/noscript&gt;&lt;p&gt;Usage:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_bdc97f270770466fadd97aaa27d8af57-1" name="rest_code_bdc97f270770466fadd97aaa27d8af57-1" href="https://www.keypressure.com/blog/zoho-vault-to-keepassx/#rest_code_bdc97f270770466fadd97aaa27d8af57-1"&gt;&lt;/a&gt;$&lt;span class="w"&gt; &lt;/span&gt;pip3&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;kppy
&lt;a id="rest_code_bdc97f270770466fadd97aaa27d8af57-2" name="rest_code_bdc97f270770466fadd97aaa27d8af57-2" href="https://www.keypressure.com/blog/zoho-vault-to-keepassx/#rest_code_bdc97f270770466fadd97aaa27d8af57-2"&gt;&lt;/a&gt;$&lt;span class="w"&gt; &lt;/span&gt;python3&lt;span class="w"&gt; &lt;/span&gt;zohovault2keepass.py&lt;span class="w"&gt; &lt;/span&gt;~/Downloads/zoho-export.csv&lt;span class="w"&gt; &lt;/span&gt;zoho-export.kdb
&lt;a id="rest_code_bdc97f270770466fadd97aaa27d8af57-3" name="rest_code_bdc97f270770466fadd97aaa27d8af57-3" href="https://www.keypressure.com/blog/zoho-vault-to-keepassx/#rest_code_bdc97f270770466fadd97aaa27d8af57-3"&gt;&lt;/a&gt;Password:&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;master&lt;span class="w"&gt; &lt;/span&gt;password&amp;gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And then use &lt;code class="docutils literal"&gt;Database / Import KeePass 1 database&lt;/code&gt; menu entry.&lt;/p&gt;</description><category>copr</category><category>fedora</category><category>greener side</category><category>keepassx</category><category>keychain</category><category>password</category><category>python</category><category>zoho</category><guid>https://www.keypressure.com/blog/zoho-vault-to-keepassx/</guid><pubDate>Sat, 23 Jan 2016 15:43:36 GMT</pubDate></item><item><title>Windows 10: I can't believe I am saying this (Part 1)</title><link>https://www.keypressure.com/blog/windows-10-cannot-believe-part-1/</link><dc:creator>Roman Yepishev</dc:creator><description>&lt;p class="alert info"&gt;This article originally appeared in &lt;a class="reference external" href="https://www.facebook.com/notes/roman-yepishev/windows-10-part-1-i-cant-believe-i-am-saying-this/10153689208330923"&gt;Facebook Notes&lt;/a&gt;. And you
&lt;a class="reference external" href="https://www.keypressure.com/blog/where-are-those-gorgeous-facebook-notes/"&gt;won't find it&lt;/a&gt; through an external search engine, so copying it
here.&lt;/p&gt;
&lt;p&gt;For reasons beyond my understanding, I decided to switch to Microsoft Windows 10
for a brief time to see how greener the grass on the other side actually is.
I left behind the Fedora install I had for the past year (and before that I had
had Ubuntu since 2005), so I was mostly exposed to Gnome 3 environment, all the
goodies the default Fedora repositories could provide, as well as some packages
providing extra multimedia codecs.&lt;/p&gt;
&lt;p&gt;So I got a copy of Windows 10 Pro and...&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/windows-10/desktop.jpg" src="https://www.keypressure.com/galleries/windows-10/desktop.jpg"&gt;
&lt;figcaption&gt;
&lt;p&gt;UI I almost saw on my laptop&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Not really.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;At first I had to fight a bit. It turns out that you can't reliably create a
bootable USB drive of Windows 10 from a Linux machine. A direct write of a DVD
image to the flashdrive got the Setup up and running, but it was unable to copy
the files needed for an install. Unetbootin also failed.&lt;/p&gt;
&lt;p&gt;So I had to go to a store and get a stack of blank DVDs for the first time in 5
years.&lt;/p&gt;
&lt;p&gt;The installation went through, booted into a 1024x768 resolution on a widescreen
display, but as I was creating an account in the Setup the driver got installed
and the panel switched to a native resolution. This was as unexpected as a
message from CUPS back in 2008 saying that my printer was plugged in on my
Ubuntu installation. It just worked.&lt;/p&gt;
&lt;p&gt;Unfortunately, the vendors need to sell new stuff to fuel their R&amp;amp;D and show
profit, so I found that my late-2012 Lenovo E420 does not have a seal of
approval from Lenovo to run Windows 10. And I was in for a surprise to find
that the system downloaded and installed the drivers for power management
(-50% fan noise), sound card  (+100% signal), video adapter (+50% visual
clarity), and the touchpad (which as it turns out actually supports
pinch-to-zoom, whoa).&lt;/p&gt;
&lt;p&gt;Now, remembering that the quirks tables exist in Linux drivers for a reason,
I was pretty sure that something just pretends to be working.&lt;/p&gt;
&lt;p&gt;The UI the system booted to was familiar. The Windows Start menu I used back
in Windows XP days was gone, the replacement live tile thingie was not shocking
(I still remember the feeling of OMG OMG THAT FLYING FULL SCREEN INTERNET
EXPLORER SIGN IN YOUR FACE METRO when I booted a preview version of Windows 8).&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/windows-10/startish.png" src="https://www.keypressure.com/galleries/windows-10/startish.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;Live Tiles - The Weather Tile was too live for me to take a good picture of&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;It turned out that for some reason the constant moving nature of these live
tiles makes me uncomfortable. Whenever I saw some constant animation happening
on my Ubuntu machine, I was almost always hearing elevated interest of the fan
to keep the CPU/GPU temperatures down, so that was really a BAD THING. And that
was not happening here. Probably that Power Management thing did what it was
supposed to do.&lt;/p&gt;
&lt;p&gt;Now, being still fresh after a reinstall I decided to see how well the muxless
hybrid graphics is supported under the only system is was kind-of designed for.
I have a hybrid Intel/AMD setup which I kept in integrated-only mode for the
whole lifetime of my laptop, because that thing just does not work under Linux.
The moment I tried switching either the kernel ABI changed, rendering AMD kernel
driver useless, or Xorg changed an internal structure which the proprietary
driver depended on, or something else equally frustrating happened.&lt;/p&gt;
&lt;p&gt;So I went to the "BIOS Setup" and re-enabled Switchable Graphics.&lt;/p&gt;
&lt;p&gt;The system booted into a native resolution and the fan started to make some
noise. According to the process list, a Catalyst driver was in process of being
installed (yay! Future! Drivers beamed to your device instead of hunting them
on the world wide web). Then this window appeared, prompting me to recall the
backward compatibility stories from Raymond Chen (the old new thing).&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/windows-10/alert-window.png" src="https://www.keypressure.com/galleries/windows-10/alert-window.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;Windows 3.1 called and it wants its font back&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This time it was a friendly message from an unknown application. So I rebooted.&lt;/p&gt;
&lt;p&gt;The OS booted into a 1024x768 resolution and stayed this way for a day.&lt;/p&gt;
&lt;p&gt;Now, if I were running a Linux distro, I would go look at the Xorg log, see what
kernel modules are loaded… But the Event Viewer was of no use. No
graphics-related errors during the boot, Intel Graphics and Media control panel
item just did not start and there was no debug output I could use to find out
what went wrong. The device manager was displaying both video cards as being up
and happily running, and the system info also showed two devices. According to
the system, it was all perfectly fine. According to my eyes, they wanted to pop.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/windows-10/stretch-marks.jpg" src="https://www.keypressure.com/galleries/windows-10/stretch-marks.jpg"&gt;
&lt;figcaption&gt;
&lt;p&gt;Stretch marks all over the UI (Simulated)&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Binging for the answer (nope, "Binging" is totally not a word I should have used
to describe a process of searching at &lt;a class="reference external" href="https://bing.com/"&gt;bing.com&lt;/a&gt;) I found that nobody really knows
how to get the reason of the failure (no usable logs), so the driver reinstall
was the only thing that should have helped. Thinking that the best way to get to
a known good state would be to switch back to the integrated GPU, I ended up
with exactly the same 1024x768 setup, but the screen took a minute (yes, around
60 seconds) to start displaying something after a cold boot, restart, or resume.
I made it worse. That's when I started reading about the compatibility of the
drivers, and found out that my system is not supported.&lt;/p&gt;
&lt;p&gt;Reinstall.&lt;/p&gt;
&lt;p&gt;Yup, with no logs to diagnose, no way back to a good state (system restore
brought me to the same configuration), no actionable items in &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;C:\Intel&lt;/span&gt;&lt;/code&gt;,
which for some freaking reason contained log files for some media-related
service as well as driver installation details, and no support from the vendor,
I decided to give up and reinstall.&lt;/p&gt;
&lt;p&gt;Back to a single Intel integrated GPU. Yay, my eyes are thanking me. A couple
of days later I attempted the same trick, but explicitly installing the
Windows 8 drivers for the GPU stack. I got the Switchable Graphics menu on every
folder in Explorer, got the control panel displaying stuff, but the screen
startup delay returned, now measuring about 30 seconds. Since a laptop would
suspend/resume quite often, I decided to go back to Intel integrated GPU.&lt;/p&gt;
&lt;p&gt;So now I could do some other things in the system, like launching Cortana...&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/windows-10/cortana.jpg" src="https://www.keypressure.com/galleries/windows-10/cortana.jpg"&gt;
&lt;figcaption&gt;
&lt;p&gt;The world is on fire&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Unfortunately, no matter how I screamed at the microphone, the device picked up
only some noise.&lt;/p&gt;
&lt;p&gt;Remember the quirks I talked about before? Yup, it turns out that the driver
Microsoft installed matches the device perfectly - the PCI vendor and device
IDs are covered by the driver, but since manufacturers are honey badgers and
they don't care about playing nice with others, the driver I had to download
from Lenovo had some magic bits tweaked to get the mic working.&lt;/p&gt;
&lt;p&gt;Oh, and then I had fun with the built-in Ricoh MMC/SD card reader too. You
see, I had mixed success with it under Linux, with some cards being unreadable.
It turned out that the driver is not included with Windows 10, but again,
Windows 8 one is good enough. I was able to read all the cards. However, after
a suspend/resume cycle I noticed that "System and compressed memory" process
started chewing up CPU cycles like mad. Of course, no logs or direct
documentation about the bug was discovered with Bing, so I went deeper.&lt;/p&gt;
&lt;p&gt;Mark Russinovich wrote a wonderful "&lt;a class="reference external" href="https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx"&gt;Process Explorer&lt;/a&gt;" - a fancy task manager
for those who want to know as much as possible about the processes on their
systems. It also showed an elevated usage in &lt;code class="docutils literal"&gt;System&lt;/code&gt;. Having opened Properties
/ Threads I was told the offending thread is being busy spinning in
&lt;code class="docutils literal"&gt;risdxc64.sys&lt;/code&gt;, which was a Ricoh-provided driver. Disabling the card reader
via the device manager immediately stopped the abnormal CPU usage.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="/galleries/windows-10/ricoh-cpu-spin.png" src="https://www.keypressure.com/galleries/windows-10/ricoh-cpu-spin.png"&gt;
&lt;figcaption&gt;
&lt;p&gt;Got you!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I would have avoided all these issues if I used a supported system, but problems
happen with any software. It looks like there is a lot of guesswork and magic
involved when something goes wrong.&lt;/p&gt;
&lt;p&gt;At last I felt I accomplished something. I closed the lid of the laptop and went
to sleep, looking forward to more challenges from the OS I hadn't touched in a
long time.&lt;/p&gt;</description><category>bug</category><category>debug</category><category>fix</category><category>greener side</category><category>microsoft</category><category>windows</category><category>windows 10</category><guid>https://www.keypressure.com/blog/windows-10-cannot-believe-part-1/</guid><pubDate>Sat, 26 Dec 2015 19:20:28 GMT</pubDate></item></channel></rss>