I'm Jeff Relf in Seattle, 206/420-5767, Mid 2014, <ME@Jeff-Relf.ME>.
I was born in Seattle, start of 1960.
<Here> is photo of Me.  <Here> is my location, in Seattle. 
■
<DirectX.CPP, Visual C++ 2013> is a small (one-file)
example of how to:
-- Use DirectX 11.1, Direct2D 1.1, DirectWrite, and Direct3D.
-- Replace DirectDraw/GDI+, etc.
-- Draw to a back buffer at a high fps (frames per second).
-- Draw properly scaled/smoothed .JPG files, hardware accelerated.
-- Draw to/from/within bitmaps.
-- Discover if a font exists or not ("FindFamilyName()").
-- Discover if a glyph exists in a font ("HasCharacter()").
-- Discover the width/height of a glyph ("GlyphWH()").

Note: This code needs Windows 8 or later.
ScreenShot (4K/UHD): http://Jeff-Relf.Me/Glyph.JPG

Here's a more complex, yet still simple, example:
  http://Jeff-Relf.Me/X.CPP
  http://Jeff-Relf.Me/X.PNG
■
Physically, my 4K/UHD monitor has 185 dpi ( dots per inch ).
By default, Windows uses the "Smaller, 100%, Default" setting;
i.e. 96 dpi.   

In a stadium, using the actual dpi, say "5 inches per pixel", 
would cause Windows to Crash and die.

