Dealing with a c-state bug

Computers that run Linux (especially newer kernel versions) on Intel Bay Trail family processors are sometimes affected by a c-state bug. It manifests as a random and total freeze of the system. Screen content remains unchanged, but the machine becomes completely unresponsive. I have encountered this on units that run Intel Celeron N2920, but other members of the Bay Trail family can also be affected. Also, the kernel.org page linked to above suggests that the bug exists in kernel versions 3.16-4.2, but I have encountered it on Ubuntu 16.04 (kernel version 4.4) and Ubuntu 16.10 (kernel version 4.8), so this bug, as far as I can see, is still extant.

The freeze happens when the processor receives an instruction to enter an unsupported sleep state. The workaround, therefore, is to tell the kernel to stop giving those instructions to the processor. This is accomplished by editing the grub configuration file.

Open the grub configuration file for editing as root using your favorite editor. For example, assuming you’re using nano and are not logged in as root, you can type this into the terminal:

sudo nano /etc/default/grub

When the file opens, find the line that starts with GRUB_CMDLINE_LINUX_DEFAULT and change it to include intel_idle.max_cstate=1. Typically, after you’re done editing, the line would look like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"

The values quiet and splash are usually set by default and should be left in place.

Save the file (Ctrl+o, then Enter), exit (Ctrl+x), and apply the update:

sudo update-grub

Finally, restart the system.

Posted in Technology | Leave a comment

Managing Windows product keys

Windows includes a little-known utility named slmgr (which presumably stands for Software License ManaGeR) that allows the administrator to install and uninstall Windows product keys (may be useful when upgrading). Both installation and uninstallation have to be done from the command line running as Administrator.

Uninstallation is done in two steps. First, the administrator needs to display values associated with the currently installed key:

slmgr /dlv

When this command is complete, Windows shows a message box showing a series of values associated with the currently installed product key, including Activation ID. The Activation ID (a series of numbers, letters, and dashes) is used in the second step:

slmgr /upk [Activation ID goes here]

If everything went well, Windows will show a message box saying Uninstalled product key successfully.

Product key installation is a simpler single-step procedure:

slmgr /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

The Xs, of course, represent the product key. If everything went well, Windows displays a message box saying Installed product key XXXXX-XXXXX-XXXXX-XXXXX-XXXXX successfully.

Posted in Technology | Leave a comment

Predictors of hard drive failure

From the ever so helpful people at Backblaze:

For the last few years we’ve used the following five SMART stats as a means of helping determine if a drive is going to fail.

Attribute Description
SMART 5 Reallocated Sectors Count
SMART 187 Reported Uncorrectable Errors
SMART 188 Command Timeout
SMART 197 Current Pending Sector Count
SMART 198 Uncorrectable Sector Count

When the RAW value for one of these five attributes is greater than zero, we have a reason to investigate. We also monitor RAID array status, Backblaze Vault array status and other Backblaze internal logs to identify potential drive problems. These tools generally only report exceptions, so on any given day the number of investigations is manageable even though we have nearly 70,000 drives.

Posted in Technology | Leave a comment

Literature: fantasy vs. realism

…judged by the standards of fantasy, modernist realist fiction, with its narrow focus on daily details of contemporary human affairs, is suffocating and unimaginative, almost unavoidably trivial, and ominously anthropocentric.

(Ursula K. Le Guin, The Critics, the Monsters, and the Fantasists)

Posted in Clippings, Random | Leave a comment

Getting Yahoo! Finance data into Excel

Here’s a little VBA snippet that allows to retrieve Yahoo! Finance data into an Excel spreadsheet.

Usage:

=yfQuote(ticker, date, field), where

  • ticker (required) is ticker symbol used by Yahoo! Finance. Examples: MSFT, ^GSPC, VXX.
  • date (optional) is the date for which quotes are sought. If omitted, the most recent available historical quote is retrieved. Example: DATE(2014, 10, 11).
  • field (optional) is the data field requested. If omitted, close price is returned. Allowed values: 1 (open price), 2 (high price), 3 (low price), 4 (сlose price), 5 (volume), and 6 (adjusted close price).
