Packetizer Logo
 

Paul E. Jones' Blog

Scott Adams' Financial Advice

December 27, 2020

Today, I was listening to Scott Adams daily video blog. As the creator of Dilbert, Scott Adams is well-known through that cartoon for highlighting the stupidity often found in the corporate world. In this video (episode 1233) he mentioned that he had outlined a list of financial advice and suggested we search for it. He said that he wanted to write a book about financial advice but gave up since it really boiled down to just these ten things and the rest of the “financial advice” industry is more-or-less a fraud.

Here is his list of recommendations:

  • Make a will
  • Pay off your credit card balance
  • Get term life insurance if you have a family to support
  • Fund your company 401(k) to the maximum
  • Fund your IRA to the maximum
  • Buy a house if you want to live in a house and can afford it
  • Put six months’ expenses in a money market account
  • Take whatever is left over and invest it 70% in a stock index fund and 30% in a bond fund through any discount brokerage company and never touch it until retirement
  • If any of this confuses you, or you have something special going on (retirement, college planning, tax issue), hire a fee-based financial planner, not one who charges you a percentage of your portfolio

I would make one suggested change. Buy a house once you find yourself in a fixed location. Regardless of whether you are renting or buying, you are paying for a place to live. If you are renting, though, you are essentially buying somebody else’s home or business.

Permalink: Scott Adams' Financial Advice

How to Pronounce JSON

December 4, 2020

Click on this link to learn how to pronounce JSON.

Permalink: How to Pronounce JSON

How to Pronounce GIF

December 4, 2020

Click on this link to learn how to pronounce GIF.

Permalink: How to Pronounce GIF

Rise of New Technology Platforms

November 8, 2020

When new innovations come along, inevitably those innovations will be copied. It happens every time in every industry, so it is no surprise to see several new video platforms, social networking platforms, and messaging platforms get created in recent years. What is unfortunate, though, is that I think people are often unaware they exist.

Today, I received a message about "Rumble" being one of the top apps on the Apple app store. How could I not have heard of this platform and it be ranked so high? I know why: I usually have my head down working and I don't get so engaged in many of the new platforms that come along.

That said, there is something refreshing about seeing new platforms emerging and so I decided to spend a few minutes making a list of the new platforms I've discovered in recent months and years. If you know of one I should add to the following list, send me an email (ahem, yeah, I still use email mostly) or a message via Telegram (I'm relatively new to that platform).

Video Platform

Social Media

Messaging

Live Streaming

Permalink: Rise of New Technology Platforms

America, Stop Listening to the WHO and Much of What the CDC Says

April 4, 2020

When the new coronavirus (COVID-19) became known to me in early January, I took interest in it since I am married to a woman from China and have family there. My wife and I would talk about it daily. I was tracking the infection rate and getting tips on how to avoid it.

All the while, I was absolutely dumbfounded that the WHO was recommending people not wear masks. Even as late as March 31, 2020, CNN was reporting that the "WHO stands by recommendation to not wear masks". That is absolutely stupid. The WHO was also reporting incorrect death rates. I was looking at the data China was publishing, and I kept seeing far higher death rates. Finally, the WHO reported that the death rate was 3.4%. That was a closer number, but still low. China was clearly tracking over 4% and some other countries are tracking even higher. Spain's death rate stands at over 9% as of this writing. The WHO simply cannot be trusted, so do not listen to them.

Yes, wear a mask! A mask isn't just to prevent you from spreading it to others. That seems to be the new claims from the US CDC, but even that’s misleading. It does help with that, but a mask also helps prevent getting it. The reality is that they are just concerned that you might buy the masks the medial teams need. In fact, they made that a bit clearer in a tweet. The reality is that a surgical mask or an N95 mask is absolutely your best defense if you must be out in public, but any good mask is better than no mask. The best defense, of course, is to not be out in public.

I think everyone has heard many of the recommendations about washing your hands, keeping distance between yourself and others, cleaning anything that enters your home, etc. I have also heard claims that drinking hot liquids will help. I have no evidence to support the claim, but I have seen "fact checking" sites say it does not help. At this point, I do not trust any site that claims anything does or does not work. What I can tell you is that pretty much everyone in China is required to wear a mask in public and at work. Many businesses require employees to drink hot liquids before shifts start. It is either that or gargling hot salt water. Given China's success rate at combating this virus, I put more stock in the common practices there than I do in what "experts" are telling us in the west.

By all means, do not listen to people like this:

The bottom line is this: if it makes sense, even if remotely helpful, do it. Help protect yourself and your loved ones.

Permalink: America, Stop Listening to the WHO and Much of What the CDC Says

Eric Ciaramella, Alleged Ukraine Whistleblower

February 14, 2020

Something is seriously wrong in America when a Senator mentions the name Eric Ciaramella, the alleged whistleblower who raised concerns with Adam Schiff that then led to the Impeachment of Donald Trump, and the video from his talk on the Senate floor is removed by YouTube.

Something is very, very wrong.