On a 500 dpi smart phone,
a 200 dpi setting is better ( because you're closer );
i.e. the physical dpi is just one factor, not thee factor.

My Win8 "Theme": http://Jeff-Relf.Me/Jeff_Relf.Theme.TXT
My CSS: http://Jeff-Relf.Me/userContent.CSS.TXT
        http://Jeff-Relf.Me/userChrome.CSS.TXT
■
ScreenShots of some apps I wrote:
⋅ "Comp.OS.Linux.Advocacy" Regulars, ranked [ Text ].
⋅ My Console/Keyboard.
⋅ Fast/Mindless Monoply, Fast/Mindless Chess.
⋅ Mario, Reversi, Solitair.

<Here> is a sample of my voice, .MP3.
My Win8 Registry Settings to change font faces/sizes.
Some Thoughts: <-- Hope slays reason -->, <-- The Cosmic Horizon -->.
<My C# macros, to automate Visual Studio 2013>
<Here> are the settings for the email/Usenet/Web app I wrote.
<My posts to Usenet ( since February, 2012 )>.
■
Lots of people are on uppers, like Caffeine or Adderall.
Lots of people.

As a result, they blabber on⋅and⋅on about themselves,
without the slightest concern about their audience.
Truly, they don't know their audience.

If they were TV's, you'd switch the channel;
but, because they're people, you think up excuses/lies,
-- anything to exit, without offending.
■
-- On <Usenet> --
Please don't help "Eternal-Noobs.Orgy" censor out
"Content-Type: Text/HTML; charset=UTF-8" posts.

Mixing Fonts is -not- a crime.
WikiPedia and CraigsList allow -Simple- HTML.

Consolas is my text font but, beyond that,
I use "MS Mincho"; ScreenShot: http://Jeff-Relf.Me/X.PNG

Low⋅Cost, Text⋅Only servers are 
the fastest and most reliable; to wit:

  http://usenet.blueworldhosting.com
  http://glorb.com/usenet.php

When not overloaded, 
$5/life binary servers are good too; to wit:
  usNews.BlockNews.NET:119, News.US.Usenet-News.NET:119

If you don't download binaries, it's more than enough gigs. 
■
My "Jeff-Relf.Me" domain⋅name costs me $20+ per year, paid to GoDaddy.
<cPanel hosting>[*] costs me $30 per year, paid to "PacificHost.COM".
[ *: http://www.pacifichost.com/web-hosting.shtml ]

cPanel allows unlimited, "Catch-All" email addresses ( aliases );
e.g. "Usenet@@Jeff-Relf.Me".
[ To set it up, just ask me or PacificHost
  http://www.pacifichost.com/contact-us.shtml ]

That's unlimited "transfer" ( gigabytes ), unlimited disk storage,
unlimited sub⋅domains, password⋅protected folders,
<yaml filtering ( to block select email aliases )>[*], etc.
[ *: http://Jeff-Relf.Me/filter.yaml.TXT ]
■
The peer-to-peer nature of the Internet, BitTorrent, 
Usenet and email, is what makes them so robust.

Multiple clients accessing a single server
does little to negate that fact.

When you've got 10 servers to chose from,
and when you can run your own server, if you want,
the loss of any one server doesn't matter so much.

Peer-to-Peer is robust; 
Usenet is nearly indestructible.
■
My ( now ex ) wife wanted more kids ( six, in fact ),
and I did not ( I was done at two ); so she divorced me,
took money ( for child support ) and married her new lover
( because he was a "good Mormon" and I was an atheist ).

I decided I wouldn't be her slave, (Child Support) laws be damned.
[ Note: Child Support laws are good, I just fucked up, badly ]

Lesson learned: If they can take it from you, it isn't really yours.
Money and kids aren't really yours.
Dreams, Skills and Free Time matter more.
■
Some of the Usenet threads/topics I've been in:
  <Alt.Free.Newsservers>, <News.Software.Readers>,
  <Comp.OS.Linux.Advocacy>, <Sci.Physics>

<Here> is my web presence, last 3 Months, Google ranked, not by date.
■
Photos of my rooming house ( I'm the manager ):
  Front of House, Back, Bath, the Kitchen, a Room.
■
I don't need a jet to get "jet lag".

If, today, I sleep from 6 AM to 2 PM;
then, likely, it'll be 9 AM to 5 PM next week.
■
Once, I could use Google to see who was talking about me... no longer.

Usenet is like those "Bum Fight" videos, it's a free for all.
As such, it's not worth indexing; in contrast, Wikipedia ⋅is⋅ worth indexing
-- Google likes it, because it's moderated, filtered.

So Google has been pulling out of the "Usenet search" thing, slowly;
worse, no one wants to take their place... no one.

Effectively, Google now confines your search to a particular newsgroup.
But it only tells you what thread you're in, not where in the thread,
and it's sorted by the age of the thread's most recent post.

You can use Google Groups to point to a Usenet article, like this:

  https://groups.google.com/forum/#!original/News.Software.Readers/dId7J3Kp3Hk/01ZkN9-Q8vUJ

Which is a link to the source, header and all, unformatted.

But, when you hit the big "Back Arrow" button,
it places you on the proper article, in the thread/topic,
properly formatted, on the proper page of the thread/topic ! !

It's so slow ( the JavaScript ), FireFox asks me if I want to continue.

Search by Message-ID never really worked,
and you can't really seach all of Usenet ( it's VERY poorly indexed ),
but you can still find/link to your articles, in your newsgroups.

Articles that spawn a huge thread/topic, lots of replies,
are more likely to be indexed, so they appear in a normal Google Search.
Few posts meet that criteria, so don't get your hopes up.

Low⋅Cost, Text⋅Only servers are the fastest and most reliable; to wit:

  <Blue World Hosting>

When not overloaded, <some binary servers>[*] are good too; for $5/life,
you get more than enough gigs, assuming you don't download binaries.
[ *: "usNews.BlockNews.NET:119" and "News.US.Usenet-News.NET:119" ]
■
From my <UserContent.CSS ( for FireFox, to skin web pages )>,
here's some RegEx you might like:

  @-moz-document regexp("^(?!https?://[^.]*?.google).*") {

    :not(#▲):not(#▲) 
    { Position: Static !important;  Z-Index: auto !important;  } }

"^(?!https?://[^.]*?.google).*" matches non⋅Google URL's.

[ Google's stuff is handled separately, via "@-moz-document" statements.

  "Position: Static !important;" stops shit from overlapping,
  blocking stuff behind it, when the size of objects change to much.
  Google Maps, and Google's fly⋅out menus, can't have this style/CSS. ]

"^(?!)" means: "Any URL that doesn't start like this".

"https?" matches "http" and "https".
Here, the "?" matches zero|one "s" letters.

"[^.]*?" matches "www" and "map", i.e. the sub⋅domain, before the dot.
Here, the "?" stops the "[^.]*" from being "greedy";
otherwise, the parser might skip past the first match.

You see, '^' and '?' have MULTIPLE uses, depending on the context.

  In a dark room, like mine, bright⋅white backgrounds SUCK !
  Sadly, my <"High Contrast, Light⋅on⋅Black", Windows⋅8 theme>
  removes background images from FireFox's web pages !

  [ instead, it should detect bright⋅white images and invert the colors ]

  So, much of the CSS in my "UserContent.CSS" is there
  to give web pages better backgrounds.

  To see pages "as intended", I use Google Chrome,
  because it ignores my Windows⋅8 theme.
■
Generally, when I see a .XML file, I assume it's data.
Most settings files these days are .XML, not .INI or .REG.
But there's countless variants: .xHTML, .HTML5, .XUL, etc.

Today, many people use cell phones, instead of Microsoft Windows.
Androids are mostly Java, running on top of Linux.
Java sucks, I don't own a cell phone, nor would I ever.

I use VoIP ( Bria⋅3 ) on my Windows⋅8 desktop PC.
My 20 Watt PC is ALWAYS ON; it has no fans and no spinning disks.
It has 8 gigabytes of fast RAM, and a 256 gigabyte, 6 gigabits/sec SSD.

Besides annoying the shit out of your friends,
cell phones are NOT always on, so you miss "missed calls";
i.e. they're too "smart" to be a MERE PHONE.

One of my SIP/VoIP providers is free, the other is $8 per LIFETIME.
Now, if you're so STUPID that you'd spend $90/month on a device
that's more of an annoyance than a phone...

...well, God bless you, because you're going to need it.

Meanwhile, I'll be enjoying my never⋅off PC/phone,
my high⋅resolusion monitors ( soon 4 kilo⋅pixels high, I hope ),
and my 35 button mouse.

  Sans keyboard, my Logitech g600 mouse has 35 LOGICAL "Buttons"
  that can be assigned complex "Macros" ( i.e. Lua scripts ).

  A far⋅right gShift button, to the right of the Right⋅Click button,
  nearly doubles the number of logical buttons ( Screenshot ).

  For example, hitting one button ( perhaps gShifted ),
  Right⋅Clicks ( up and down ) and hits "q" to invoke
  FireFox's "Page Inspector" from the context menu.

  The Right⋅Click gives the page/window the keyboard "focus"
  because, too often, it doesn't have it.

  Similarly, hitting one button: Left⋅Clicks ( up and down )
  and then does a Ctrl⋅D; so the location of the text⋅caret
  ( i.e. the insertion point ) changes before the Ctrl⋅D, to "cut" a post.

  Also, < gShift Left⋅Click > can be assigned to Shift⋅Click,
  Ctrl⋅Click or Alt⋅Click, to select blocks of text in Visual Studio.

Since 1993, "Visual C / DevStudio" macros
have been an essential part of my daily life.

I have mouse buttons, and toolbar buttons, that invoke macros.

  Toolbar buttons: http://Jeff-Relf.Me/Visual-Studio-2013-Toolbars.PNG
  Visual Studio 2013 Macros: http://Jeff-Relf.Me/Snippets.TXT
■
Usenet isn't WikiPedia or CraigsList, so Google doesn't fully index it.

Apparently, the first post of a long/interesting thread is well indexed.

You can improve a Google search by 
limiting yourself to more recently indexed pages.

Take, for example, <This Search>[*].
[* "Jeff Relf" on the web, last 3 months, Google ranked ]

   Note the URL:

     Google.COM/search?q= "Jeff-Relf.ME" | "Jeff Relf" &num=50&tbs=qdr:m3&filter=0
       
       Links to my website (Jeff-Relf.ME) are boosted above "Jeff Relf".
       "|" means "OR".
       "filter=0" shows more results; duplicates are NOT filtered out.

       "tbs=qdr:m3" gives me the last 3 Months, Google ranked.
       Nicely, the "indexed date" is listed for each search result.

Search Usenet, last 2 Weeks, like this:

  Google.COM/groups/search?q= "Jeff Relf" &num=50&sitesearch=google.com&scoring=d&as_qdr=w2
■
97% of Climate Science Papers Agree, Global Warming Is Man-made.
■
In FireFox, my "Search-Bar" has 20 Search "Providers" ( i.e. methods ).  
  <screen⋅shot>

To install one of the following search methods,
enable "Global" JavaScript or go to a page that allows JavaScript.

  Google, Google ranked:
    www.google.com/search?q= {searchTerms} &num=50
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/G.XML");
    
  Google, Last 3 Months, Google ranked:
    www.google.com/search?q= {searchTerms} &num=50&tbs=qdr:m3
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/rG.XML");
  
  Google WikiPedia:  
    www.google.com/search?q= {searchTerms} site:WikiPedia.ORG &num=50
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/Wiki.XML");
    
  Google images:  
    images.google.com/images?q= {searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/Images.XML");

  Google.Define a word or term:  
    www.google.com/search?q= define:{searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/Spell.XML");

  Find a word or term in the "Urban" dictionary:  
    UrbanDictionary.COM/define.php?term= {searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/U.Dict.XML");

  Find a word or term in a normal dictionary:  
    Dictionary.COM/search?q= {searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/Dictionary.XML");
    
  Thesaurus:
    Thesaurus.COM/search?q= {searchTerms}
    Thesaurus.XML

  Google a YouTube video:  
    www.google.com/search?q= {searchTerms} site:youtube.com &num=50
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/YouTube.XML");

  Google Newspapers:
    news.google.com/news/search?q= {searchTerms}&scoring=n
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/nG.XML");

  Given Map:
    maps.google.com/maps?q= {searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/GM.XML");

  Google MicroSoft ( for help ):
    www.google.com/search?q= {searchTerms} site:microsoft.com
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/MicroSoft.XML");

  IP to City/Domain 1:
    http://whatismyipaddress.com/ip/{searchTerms}
    javascript: window.external.AddSearchProvider("http://jeff-relf.me/IP.1.XML");

  IP to City/Domain 2:
    http://www.infosniper.net/index.php?ip_address={searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/IP.2.XML");

  Search for a Torrent:
    KAT.PH/usearch/{searchTerms}/?field=time_add&sorder=desc
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/Kick.XML");
  
  Google "Alt.Free.Newsservers" (a Usenet newsgroup), Last 2 Weeks, newest first:  
    groups.google.com/forum/#!topicsearchin/Alt.Free.Newsservers/{searchTerms}|sort:date
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/GG.XML");

  Find post by its Message⋅ID ( it seldom works ):
    groups.google.com/forum/#!search/messageid:{searchTerms}
    javascript: window.external.AddSearchProvider("http://Jeff-Relf.Me/G+mID.XML");
■
emacs is backwater because it doesn't understand HTML/UTF・8.

Thunderbird can because:

  Mozilla Thunderbird and Firefox are joined at the hip.
  hey're delevopled in tandom.  They're a fork of Netscape.

My Windows 8 "Theme".
Registry Settings to change font faces/sizes.

Change the color of Web Pages, FireFox and (DOS) "Console 2".

To skip the Start Screen ( Metro ), see:  WinAero.COM

My 20 watt PC/VoIP⋅phone boots to a blank Windows⋅8 desktop; Screenshot.
The taskbar has one "pinned" icon; i.e. my "Start Button"
( I used Visual C++ ); Screenshot.

To add a command/app to my "Start Button" app ( X.EXE ), I edit X.HTM.

Like this:

  \\       App  /Windows/eXplorer.EXE /n,\__
  jEd      App  /__/EXEs/Visual-Studio-2013/Common7/IDE/devEnv.EXE \__\_Source\X.SLN
  //  jEd0     App  /__/EXEs/Visual_Studio_2010/Common7/IDE/devEnv.EXE \__\_Source\X.SLN
  Web      App  /__/EXEs/FireFox/Firefox.EXE
  InEx     App  "/Program Files (x86)/Internet Explorer/IExplore.EXE"
  ME       App  /__/EXEs/FileZilla/filezilla.EXE -c 0/Me
  Bac      App  /__/EXEs/FileZilla/filezilla.EXE -c 0/Bac
  JXH      App  /__/EXEs/FileZilla/filezilla.EXE -c 0/JXH
  ABA      App  /__/EXEs/FileZilla/filezilla.EXE -c 0/ABA
  WinAmp   App  /__/EXEs/WinAMP/CLamp.EXE /Random ON /PLclear /PLadd \__\MP3\*.MP3 /Next /Play
  Bria     App  /__/EXEs/Bria/Bria3.EXE
  DOS      App  /__/EXEs/Console2/Console.EXE -r "/K"
  unDel    App  /Windows/eXplorer.EXE /n,\$Recycle.Bin\S-1-5-18
  unIns    App  Control appWiz.CPL
  ⏉       App  /__/_Source/EXE/Games.EXE
		ClrPck   App  /__/EXEs/ColorPicker/ColorPix.EXE
  Thun     App  /__/EXEs/Thunder/Thunderbird.EXE -news news://usNews.BlockNews.NET:119/l5qno0$7g2$1@dont-email.me
		╳        App  @/__/X  /__/Backup/X.EXE
■
Most often, the best code ( for me, and only me ) is the code I wrote.
As a programmer, text comparison is like water; an essential, daily thing.
So I wrote my own diff routine ( it's part of X.EXE, my console/newsreader ).

At it's heart, and right off the bat, it skips past the unchanged part
at the beginning and ends of lines/files; top, bottom, left and right.
I call this "the Pinch".

Then it "peels off" ( and prints ) the differences at the ends...
Pinching and Peeling, from the edges to the middle.

Although the algorithm is simple, the finer deatials are not.
Nothing in the upper half can match anything in the lower half,
for example; "a b" is not equal to "b a" because it's been shuffled.

<Here> is some example output.

The core of it looks like this:

LnP F, _F ;  LnA BBx, EEx, _BBx, _EEx, BB_Sync, EE_Sync, _BB_Sync, _EE_Sync ;

#define Same?  ( F && _F && Eq( F, _F ) )

#define  Same⋁Sync   ( Data⋁( F, EEx, EE  ), Data⋁( _F, _EEx, _EE  ), Same? )
#define  Same⋀Sync   ( Data⋀( F, BBx, BB  ), Data⋀( _F, _BBx, _BB  ), Same? )

#define  Same⋁Pinch  ( Data⋁( F, BBx, EE  ), Data⋁( _F, _BBx, _EE  ), Same? )
#define  Same⋀Pinch  ( Data⋀( F, EEx, BBx ), Data⋀( _F, _EEx, _BBx ), Same? )

#define EoFS_Dwn  ( S = BB_Slow <= EE_Slow, _S = _BB_Slow <= _EE_Slow, F = BB_Fast <= EE_Fast, _F = _BB_Fast <= _EE_Fast )
#define EoFS_Up   ( S = EE_Slow >= BB_Slow, _S = _EE_Slow >= _BB_Slow, F = EE_Fast >= BB_Fast, _F = _EE_Fast >= _BB_Fast )
#define Top_Fast  ( BB_Fast = BB_Slow, _BB_Fast = _BB_Slow )
#define Bot_Fast  ( EE_Fast = EE_Slow, _EE_Fast = _EE_Slow )
          
Data⋁( LnP &P, LnA &PP, LnA EE ) { while( ( P = ++PP >= EE ? 0 : *PP ) && !*P );  }
Data⋀( LnP &P, LnA &PP, LnA BB ) { while( ( P = --PP <  BB ? 0 : *PP ) && !*P );  }

int SyncDwn( LnA BB, LnA EE, LnA _BB, LnA _EE ) {
  BB_Sync = EEx = BB, _BB_Sync = _EEx = _BB, EEx--, _EEx-- ;  return Same⋁Sync && Same⋁Sync ;   }

int SyncUp( LnA BB, LnA EE, LnA _BB, LnA _EE ) {
  EE_Sync = BBx = EE, _EE_Sync = _BBx = _EE ;  return Same⋀Sync && Same⋀Sync ;   }

Pinch( LnA BB, LnA EE, LnA _BB, LnA _EE ) { 
  BBx = BB - 1, _BBx = _BB - 1 ;  while ( Same⋁Pinch );
  EEx = EE,     _EEx = _EE ;      while ( Same⋀Pinch );  EEx++, _EEx++ ;  }

Peel( LnA BB, LnA EE, LnA _BB, LnA _EE ) { int rv, Top, Bot, S, _S, F, _F ;  LnP t, _t ;
  LnA  BB_Slow, _BB_Slow,  BB_Fast, _BB_Fast,   EE_Slow, _EE_Slow, EE_Fast, _EE_Fast ;
  Top = Bot = 0, BB_Slow = BB, _BB_Slow = _BB, EE_Slow = EE, _EE_Slow = _EE, Top_Fast, Bot_Fast ;
  ⋅Top:    if ( Top ) goto ⋅Bot ;  EoFS_Dwn ;  if ( !S && !_S ) { Top = 1, BB_Sync = 0 ; goto ⋅Bot ;  }
  if ( F && _S ) if ( SyncDwn( BB_Fast, EE, _BB_Slow, _EE ) ) { Top = 1 ; goto ⋅Bot ;  } else BB_Fast++ ;
  if ( S && _F ) if ( rv = SyncDwn( BB_Slow, EE, _BB_Fast, _EE ) ) { Top = 1 ; goto ⋅Bot ;  } else _BB_Fast++ ;
  if ( EoFS_Dwn, !( F && _S || S && _F ) ) BB_Slow += S, _BB_Slow += _S, Top_Fast ;
  ⋅Bot:    if ( Bot ) goto Skip ;  EoFS_Up ;  if ( !S && !_S ) { Bot = 1, EE_Sync = 0 ; goto ⋅Top ;  }
  if ( F && _S ) if ( SyncUp( BB, EE_Fast, _BB, _EE_Slow ) ) { Bot = 1 ; goto ⋅Top ;  } else EE_Fast-- ;
  if ( S && _F ) if ( rv = SyncUp( BB, EE_Slow, _BB, _EE_Fast ) ) { Bot = 1 ; goto ⋅Top ;  } else _EE_Fast-- ;
  if ( EoFS_Up, !( F && _S || S && _F ) ) EE_Slow -= S, _EE_Slow -= _S, Bot_Fast ;
        
  Skip:
  if ( Top && Bot ) {
    if ( !BB_Sync && !EE_Sync ) BB_Sync = EE, _BB_Sync = _EE, EE_Sync = EE, _EE_Sync = _EE ;
    else if ( !BB_Sync ) BB_Sync = EE_Sync, _BB_Sync = _EE_Sync ;
    else if ( !EE_Sync ) EE_Sync = BB_Sync, _EE_Sync = _BB_Sync ; return ;  }    goto ⋅Top ;  }
■
I wrote a super⋅fast, mindless version of Monoply.
It comes with a fast, mindless chess variant, included.

To download it, Click Here.
I only runs on Windows 8 or later.

Initially, the pieces are set up semi⋅randomly.
Pawns start one row ahead, both sides.

I'm always "white" ( pinkish, actually ).
I have a queen, but no king, so I can't lose.
My opponent, "Mr. PC", has a king but no queen.

Often, I let Mr. PC give me hints;
middle⋅click starts the calculation, left⋅click ends it.

The main thing, of course, is to expose the king.

A flick of the mouse wheel un⋅does/re⋅does moves.

unLike real chess, the goal is to capture all but the king,
and wind up with as many queens possible.  Checkmate must be avoided.

Left⋅Clicking with the right mouse button down removes pieces.
To add pieces, notch the mouse wheel while the right mouse button is down.
■
I close apps I'm not using, to free my mind;
don't even want them "pinnned" to the taskbar, as icons.

I never see the "Start Screen" ( Windows 8, Metro ); I boot to
the desktop where only X.EXE greets me, instead of the start button ( Win7 ).
I re⋅boot once every few months, I suppose.  My 30 watt, full-size desktop PC
is diskless and fanless, including a 500 watt fanless power⋅supply.

My app launcher/toolbar now ⋅TOTALLY⋅ stops newly launched apps
from stealing the "foreground" ( i.e. the keyboard/mouse focus )
and blinding me with that nasty "Black to White", bright flash.

For a taste (yuck!), see below. "⏉Win" is the Top⋅Most window.

  #define ⏉modeOn  ( prev@⏉ = ⏉mode = 1, ⏉most( HWND_TOPMOST ) )

  #define Norm  ( ⏉mode = 0, ⏉most( HWND_NOTOPMOST ) )  // No Top Most.

  #define ⏉most( TM )  (  \
    SetWindowPos( Win, TM, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE ),  \
    LockSetForegroundWindow( TM == HWND_TOPMOST ? LSFW_LOCK : LSFW_UNLOCK ) )

  #define ⏉  SetForegroundWindow(Win)

  #define @⏉  ( _@⏉ = ( ⏉Win = GetForegroundWindow() ) && Win == ⏉Win )

My launcher must rapidly request the Foreground, 30 times a second;
otherwise, Windows takes it from me without notice, the fucker.
 
  Windows tells me that I've lost the keyboard/mouse AFTER the fact,
  not before, so I have to bombard it with SetForegroundWindow() ASAP.
  This seems wrong, of course, but I see no alternative.

Moving the cursor to Win8's taskbar stops this "Top⋅Most, Bombarding",
giving me easy access to my newly launched app, sans White⋅Flash.
■
« Jeff Relf was the programmer for the project and 
  contributed to the design of administrative processes. »
  −− BankExec™ 2009 Decision Manual, Copyright © 2011 (PDF)

To this day, and beyond, I'm coding BankExec™.  20 years now.
■
FireGestures JavaScript to magnify images 1.667 times

" var node = FireGestures.sourceNode ;
  if ( ! ( node instanceof HTMLImageElement ) )  return ;
  node.width *= 1.66666667 ;  ".

■
Who I am ( Personal info )

I was born in Seattle at the start of 1960.

My dad, after being a WWII pilot ( catching the very end of it )
became a tool and die maker, first in partnership with Jeff Fluke,
later on the team that designed and built the 747.

My dad's dad ( Gerald Relf ) was a banker for the Federal Reserve.
Back in the day ( in Seattle, 1940 ), 
bankers sat around a table and exchanged each bank's bags.

My mom's dad ( Robert Grass ) was a Washington state senator
and a lawyer, working out of what was, at the time,
the tallest building west of the mississipi, the Smith Tower.

Seattle has always been a boom/bust town
and Boeing had hit hard times in 1971,
people were leaving en masse.

Also, being Mormons, my dad felt the Seattle/University drug scene
had engulfed two of his kids... one of my brothers is/was
a paranoid schizophrenic... so, in 1972, he moved us to Utah.

My first programming was on HP/TI calculators starting around 1973-74.
By 1976, I was programming the HP 67 with it's magnetic strips.

Me ( Jeff Relf ), back in 1976, when I was 16 ( Orem Utah ).
My mom, dad ( Bill ), and a brother ( Pete, age 18 ), in 1976 ( Orem Utah ).

My dad's mom ( age 73 ) holding her GREAT⋅grand⋅daughter, in 1976 ( Seattle ).
My sole sister ( Diana, then 22, Seattle ) and her first daughter.

My brother ( Bill Jr. ) born in Seattle, 1956, in Provo Utah.

Here is a photo of Sarah ( Wallace ) Pruse ( my friend )
visiting her daughters, Gianna and Ginette.
■
Work:
    
  JianXin Huang < HarryQH<@>Hot Ξ Mail.COM >  // Seattle
  ChipH<@>UW.EDU  //  Tucson
  TSchrank<@>ABA.COM  //  Washington DC

Family:
    
  Diana ( Relf ) Harkcom < Harkcom<@>Hot Ξ Mail.COM >  //  Kirkland WA
  Peter.Relf<@>EMC.COM  // Sandy Utah

Friends:
    
  Melaney Petty < Spam4mel<@>g Ξ Mail.COM >  // Seattle
  Sarah ( Wallace ) Pruse < ICantForTheLifeOfMe<@>Ya Ξ hoo.COM >  // Tampa
  Michael Brickler < MBrick02<@>Ya Ξ hoo.COM >  //  Eagle-Rock VA  24085
■