Public Function yfQuote(strTicker As String, _
    Optional dtDate As Variant, _
    Optional intField As Variant)

    ' dtDate is optional. If omitted, use today. 
    ' If value is not a date, throw an error.

    If IsMissing(dtDate) Then
        dtDate = Date
    Else
        If Not (IsDate(dtDate)) Then
            yfQuote = CVErr(xlErrNum)
        End If
    End If
    
    ' intField is optional. 
    ' If omitted, use 4 to retrieve closing price.

    If IsMissing(intField) Then
        intField = 4
    Else
        If Not (IsNumeric(intField)) _
               Or (intField > 6) _ 
               Or (intField < 0) Then
            yfQuote = CVErr(xlErrNum)
        End If
    End If
    
    Dim dtStartDate As Date
    Dim strURL As String 
    Dim strCSV As String 
    Dim strRows() As String 
    Dim strColumns() As String
    Dim dblResult As Double
    
    dtStartDate = dtDate - 7
    
    ' Compose the request URL with start date and end date

    strURL = "http://ichart.finance.yahoo.com/table.csv?s=" & _ 
      strTicker & _
      "&a=" & Month(dtStartDate) - 1 & _
      "&b=" & Day(dtStartDate) & _
      "&c=" & Year(dtStartDate) & _
      "&d=" & Month(dtDate) - 1 & _
      "&e=" & Day(dtDate) & _
      "&f=" & Year(dtDate) & _
      "&g=d&ignore=.csv"
    
    Set objHTTP = CreateObject("MSXML2.XMLHTTP")
    objHTTP.Open "GET", strURL, False
    objHTTP.Send
    strCSV = objHTTP.responseText
    
    ' The most recent price information is in the second row; 
    ' the first row is the table headings.
    ' Order of fields:
    ' 0 -- Date
    ' 1 -- Open
    ' 2 -- High
    ' 3 -- Low
    ' 4 -- Close
    ' 5 -- Volume
    ' 6 -- Adj Close

    ' split the CSV into rows
    strRows() = Split(strCSV, Chr(10)) 

    ' split the most recent row into columns
    strColumns = Split(strRows(1), ",") 

    dblResult = strColumns(intField)
    yfQuote = dblResult
    
    Set objHTTP = Nothing

End Function

Notes:

  1. Yahoo! Finance doesn’t allow retrieval of historical prices for currencies, so this function wouldn’t work with currency tickers such as USDEUR=X.
  2. With some additional fiddling, the function could be persuaded to accept 0 to return the date for which quotes are retrieved. This could be useful when retrieving the most recent quote. As is, this wouldn’t work because of dblResult = strColumns(intField) (double value is expected, but a string is returned; there would have to be a conversion of that string into a date value)…
Posted in Finance and Investments, Technology | Leave a comment

Size doesn’t matter; age does

John Haltiwanger, Ron S. Jarmin, and Javier Miranda, “Who Creates Jobs? Small versus Large versus Young”, The Review of Economics and Statistics, May 2013, Vol. 95, No. 2, Pages 347-361.

Abstract

The view that small businesses create the most jobs remains appealing to policymakers and small business advocates. Using data from the Census Bureau’s Business Dynamics Statistics and Longitudinal Business Database, we explore the many issues at the core of this ongoing debate. We find that the relationship between firm size and employment growth is sensitive to these issues. However, our main finding is that once we control for firm age, there is no systematic relationship between firm size and growth. Our findings highlight the important role of business start-ups and young businesses in U.S. job creation.

The entire article is here.

Posted in Business, Clippings, Economics | Leave a comment

The top 15 cities for tech startups

From Infoworld:

The National Venture Capital Association (NVCA) list measures overall venture capital investment in each respective market to compile its data. Continue reading

Posted in Business, Clippings, Technology | Leave a comment

NoSQL Taxonomy

Examples in parentheses:

  • Key-value store (Amazon DynamoDB)
  • Column-family store (Cassandra)
  • Document database (MongoDB)
  • Graph database (Neo4j)
Posted in Technology | Leave a comment

Estimated Costs of Crop Production in Iowa

Dr. Michael Duffy of Iowa State University publishes them online.  Next time I attempt working out the economics of alternative fuels, I should start there…

Posted in Business, Economics | Leave a comment

Digital FX solo

German animator Kaleb Lechowski recently released a short, but very well made, computer-generated sci-fi film.  According to the author, the six-and-a-half-minute film took seven months to make, including two months spent on writing the script.  The entire film crew consisted of three people: voice actor David Masterson, sound engineer Hartmut Zelle, and Kaleb himself, who did everything else.

It appears that the mythical man-month just took on a new meaning: one minute of computer-generated screen time…

Posted in Technology | Leave a comment