Permalink: Eric Ciaramella, Alleged Ukraine Whistleblower

Preventing Windows 10 from Rebooting after Installing Updates

September 18, 2016

Microsoft made the dumbest decisions I've ever seen with Windows 10 to simply download updates, install them, and then reboot your machine for you! I've lost work I was doing several times and finally decided to track down a solution.

Here is what seems to be working for me.

1) Run "gpedit.msc". 2) Under "Computer Configuration" -> "Administrative Templates" -> "Windows Components" -> "Windows Update"... 2a) Select "Configure Automatic Updates", select "enabled", select "3 = Download the updates automatically and notify when they are ready to be installed", uncheck "install during automatic maintenance". I also checked "install updates for other MS products", though I'm not sure if this has any effect. 2b) Under "No auto-restart when logged on users for scheduled automatic updates" select "Enabled". 3) Run "gpupdate /force".

This works for Windows 10 Pro. I believe that "Home" versions may not have the ability to manipulate policies, so you just have to live with the crap from Microsoft, I guess.

Permalink: Preventing Windows 10 from Rebooting after Installing Updates

Dynadot Adds Support for DNSSEC

November 24, 2013

I posted a blog entry talking about configuring DNSSEC. When I wrote that blog entry, very few registrars actually supported DNSSEC. One of the registrars that I use (Dynadot) did not. Today, though, they do! I was excited to discover that, though I never saw an announcement about it.

I did a little searching via Google and learned that there are actually several registrars that now support DNSSEC! Perhaps people are finally taking security a little more seriously.

I also found another list of registrars that includes, among other things, a clear indicator as to whether the registrar supports DNSSEC or not. This might be useful when you are looking to register or transfer a domain name. For whatever reason, ICANN's list still does not show that Dynadot supports DNSSEC.

Permalink: Dynadot Adds Support for DNSSEC

Using WebFinger to Simplify Bitcoin Payments

September 28, 2013

For a number of years, users of Bitcoin have expressed a desire to use email addresses as a means of sending Bitcoin payments. The reason is that the typical bitcoin address looks like this: 17XoqvUCrf12H7Vc7c7uDxib8FDMXFx2p6. Trying to accurately convey that string of characters to somebody so they can enter it in manually is error prone. It's far simpler to request them to just send money to an address like paulej@packetizer.com.

Making bitcoin friendlier for the average person involves the use of WebFinger. WebFinger is a very light-weight protocol published by the IETF September 27, 2013 that allows one to map a URI (like an email-type address) to a set of other URIs. As a very simple example, this is a subset of what you get if you query my WebFinger server for paulej@packetizer.com:

Source Code

$ curl https://packetizer.com/.well-known/webfinger?resource=acct:paulej@packetizer.com

{
  "subject" : "acct:paulej@packetizer.com",
  "aliases" :
  [
    "h323:paulej@packetizer.com"
  ],
  "properties" :
  {
    "http://packetizer.com/ns/name" : "Paul E. Jones",
    "http://packetizer.com/ns/name#zh-CN" : "保罗‧琼斯",
    "http://packetizer.com/ns/activated" : "2000-02-17T03:00:00Z"
  },
  "links" :
  [
    {
      "rel" : "http://webfinger.net/rel/avatar",
      "type" : "image/jpeg",
      "href" : "http://www.packetizer.com/people/paulej/images/paulej.jpg"
    },
    {
      "rel" : "http://webfinger.net/rel/profile-page",
      "type" : "text/html",
      "href" : "http://www.packetizer.com/people/paulej/"
    },
    {
      "rel" : "http://packetizer.com/rel/blog",
      "type" : "text/html",
      "href" : "http://www.packetizer.com/people/paulej/blog/",
      "titles" :
      {
        "en-us" : "Paul E. Jones' Blog"
      }
    },
    {
      "rel" : "http://schemas.google.com/g/2010#updates-from",
      "type" : "application/atom+xml",
      "href" : "http://www.packetizer.com/people/paulej/blog/blog.xml"
    },
    {
      "rel" : "http://bitcoin.org/rel/address",
      "href" : "bitcoin:17XoqvUCrf12H7Vc7c7uDxib8FDMXFx2p6"
    }
  ]
}

What you see in the output is a set of link relation types and links. The last one on the page is a bitcoin address. Bitcoin wallet software could issue a query to my WebFinger server and receive this address and use it. It’s that simple.

What's presently shown in my example is static, but it would not have to be. For example, if I used blockchain.info as my wallet, I might put something like this into WebFinger:

Source Code

{
  "rel" : "http://bitcoin.org/rel/payments",
  "href" : "bitcoin:17XoqvUCrf12H7Vc7c7uDxib8FDMXFx2p6?
           request=https%3A%2F%2Fblockchain.info%2Fr%3Fid%3Dpaulej"
}

Now, when the user enters my email address, they basically get back a payment API address. I would assume the subsequent query the wallet makes to blockchain.info would contain the actual PaymentRequest message as per BIP70 (versus the static 17XoqvUCrf12H7Vc7c7uDxib8FDMXFx2p6).

To make things even simpler, we just do this:

Source Code

{
  "rel" : "http://bitcoin.org/rel/payments",
  "href" : "https://secure.packetizer.com/bitcoin_address/?account=paulej"
}

Note that if you do a GET on that URI on my server as of this writing, you get get a bitcoin address. I have not actually implemented BIP70.

None of these procedures have been adopted by the Bitcoin community, yet, but it does highlight simple and secure ways of conveying addresses that are less prone to error and use the familiar e-mail address.

Permalink: Using WebFinger to Simplify Bitcoin Payments

WebFinger Makes the Web Friendlier

September 16, 2013

WebFinger is a new IETF protocol that allows one to discover information about people and entities on the Internet. It is a RESTful protocol that returns a JSON object (referred to as a JRD) containing a set of aliases, properties, and links related to a given URI.

WebFinger is not a protocol that scours the Internet looking for information about people. Rather, it is a protocol that enables a requesting entity to retrieve specific information that is publically and purposely shared via a WebFinger server. To give a concrete example, suppose you are a member of a social networking site, wherein you can post your profile picture, publish your contact information (e.g., address, phone number, and email address), and your name. The social networking site probably has privacy mechanisms so that you can mark that information to be shared with only certain people, groups of people, or publically. If the social networking site implements WebFinger, then any information marked as “public” might be available via a WebFinger query.

Now, you might be asking yourself why anyone would care about this. Well, imagine visiting a blog and entering your email address in order to post a comment. If you publish information via WebFinger, it would be possible for that other blog to retrieve that information. So, you would not have to publish a new picture of yourself or re-enter your name. The blog could retrieve it automatically for you, just using your email address. That’s very cool.

Now, while WebFinger can work with any URI, typically clients and servers utilize the “acct” URI (refers to a user’s account) to query for information about a person. For example, my email address is paulej@packetizer.com and my acct URI is acct:paulej@packetizer.com. A blog I might visit would issue a query to the WebFinger server at packetizer.com asking for information about “acct:paulej@packetizer.com”. The response would be the JSON document I described above.

Just to show a simplified example, this is what part of the response message might contain if the server were queried using the “curl” command.

Source Code

$ curl https://packetizer.com/.well-known/webfinger?resource=acct:paulej@packetizer.com

{
  "subject" : "acct:paulej@packetizer.com",
  "aliases" :
  [
    "h323:paulej@packetizer.com"
  ],
  "properties" :
  {
    "http://packetizer.com/ns/name" : "Paul E. Jones",
    "http://packetizer.com/ns/name#zh-CN" : "保罗‧琼斯",
    "http://packetizer.com/ns/activated" : "2000-02-17T03:00:00Z"
  },
  "links" :
  [
    {
      "rel" : "http://webfinger.net/rel/avatar",
      "type" : "image/jpeg",
      "href" : "http://www.packetizer.com/people/paulej/images/paulej.jpg"
    },
    {
      "rel" : "http://webfinger.net/rel/profile-page",
      "type" : "text/html",
      "href" : "http://www.packetizer.com/people/paulej/"
    },
    {
      "rel" : "http://packetizer.com/rel/blog",
      "type" : "text/html",
      "href" : "http://www.packetizer.com/people/paulej/blog/",
      "titles" :
      {
        "en-us" : "Paul E. Jones' Blog"
      }
    },
    {
      "rel" : "http://schemas.google.com/g/2010#updates-from",
      "type" : "application/atom+xml",
      "href" : "http://www.packetizer.com/people/paulej/blog/blog.xml"
    },
    {
      "rel" : "http://bitcoin.org/rel/address",
      "href" : "bitcoin:17XoqvUCrf12H7Vc7c7uDxib8FDMXFx2p6"
    }
  ]
}

This document has a lot of useful information inside. For example, it provides my name, URLs to my picture, blog, RSS feed for my blog, and my Bitcoin address.

The last example is rather interesting. For those who are not familiar with Bitcoin, it is a relatively new digital currency that is growing in popularity. One of the challenges from a user perspective with Bitcoin is sharing one’s bitcoin address reliably with people. A bitcoin “address” looks like that long string of characters following “bitcoin:” in the example above. Typing that when trying to send somebody money is prone to error. WebFinger makes it much simpler by “discovering” the address using the more familiar e-mail address. So, as Bitcoin software clients are updated to support WebFinger, one would just enter “paulej@packetizer.com” to send money, for example. The software would add the “acct” URI scheme on the front, send the query to the domain, and then look for the bitcoin address(es) returned in the JRD.

WebFinger is already utilized by standards like OpenID Connect, which allows one to log into remote web sites using their account URI. This greatly simplifies the login process and the need to fill out lots of repetitive information when creating new accounts or associating two accounts.

Of course, since WebFinger is still new, it’s quite possible that your service provider does not yet support it. The good news is that it’s very simple to implement and there are already several open source implementations of client and server code.

Permalink: WebFinger Makes the Web Friendlier