Book List 2014 – Summer

Prelude

 

Recently my career took a small, unplanned, yet forgiven detour.  My current role is that of a Data Analyst.

I feel I am going down a slide.  Started out as a Software Developer developing in serious languages (C [Industrial Strength]), then came Power-builder, Delphi, and Visual Basic ( Business Applications.  Later came Operations Database Administrator [DBA] and a small time after I became an Engineering DBA.

And, now forgetaboutit a “9 to 5 Data Analyst”.

In so many ways and words, Management is telling me that they trust me less and less with contributing tangibly.

As the saying goes, those who can’t, teach or write about it.

While I am thinking about writing for a living, the gods sends words my way.

Here is one from Jay-Z’s “Moment of Clarity”:

I dumbed down for my audience to double my dollars
They criticized me for it, yet they all yell “holla”
If skills sold, truth be told, I’d probably be
Lyrically Talib Kweli
Truthfully I wanna rhyme like Common Sense
But I did 5 mill’ – I ain’t been rhyming like Common since

 

It is not that writing and teaching doesn’t come with benefits:

Many parents have directly or indirectly shared with me that being a parent has forced balance, moderation, thoughtfulness, awareness, and orderliness into their lives.

Writing also allows greater insight, open channels for contribution, raises the cover off silent evidences and anti-patterns.

There is so much I can say about the above, but since we have a title let us go back and talk about books.

This year I got rid of more books.  I think I had little choice; sneezing all night and it is like let us vacuum the carpet a bit and rid of books and their dust.

Most of the books I rid of were computer books.  Not exactly a huge tax write-off; if I were to write them down, I doubt their dollar value is not at zero.

But, later I received some good books, business books no less.

Here are some of them:

But, please do not feel overly sorry for me for the Business Books.  As I have listened in to a couple of Audio CDs, as well.

Here are two of them:

Kevin Kelly - New Rules for the New Economy

Here are some good concepts illustrated in Kevin Kelly’s book:

 

0. Introduction

No one can escape the transforming fire of machines. Technology, which once progressed at the periphery of culture, now engulfs our minds as well as our lives. Is it any wonder that technology triggers such intense fascination, fear, and rage?

One by one, each of the things that we care about in life is touched by science and then altered. Human expression, thought, communication, and even human life have been infiltrated by high technology. As each realm is overtaken by complex techniques, the usual order is inverted, and new rules established. The mighty tumble, the once confident are left desperate for guidance, and the nimble are given a chance to prevail.

But while the fast-forward technological revolution gets all the headlines these days, something much larger is slowly turning beneath it. Steadily driving the gyrating cycles of cool technogadgets and gotta-haves is an emerging new economic order. The geography of wealth is being reshaped by our tools. We now live in a new economy created by shrinking computers and expanding communications.

This new economy represents a tectonic upheaval in our commonwealth, a far more turbulent reordering than mere digital hardware has produced. The new economic order has its own distinct opportunities and pitfalls. If past economic transformations are any guide, those who play by the new rules will prosper, while those who ignore them will not. We have seen only the beginnings of the anxiety, loss, excitement, and gains that many people will experience as our world shifts to a new highly technical planetary economy.
This new economy has three distinguishing characteristics: It is global. It favors intangible things—ideas, information, and relationships. And it is intensely interlinked. These three attributes produce a new type of marketplace and society, one that is rooted in ubiquitous electronic networks.

Networks have existed in every economy. What’s different now is that networks, enhanced and multiplied by technology, penetrate our lives so deeply that “network” has become the central metaphor around which our thinking and our economy are organized. Unless we can understand the distinctive logic of networks, we can’t profit from the economic transformation now under way.

1. Self-Reinforcing Success

Networks have their own logic. When you connect all to all, curious things happen.

Mathematics says the sum value of a network increases as the square of the number of members. In other words, as the number of nodes in a network increases arithmetically, the value of the network increases exponentially.* Adding a few more members can dramatically increase the value for all members.

This amazing boom is not hard to visualize. Take 4 acquaintances; there are 12 distinct one-to-one friendships among them. If we add a fifth friend to the group, the friendship network increases to 20 different relations; 6 friends makes 30 connections; 7 makes 42. As the number of members goes beyond 10, the total number of relationships among the friends escalates rapidly. When the number of people (n) involved is large, the total number of connections can be approximated as simply n 3 n, or n2. Thus a thousand members can have a million friendships.

The magic of n2 is that when you annex one more new member, you add many more connections; you get more value than you add. That’s not true in the industrial world. Say you owned a milk factory, and you had 10 customers who bought milk once a day. If you increased your customer base by 10% by adding one new customer, you could expect an increase in milk sales of 10%. That’s linear. But say, instead, you owned a telephone network with 10 customers who talked to each other once a day. Your customers would make about n2 (102), or 100 calls a day. If you added one more new customer, you increased your customer base by 10%, but you increased your calling revenue by a whopping 20% (since 112 is 20% larger than 102). In a network economy, small efforts can lead to large results.

A network’s tendency to explode in value mathematically was first noticed by Bob Metcalfe, the inventor of a localized networking technology called Ethernet. During the late 1970s Metcalfe was selling a combination of Ethernet, Unix, and TCP/IP (the internet protocol), as a way to make large networks out of many small ones. Metcalfe says, “The idea that the value of a network equals n squared came to me after I failed to get networks to work on a small scale, despite many repeated experiments.” He noticed that networks needed to achieve critical mass to make them worthwhile. But he also noticed that as he linked together small local networks here and there, the value of the combined large network would multiply abruptly. In 1980 he began formulating his law: value 5 n 3 n.

In fact, n2 underestimates the total value of network growth. As economic journalist John Browning notes, the power of a network multiplies even faster than this. Metcalfe’s observation was based on the idea of a phone network. Each telephone call had one person at each end; therefore the total number of potential calls was the grand sum of all possible pairings of people with phones. But online networks, like personal networks in real life, provide opportunities for complicated three-way, four-way, or many-way connections. You can not only interact with your friend Charlie, but with Alice and Bob and Charlie at the same time. The experience of communicating simultaneously with Charlie’s group in an online world is a distinct experience, separate in its essential qualities, from communicating with Charlie alone. Therefore, when we tally up the number of possible connections in a network we have to add up not only all the combinations in which members can be paired, but also all the possible groups as well. These additional combos send the total value of the network skyrocketing. The precise arithmetic is not important. It is enough to know that the worth of a network races ahead of its input.

This tendency of networks to drastically amplify small inputs leads to the second key axiom of network logic: the law of increasing returns. In one way or another this law undergirds much of the strange behavior in the network economy. The simplest version goes like this: The value of a network explodes as its membership increases, and then the value explosion sucks in yet more members, compounding the result.

2. The Law of Plentitude – More gives more

So strong is this network value that anyone purchasing a fax machine becomes an evangelist for the fax network. “Do you have a fax?” fax owners ask you. “You should get one.” Why? Your purchase increases the worth of their machine. And once you join the network, you’ll begin to ask others, “Do you have a fax (or email, or Acrobat software, etc)?” Each additional account you can persuade onto the network substantially increases the value of your account.

When you go to Office Depot to buy a fax machine, you are not just buying a US$200 box. You are purchasing for $200 the entire network of all other fax machines and the connections between them – a value far greater than the cost of all the separate machines.

The fax effect suggests that the more plentiful things become, the more valuable they become. But this notion directly contradicts two of the most fundamental axioms we attribute to the industrial age.
First hoary axiom: Value came from scarcity; diamonds, gold, oil, and college degrees were precious because they were scarce.

Second hoary axiom: When things were made plentiful, they became devalued; carpets no longer indicated status when they could be woven by the thousands on machines.

The logic of the network flips these industrial lessons upside down. In a Network Economy, value is derived from plentitude, just as a fax machine’s value increases in ubiquity. Power comes from abundance. Copies (even physical copies) are cheap. Therefore, let them proliferate.

Instead, what is valuable is the scattered relationships – sparked by the copies – that become tangled up in the network itself. And the relationships rocket upward in value as the parts increase in number even slightly. Windows NT, fax machines, TCP/IP, GIF images, RealAudio – all born deep in the Network Economy – adhere to this logic. But so do metric wrenches, triple-A batteries, and other devices that rely on universal standards; the more common they are, the more it pays you to stick to that standard.

3. The Law of Exponential Value – Success is nonlinear

The chart of Microsoft’s cornucopia of profits is a revealing graph because it mirrors several other plots of rising stars in the Network Economy. During its first 10 years, Microsoft’s profits were negligible. Its profits rose above the background noise only around 1985. But once they began to rise, they exploded.

The archetypical illustration of a success explosion in a Network Economy is the Internet itself. As any old-time nethead will be quick to lecture you, the Internet was a lonely (but thrilling!) cultural backwater for two decades before it hit the media radar. A graph of the number of Internet hosts worldwide, starting in the 1960s, hardly creeps above the bottom line. Then, around 1991, the global tally of hosts suddenly mushrooms, exponentially arcing up to take over the world.

Now that we’ve entered the realm where virtuous circles can unfurl overnight successes in a biological way, a cautionary tale is in order. One day, along the beach, tiny red algae blooms into a vast red tide. Then, a few weeks later, just when the red mat seems indelible, it vanishes. Lemmings boom and disappear. The same biological forces that amplify populations can mute them. The same forces that feed on each other to amplify network presences into powerful overnight standards can also work in reverse to unravel them in a blink. Small beginnings can lead to large results, while large disturbances have only small effects.

4. The Law of Tipping Points – Significance precedes momentum

In epidemiology, the point at which a disease has infected enough hosts that the infection moves from local illness to raging epidemic can be thought of as the tipping point. The contagion’s momentum has tipped from pushing uphill against all odds to rolling downhill with all odds behind it. In biology, the tipping points of fatal diseases are fairly high, but in technology, they seem to trigger at much lower percentages of victims or members.

There has always been a tipping point in any business, industrial or network, after which success feeds upon itself. However, the low fixed costs, insignificant marginal costs, and rapid distribution that we find in the Network Economy depress tipping points below the levels of industrial times; it is as if the new bugs are more contagious – and more potent. Smaller initial pools can lead to runaway dominance.
Lower tipping points, in turn, mean that the threshold of significance – the period before the tipping point during which a movement, growth, or innovation must be taken seriously – is also dramatically lower than it was during the industrial age. Detecting events while they are beneath this threshold is essential.

In the past, an innovation’s momentum indicated significance. Now, in the network environment, significance precedes momentum.

Biologists tell a parable of the lily leaf, which doubles in size every day. The day before it completely covers the pond, the water is only half covered, and the day before that, only a quarter covered, and the day before that, only a measly eighth. So, while the lily grows imperceptibly all summer long, only in the last week of the cycle would most bystanders notice its “sudden” appearance. But by then, it is far past the tipping point.

5. The Law of Increasing Returns – Make virtuous circles

Likewise, the increasing returns we see in Silicon Valley are not dependent on any particular company’s success. As AnnaLee Saxenian, author of Regional Advantage, notes, Silicon Valley has in effect become one large, distributed company. “People joke that you can change jobs without changing car pools,” Saxenian told Washington Post reporter Elizabeth Corcoran.

“Some say they wake up thinking they work for Silicon Valley. Their loyalty is more to advancing technology or to the region than it is to any individual firm.”

One can take this trend further. We are headed into an era when both workers and consumers will feel more loyalty to a network than to any ordinary firm. The great innovation of Silicon Valley is not the wowie-zowie hardware and software it has invented, but the social organization of its companies and, most important, the networked architecture of the region itself – the tangled web of former jobs, intimate colleagues, information leakage from one firm to the next, rapid company life cycles, and agile email culture. This social web, suffused into the warm hardware of jelly bean chips and copper neurons, creates a true Network Economy.

The nature of the law of increasing returns favors the early. The initial parameters and conventions that give a network its very power quickly freeze into unalterable standards. The solidifying standards of a network are both its blessing and its curse – a blessing because from the de facto collective agreement flows the unleashed power of increasing returns, and a curse because those who own or control the standard are disproportionately rewarded.

6. The Law of Inverse Pricing – Anticipate the cheap

One curious aspect of the Network Economy would astound a citizen living in 1897: The very best gets cheaper each year. This rule of thumb is so ingrained in our contemporary lifestyle that we bank on it without marveling at it. But marvel we should, because this paradox is a major engine of the new economy.

Through most of the industrial age, consumers experienced slight improvements in quality for slight increases in price. But the arrival of the microprocessor flipped the price equation. In the information age, consumers quickly came to count on drastically superior quality for less price over time. The price and quality curves diverge so dramatically that it sometimes seems as if the better something is, the cheaper it will cost.

Computer chips launched this inversion, as Ted Lewis, author of The Friction Free Economy, points out. Engineers used the supreme virtues of computers to directly and indirectly create the next improved version of computers. By compounding our learning in this fashion, we got more out of less material. So potent is compounding chip power that everything it touches – cars, clothes, food – falls under its spell. Indirectly amplified learning by shrinking chips enabled just-in-time production systems and the outsourcing of very high tech manufacturing to low-wage labor – both of which lowered the prices of goods still further.

Today, shrinking chip meets exploding net. Just as we leveraged compounded learning in creating the microprocessor, we are leveraging the same multiplying loops in creating the global communications web. We use the supreme virtues of networked communications to directly and indirectly create better versions of networked communications.

Almost from their birth in 1971, microprocessors have lived in the realm of inverted pricing. Now, telecommunications is about to experience the same kind of plunges that microprocessor chips take – halving in price, or doubling in power, every 18 months – but even more drastically. The chip’s pricing flip was called Moore’s Law. The net’s flip is called Gilder’s Law, for George Gilder, a radical technotheorist who forecasts that for the foreseeable future (the next 25 years), the total bandwidth of communication systems will triple every 12 months.

7. The Law of Generosity – Follow the free

If services become more valuable the more plentiful they are (Law #2), and if they cost less the better and the more valuable they become (Law #6), then the extension of this logic says that the most valuable things of all should be those that are given away.

First, think of “free” as a design goal for pricing. There is a drive toward the free – the asymptotic free – that, even if not reached, makes the system behave as if it does. A very small flat rate may have the same effects as flat-out free

Third, and most important, following the free is a way to rehearse a service’s or a good’s eventual fall to free. You structure your business as if the thing that you are creating is free in anticipation of where its price is going.

Another way to view this effect is in terms of attention. The only factor becoming scarce in a world of abundance is human attention. Each human has an absolute limit of only 24 hours per day to provide attention to the millions of innovations and opportunities thrown up by the economy. Giving stuff away garners human attention, or mind share, which then leads to market share.

Following the free also works in the other direction. If one way to increase product value is to make products free, then many things now without cost hide great value. We can anticipate wealth by following the free.

8. The Law of the Allegiance – Feed the web first

The distinguishing characteristic of networks is that they have no clear center and no clear outer boundaries. The vital distinction between the self (us) and the nonself (them) – once exemplified by the allegiance of the industrial-era organization man – becomes less meaningful in a Network Economy. The only “inside” now is whether you are on the network or off. Individual allegiance moves away from organizations and toward networks and network platforms. (Are you Windows or Mac?)

Thus, we see fierce enthusiasm from consumers for open architectures. Users are voting for maximizing the value of the network itself. Companies have to play this way, too. As consultant John Hagel argues, a company’s primary focus in a networked world shifts from maximizing the firm’s value to maximizing the value of the infrastructure whole. For instance, game companies will devote as much energy promoting the platform – the tangle of users, developers, hardware manufactures, etc. – as they do to their product. Unless their web thrives, they die.

9. The Law of Devolution – Let go at the top

All organizations (profit and nonprofit alike) face two problems as they attempt to find their peak of optimal fit. Both are amplified by a Network Economy in which turbulence is the norm.

First, unlike the industrial arc’s relatively simple environment, where it was fairly clear what an optimal product looked like and where on the slow-moving horizon a company should place itself, it is increasingly difficult in the Network Economy to discern what hills are highest and what summits are false.

Big and small companies alike can relate to this problem. It’s unclear whether one should strive to be the world’s best hard disc manufacturer when the mountain beneath that particular peak may not be there in a few years. An organization can cheer itself silly on its way to becoming the world’s expert on a dead-end technology. In biology’s phrasing, it gets stuck on a local peak.

The harsh news is that getting stuck is a certainty in the new economy. Sooner, rather than later, a product will be eclipsed at its prime. While one product is at its peak, another will move the mountain by changing the rules.

There is only one way out. The organism must devolve. In order to go from one high peak to another, it must go downhill first and cross a valley before climbing uphill again. It must reverse itself and become less adapted, less fit, less optimal.

This brings us to the second problem. Organizations, like living beings, are hardwired to optimize what they know and to not throw success away. Companies find devolving a) unthinkable and b) impossible. There is simply no room in the enterprise for the concept of letting go – let alone the skill to let go – of something that is working, and trudge downhill toward chaos.

And it will be chaotic and dangerous down below. The definition of lower adaptivity is that you are closer to extinction. Finding the next peak is suddenly the next life-or-death assignment. But there is no alternative (that we know of) to leaving behind perfectly good products, expensively developed technology, and wonderful brands and heading down to trouble in order to ascend again in hope. In the future, this forced march will become routine.

The biological nature of this era means that the sudden disintegration of established domains will be as certain as the sudden appearance of the new. Therefore, there can be no expertise in innovation unless there is also expertise in demolishing the ensconced.

In the Network Economy, the ability to relinquish a product or occupation or industry at its peak will be priceless. Let go at the top

All organizations (profit and nonprofit alike) face two problems as they attempt to find their peak of optimal fit. Both are amplified by a Network Economy in which turbulence is the norm.

First, unlike the industrial arc’s relatively simple environment, where it was fairly clear what an optimal product looked like and where on the slow-moving horizon a company should place itself, it is increasingly difficult in the Network Economy to discern what hills are highest and what summits are false.

Big and small companies alike can relate to this problem. It’s unclear whether one should strive to be the world’s best hard disc manufacturer when the mountain beneath that particular peak may not be there in a few years. An organization can cheer itself silly on its way to becoming the world’s expert on a dead-end technology. In biology’s phrasing, it gets stuck on a local peak.

The harsh news is that getting stuck is a certainty in the new economy. Sooner, rather than later, a product will be eclipsed at its prime. While one product is at its peak, another will move the mountain by changing the rules.

There is only one way out. The organism must devolve. In order to go from one high peak to another, it must go downhill first and cross a valley before climbing uphill again. It must reverse itself and become less adapted, less fit, less optimal.

This brings us to the second problem. Organizations, like living beings, are hardwired to optimize what they know and to not throw success away. Companies find devolving a) unthinkable and b) impossible. There is simply no room in the enterprise for the concept of letting go – let alone the skill to let go – of something that is working, and trudge downhill toward chaos.

And it will be chaotic and dangerous down below. The definition of lower adaptivity is that you are closer to extinction. Finding the next peak is suddenly the next life-or-death assignment. But there is no alternative (that we know of) to leaving behind perfectly good products, expensively developed technology, and wonderful brands and heading down to trouble in order to ascend again in hope. In the future, this forced march will become routine.

The biological nature of this era means that the sudden disintegration of established domains will be as certain as the sudden appearance of the new. Therefore, there can be no expertise in innovation unless there is also expertise in demolishing the ensconced.

In the Network Economy, the ability to relinquish a product or occupation or industry at its peak will be priceless. Let go at the top

 

More on Nassim Nicholas Taleb’s book later.

Wish

I wish you a good, grand, and generous life. Generosity in terms of the worthiness of your life, and the choices you make as that forwards or limits your ability to share its building blocks.

And, also in the books that you read as that sometimes hinders the teachings you take, when you take them, how you accept them, and the extent you incorporate them.

Listening To

Andrew Solomon: How the worst moments in our lives make us who we are
https://www.youtube.com/watch?v=RiM5a-vaNkg

References

 

 

Technical: Microsoft – IIS – IIS Configuration Manager – Error Message – Error message 401.2.: Unauthorized: Logon failed due to server configuration

Technical: Microsoft – IIS – IIS Configuration Manager – Error Message – Error message 401.2.: Unauthorized: Logon failed due to server configuration

Background

A couple of weeks ago, we experienced problems provisioning a Third party application on one of our corporate web servers.

Though, I did not come up with solution, I think it still merits sharing.

 

Introduction

The problem is IIS Configuration in nature and so for the sake of simplicity let us write a basic ASP.Net Hello World application.

 

 

Code – Simple Hello World ASPX (C#)

Here is a simple Hello World ASPX application written in C#.

I used John Peterson’s posting - Writing Your First ASP.NET Page – http://www.codeguru.com/csharp/.net/net_asp/tutorials/article.php/c19305/Writing-Your-First-ASPNET-Page.htm as my jump-off.

 

<%@ Page Language="C#" %>
 
<script runat="server">

    protected void Page_Load(Object Sender, EventArgs E)
	{
	    String strMessage;
		
	    DateTime objNow = DateTime.Now;
		
	    String strDayofWeek = objNow.ToString("dddd");
	    String strTime = objNow.ToString("t");
	    String strDay = objNow.ToString("D"); 
		
	    strMessage = strTime + "  " + " on " + " " 
                                + strDay;
		
	    HelloWorld.Text = "Hello World! " + "<BR>" 
				+ "It is " 
				+ "<i>"
				+ strMessage
				+ "</i>"						;
		
		
	   String strUsr ;
           strUsr = HttpContext.Current.Request.LogonUserIdentity.Name;
		
	   HelloYou.Text = "I have your name as " 
					+ "<i>"
					+ strUsr 
	  			        + "</i>"													;
		
		
    }
	
</script>
 
<html>
<head>
<title>ASP.NET Hello World</title>
 
</head>
<body bgcolor="#FFFFFF">
 
<p><asp:label id="HelloWorld" runat="server" /></p>

<p><asp:label id="HelloYou" runat="server" /></p>

 
</body>

 

Output

HelloWorld-Good

So everything is good.

 

IIS Configuration – .Net Authorization Rules

But, nothing is straightforward when machines are built and tightened to Corporate Standards set by well paid Security Professionals.

This appears to be part of the security hardening:

DotNetAuthorizationRules

It seems that by default “all users are denied.”.

And, so a schmuck / mugu like me comes along and tries to make quick work of installing this Application.

But, I am stuck at having to authenticate.

The prompt and error screens are pasted below.

Authentication Required

AuthenticationRequired

 

 

Authentication Required

Textual

Access is denied.

Description: An error occurred while accessing the resources required to serve this request. The server may not be configured for access to the requested URL.

Error message 401.2.: Unauthorized: Logon failed due to server configuration. Verify that you have permission to view this directory or page based on the credentials you supplied and the authentication methods enabled on the Web server. Contact the Web server’s administrator for additional assistance.

Image

AccessIsDenied--ErrorMessage--401

 

Remediation

To correct remove the denial rule outright or restrict it to specific verbs.

 

Full Denial

Here is our Deny applied to all Users and Verbs.

AuthorizationRules

 

AuthorizationRules

 

Denial – Specific Verbs

HTTP Verbs list has been increasingly quite a bit.

Here are the ones currently supported by Windows.

HTTP Verb Enumeration
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364664(v=vs.85).aspx

Here is us choosing to filter out Put/Delete/Move/Copy verbs.

AuthorizationRules-FilteroutVerbsSpecific

 

 Conclusion

When you get IIS Authentication & privilege errors, you occasionally have to check a few places and find silent hardening rules.

Or better still, engage the Subject Matter Experts (SME) within your organization and see if they have documents on IIS baselining & error correction.

 

 

 

 

 

 

 

 

 

Technical: Microsoft – Source Control – Visual Studio Online – Configuration

Technical: Microsoft – Source Control – Visual Studio Online – Configuration

 

Background

What is there not to like about GitHub? Not much.  It is very well supported across all platforms (Linux\Mac\Windows).

It is free; at least as long as your files are created in publicly available repositories.

It is that free angle that Microsoft is trying to attack.  As long as you ‘re OK with maximum number of 5 users, MS will allow you private git repositories.

 

Web Site

Sojourn to http://www.visualstudio.com/en-us.

Sign in

Sign in with an existing Outlook/MSN/hotmail account.

signin

 

Account Creation / Usage

If this is the first time you ‘re going to use VisualStudio online, you will have to create an Account.

Account Creation

Create an account.  It is important what you call your Account name as that will be your URL i.e https://<account-name>.visualstudio.com/

Account Usage

On the other-hand, if you already have an existing account, you should use that one.

Account Member

Keep in mind that if someone has added as a member to their account, you will see them listed here, as well.

Accounts

 

 

Projects and Teams

Once you select an account, you ‘re taken to the next screen, the “Projects and Teams” screen.

ProjectsAndTeams

 

 

User Credentials

User Credentials – Basic Authentication Credentials

Github and quite a bit other Unix\Linux implementations rely on public keys to authenticate users.

Visual Studio online supports the user of normal authentication; using plain username and password.

To set it up, we will do the following

  • Using a web browser, connect to http://www.visualstudio.com/
  • Keep in mind that you need an MSN/Outlook account to connect to visualstudio.com
  • Once connected, access https://app.vssps.visualstudio.com/profile/view?mkt=en-us
  • From the top menu bar access the settings menu by clicking on the wrench wrench icon
  • Access “My profile” window
  • The default tab is the “General” tab
  • Access the “Credentials” tab
  • Click on the “Enable Alternate credentials” hyperlink
  • Designate a secondary username by clicking on the Set hyperlink.
  • Enter & confirm the corresponding password
  • Register your changes by clicking on the “Save Changes” button

Please retrace your steps and confirm that your newly designated secondary account is in place.  As the password is previously confirmed, I will not re-enter it, unless you will like a new one.

 

General

UserProfiles - General

 

Credentials

userprofiles-credentials

 

Credentials – Set

userprofiles-credentials-setusername

 

Credentials – Set – Complete

userprofiles-credentials-setusername-and-password

 

Credentials - Alternate Authentication Credentials – Review

userprofiles-credentials-setusername-review

 

 

 

Create Team Project

As this is a new project, we will go create a new project

The project’s name will be NetstatPS and we have a choice of Git or TFS for the Version Control.  We chose to go with Git for now.

Create a new team project

createATeamProject

Create a new team project – Completed

createATeamProjectCompleted

 

Git Command Line Commands

 

On our local computer, let us “clone the empty repository”.

Instruction

cloneTheEmptyRepository

Change Folder

As the Git command line tool will create a folder matching the project’s name when we issue “Git Clone”, we will note our targeted folder.

Launch  Command prompt shell and navigate to our targeted folder’s parent folder.

Syntax:

cd <folder>

Sample:

cd E:\DanielAdeniji\Sourcecode\Powershell

 

Issue “git clone” command

Syntax:

git clone https://<username>.visualstudio.com/DefaultCollection/_git/<project-name>

Sample:

git clone https://daniel.visualstudio.com/DefaultCollection/_git/NetstatPS 

 

Image:

gitClone

 

Issue “git add” command

Syntax:

git add <source-file>

Sample:

git add netstat.ps1

 

Image:

gitadd

 

 

Issue “git commit” command

Syntax:

git commit

Sample:

git commit

 

Image:

gitCommit

Issue “git push” command

Syntax:

git push origin master

Sample:

git push origin master

 

Image:

gitpush

 

Summary

As I said I love github.  But, if there are some files that you will get into problems placing in the public domain, I ask you consider MS Visual Studio online.

Obviously, you can download and provision your own private Source Control library, as well.

References

References – Git Commands

References – Git – Basic Authentication

  1. Work from Git Command stub
    http://msdn.microsoft.com/en-us/library/dd286572.aspx#setup_basic_auth

 

 

Technical: Microsoft – Windows – Windows 7 – Installation – Error – “Windows cannot install required files. Make sure all files required for installation are available, and restart the installation”

Technical: Microsoft – Windows – Windows 7 – Installation – Error – “Windows cannot install required files.  Make sure all files required for installation are available, and restart the installation”

 

Background

Trying to install MS Windows 7 on a friend’s computer.  Currently, she has MS Windows XP.  But, somehow that OS is no longer coming up.  Yes, it comes up when I access the computer via Safe-mode, but “No Go” when I try booting into a regular Windows XP mode.

I tried re-installing MS Windows XP a few times, but getting stuck with the installer asking for “Nvidia Network Disk”

 

Introduction

Here is mock up of the “MS Windows 7″ setup screen:

Installation Windows …

checkmarkGreenCopying Windows files
Expanding Windows files (39%)..
Installing features
Installing updates
Completing installation

 

Error

And, here is the perplexing error we are getting:

Error Header

Windows cannot install required files.

 

Error Message

Make sure all files required for installation are available, and restart the installation.  Error code 0×80070001.

 

Resolution

Google

Googled for help and the top hits suggests that for our search tag – “Windows 7″ “Setup” “0×80070001″ – we should try a different media.

Interestingly enough the more persuasive voices suggested USB over DVD; that is, they think the source of the problems is often bad DVD media or faulty DVD Drives altogether.

 

Download New Windows 7 ISO

On a working computer, Google for where I can find install binaries for MS Windows 7.   Nicest and reliable listing seems to be:

Official Windows 7 SP1 ISO Image Downloads
http://www.w7forums.com/threads/official-windows-7-sp1-iso-image-downloads.12325/

 

Burn ISO

On a working computer, found good tutorial on the well received and regarded MS Windows 7 Burn to DVD/USB @
http://www.microsoftstore.com/store/msusa/html/pbPage.Help_Win7_usbdvd_dwnTool

The basic signpost is that we should download “Windows 7 USB-DVD Tool” from http://images2.store.microsoft.com/prod/clustera/framework/w7udt/1.0/en-us/Windows7-USB-DVD-tool.exe

Once downloaded, install and launch it.

Running is also straightforward:

  • Step 1 – Choose ISO File
  • Step 2 – Choose Media Type

Step 1 – Choose ISO File

ChooseISOFile

 

 

Step 2 – Choose Media Type

Windows7-SelectMedia

 

I went against the loudest advice by choosing DVD over USB.

 

Try Windows 7 ISO

Once we have a new and nice Windows 7 ISO, took it to our faulty computer and tried it out.  And, thanks goodness as it works.

 

Summary

I know my friend is shipping her son off to college this weekend.  But, I really do hope she held back a bit of money to upgrade us from “No product key” / Trial version of MS Windows 7 to a licensed copy.

We need to pay and get a Product Key.  And, then activate it.

 

Listening To

Kenny Chesney – Nowhere to go, Nowhere to be
https://www.youtube.com/watch?v=Di77A0ss4Zc

 

References

References – Microsoft – Windows – Windows 7 – Installation – TroubleShooting

References – Provisioning USB/DVD

 

References - Microsoft Windows 7 – ISO

 

 

 

Technical: Microsoft – SharePoint – List – Programmatically list contents ( Using Web Services)

Technical: Microsoft – SharePoint – List – Programmatically list contents ( Using Web Services)

Background

To quickly gather data we have quickly provisioned a List on our workgroup’s Microsoft SharePoint web site.

And, now we need a way to collect the gathered data and persists it into a text-file.

 

Introduction

We chose to write a little power-shell script.  The script will use Web Services and CAML ( Collaborative Application Markup Language ).

 

SharePoint List

SharePoint List – Sample – Music

To preserve Corporate anonymity, we will create a sample generic SharePoint List that holds music data.

SharepointList

 

Configuration Data

To support flexibility we chose to create a configuration file.

Prior to choosing to go with a config file, we thought that command line arguments will suffice.

But, now as we continue to add more options, it is increasingly apparent that the multiplicity of options might be a bit much for command line args.

 

Item Definition Values
SharepointURL URL of the Sharepoint Site http://sharepointLAB
SharepointList List name music
SharepointView View Name 2F551156-9553-43AC-9D5C-700DD25EBEB0
CredentialExplicit Use current AD Account
SharepointListColumns Comma separated list of columns
IncludeMandatoryColumns If yes, system columns are included Y, Yes, True
MaxNumberofRows Maximum number of rows 100
XMLFileExtract XML File Name e:\extractmusic.xml
TextFileExtract Text File Name e:\extractmusic.txt
TextFileSeparator Text File Separator ;

 

Sample

music.config

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" safemode="true"/>
    <requiredRuntime version="v2.0.50727" safemode="true"/>
  </startup>
  <appSettings>
 
    <add 
		 key="SharepointURL" 
		 value="http://music:50"
		 />

	<add 
		 key="SharepointList" 
		 value="Music" 
		 />

	<add 
		 key="SharepointListColumns" 
		 value="Title,Artist,linkVideo" 
		 />		 

	<add 
		 key="CredentialExplicit" 
		 value="Y" 
		 />		


	<add 
		 key="XMLFileExtract" 
		 value="c:\tmp\music.xml" 
		 />	
		 
	<add 
		 key="TextFileExtract" 
		 value="e:\tmp\music.txt" 
		 />		
		 
	<add 
		 key="TextFileSeparator" 
		 value="~" 
		 />		
		 
  </appSettings>
</configuration>

 

 

Configuration Details

 

SharepointList

One can use the List name or the List ID.

List ID

If you want to use the ID, then you need to determine the List’s GUID ID.

Using your Browser, access the page’s source-code and search for ListID.  You will likely find
Searching for the following strings might likely grant you more precise
matches:

  • pageListId:
  • toolbarData['ListId']

 

pageListID:

PageListID_v1

 

toolbarData['ListId']

PageListID_v2

 

List Name
  • Find “application/rss+xml” and record down the corresponding the title

 

rss/xml:

ListName

 

If you try running the app with an incorrect List name \ List ID, you will

get a broad error:

Image:

InvalidListNameError
Tabulate:

 

Item Definition Values
Exception Type System.Management.Automation.MethodInvocationException http://sharepointLAB
Exception Message Exception calling “GetListItems” with “7″ argument(s): “Exception of type ‘Micro-2146233087
soft.SharePoint.SoapServer.SoapServerException’ was thrown.”
music
Exception Source System.Management.Automation 2F551156-9553-43AC-9D5C-700DD25EBEB0
Exception HResult -2146233087
Exception InnerException System.Web.Services.Protocols.SoapException: Exception of type ‘Microsoft.ShareP
oint.SoapServer.SoapServerException’ was thrown.at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse
(
SoapClientMessage message
, WebResponse response
, Stream responseStream
, Boolean asyncCall
)

at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(
String methodName
, Object[] parameters)at Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebSer
viceProxy1Team___vti_bin_Lists_asmx_wsdl.Lists.GetListItems(String listName
, String viewName
, XmlNode query
, XmlNode viewFields
, String rowLimit
, XmlNode queryOptions
, String webID)
at CallSite.Target(Closure , CallSite , Object , Object , Object , XmlElement
, XmlElement , Object , XmlElement , Object )
 Excep at System.Management.Automation.ExceptionHandlingOps.ConvertToMethodInvocatio
nException(Exception exception, Type typeToThrow, String methodName, Int32 numArgs, MemberInfo memberInfo)at CallSite.Target(Closure , CallSite , Object , Object , Object
, XmlElement, XmlElement , Object , XmlElement , Object )at System.Dynamic.UpdateDelegates.UpdateAndExecute8[T0,T1,T2,T3,T4,T5,T6,T7
,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5
, T6 arg6, T7 arg7)at System.Management.Automation.Interpreter.DynamicInstruction`9.Run(Interpre
tedFrame frame)at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.R
un(InterpretedFrame frame)
SharepointView

One has to be careful when specifying the view name.

Please do not use the view’s literal name, use the GUID.

To get the GUID, one can access the view and select the

Browser’s source view:

viewName

SharePoint Administrators can also use the Site Settings, specifically

“Views” panel to manage and access Views
listViews

Once we select a view, the browser’s URL will contain the view name.

 

Source Code

Github.com

getListItems.ps1

https://github.com/DanielAdeniji/MSSharePointListRetrieveContentsUsingPowerShell/blob/master/getMSSharePointListItems.ps1

 

Review Source Code

Read Configuration File

Let us read the configuration file.  What better code to steal than Keith Hill’s.

Creating and using a configuration file for your Powershell Script

http://rkeithhill.wordpress.com/2006/06/01/creating-and-using-a-configuration-file-for-your-powershell-scripts/

# Creating and Using a Configuration File for Your PowerShell Scripts
# http://rkeithhill.wordpress.com/2006/06/01/creating-and-using-a-configuration-file-for-your-powershell-scripts/
function readConfigurationFile()
{

   $global:appSettings = @{}
   $config = [xml](get-content $configurationFile)
   foreach ($addNode in $config.configuration.appsettings.add)
   {
	
	  if ($addNode.Value.Contains(',')) 
	  {
		  
		# Array case
		$value = $addNode.Value.Split(',')
			
   	    for ($i = 0; $i -lt $value.length; $i++) 
	    { 
			$value[$i] = $value[$i].Trim() 
	    }
	 }
	 else 
	 {
		 
		#Scalar case
		$value = $addNode.Value
	  
		  
	 }
		 
	 $global:appSettings[$addNode.Key] = $value
	 
    }

}	

 

GetListItems

GetListItems

 

##############################################################################
#.SYNOPSIS
# Gets list items using New-WebServiceProxy
#
#.DESCRIPTION
# This function connects to the web service Lists.asmx and retrieves the contents
# of the SharePoint List.
#
#.PARAMETER webURL
# URL
#
#.EXAMPLE
##############################################################################
Function GetListItems
{

     param 
     (
      [String]$webURL
     )

	 [System.Xml.XmlNode]$nodeListItems = $null
	  
      $uri=$webURL+"/_vti_bin/Lists.asmx?wsdl"

	  if ($bCredentialExplicit)
	  {

		#Explicit Credentials
	    Write-Host -ForegroundColor Green "Please pass the credentials that have access to the site: "$webURL

	    $credential=Get-Credential
		
	   #Explicit Credentials
	   $listsWebServiceReference = New-WebServiceProxy -Uri $uri -Credential $credential
		
	  }
	  else
	  {

		#Implicit Credentials
		$listsWebServiceReference = New-WebServiceProxy -Uri $uri  -UseDefaultCredential
		
	  }	
	  
	  if ( $listsWebServiceReference -eq $null)
	  {
	  	  	Write-Host "Connection failed"
			return $null
	  }
	  
	  try
	  {
	  
	
		$xmlDoc=New-Object -TypeName System.Xml.XmlDocument
		 $query = $xmlDoc.CreateElement("Query")
		 $viewFields =$xmlDoc.CreateElement("ViewFields")
		 $queryOptions =$xmlDoc.CreateElement("QueryOptions")
		  $viewFields.InnerXml = $viewFieldsValue
		  $query.InnerXml = $queryValue
		  $queryOptions.InnerXml = $queryOptionsValue
		  $nodeListItems =$listsWebServiceReference.GetListItems(
																  $listName
		, $viewName
		, $query
		, $viewFields
		, $rowLimit
		, $queryOptions
		, $null
		)

																
	    }
		catch 
	    # Powershell try/catch/finally
	    # http://stackoverflow.com/questions/6779186/powershell-try-catch-finally
	    {
	
		$errLine = "Ex Name :- {0}" -f $_.Exception.GetType().FullName
		Write-Host $errLine -ForegroundColor red

		$errLine = "Ex Message :- {0}" -f $_.Exception.Message

		Write-Host $errLine -ForegroundColor red

		}		
		
		if ($nodeListItems -eq $null)
		{
			Return $null
		}
 
		Return $nodeListItems
		
}

 

writeFileXML

 

##############################################################################
#.SYNOPSIS
# Writes file into an XML File
#
#.DESCRIPTION
# This function writes data out as XML
#
#.PARAMETER nodeListItemsLocal
# nodeListItemsLocal
#
#
#.PARAMETER outputXmlFilePathLocal
# outputXmlFilePathLocal
#
#.EXAMPLE
##############################################################################
Function writeFileXML
{

    param 
     (

          [Object]$nodeListItemsLocal
	, [String]$outputXmlFilePathLocal
     )


    $output = New-Object -TypeName System.IO.StreamWriter `
                -ArgumentList $outputXmlFilePathLocal, $false
	  
    $output.WriteLine($nodeListItemsLocal.Outerxml)
	  
    $output.WriteLine()

}

 

 

writeFileTextDeprecated

##############################################################################
#.SYNOPSIS
# Writes file into a Textfile
#
#.DESCRIPTION
# This function writes data as text file
#
#.PARAMETER nodeListItemsLocal
# nodeListItemsLocal
#
#
#.PARAMETER outputTextFilePathLocal
# outputTextFilePathLocal
#
#
#.PARAMETER TextFileSeparator
# TextFileSeparator
#
#.EXAMPLE
##############################################################################
Function writeFileTextDeprecated( $nodeListItemsDataRowLocal `
                                  , $outputTextFilePathLocal `
                                  , $TextFileSeparator)
{
 
  $stream = [System.IO.StreamWriter] $outputTextFilePathLocal
	
   foreach($dataRow in $nodeListItemsDataRowLocal)
   {
	
	  $itemID = $dataRow.GetAttribute("ows_ID")
		
	  $country = $dataRow.GetAttribute("ows_Country")
	  $region = $dataRow.GetAttribute("ows_Region")
	  $city = $dataRow.GetAttribute("ows_City")
		
	  $itemCreated = $dataRow.GetAttribute("ows_Created")
	  $itemModified = $dataRow.GetAttribute("ows_Modified")
		
	  $dataOut = $itemID + $TextFileSeparator
          $dataOut = $dataOut + $country + $TextFileSeparator 
          $dataOut = $dataOut + $region + $TextFileSeparator 
          $dataOut = $dataOut + $city
		
	  $stream.WriteLine($dataOut)
		
	
  }

  $stream.close()

	  
}

 

 

writeFileTextObject

##############################################################################
#.SYNOPSIS
# Writes file into a Textfile
#
#.DESCRIPTION
# This function writes data out as a text file
#.PARAMETER nodeListItemsDataRowLocal
# nodeListItemsDataRowLocal
#
#
#.PARAMETER outputFileLocal
# outputFileLocal
#
#
#.PARAMETER TextFileSeparator
# TextFileSeparator
#
#.EXAMPLE
##############################################################################
Function writeFileTextObject
{

   param 
    (
          [Object]$nodeListItemsDataRowLocal
	, [String]$outputFileLocal
        , [String]$TextFileSeparator		  
     )

    $objTextFileList = @()
	 
	
    foreach($dataRow in $nodeListItemsDataRowLocal)
    {
	
	$dataRec = new-object System.Object
		
	$dataRec | Add-Member -type NoteProperty -name ID `
                              -value $dataRow.ows_ID
		
	foreach ($element in $SharePointListColumnArray) 
	{
		
		$columnName = "ows_$element"
			
		$colValue = $dataRow.GetAttribute($columnName)
			
		$dataRec | Add-Member -type NoteProperty `
                   -name $element -value $colValue
			
	}
		
	$objTextFileList += $dataRec
		
	
   }
	
   $objTextFileList| export-csv $outputFileLocal `
            -notype -force `
            -Delimiter $TextFileSeparator
		
	  
}

 

 Main Module

# Check for file existence
# Using the Test-Path Cmdlet
# http://technet.microsoft.com/en-us/library/ee177015.aspx
$bFileExists = Test-Path $configurationFile

if ($bFileExists -eq $False)
{
    Write-Host "Configuration File ($configurationFile) File Existence Check failed!"
    return 
}

readConfigurationFile

#------------- Input Parameters --------------

## Specify the site URL from where you need to get all the list items
$webURL = $appSettings["SharepointURL"]
Write-Host("XML - Configuration File - SharepointURL = $webURL ")


## Specify the list name from where you need to get the list items
$listName = $appSettings["SharepointList"]
Write-Host("XML - Configuration File - SharepointList = $listName ")

## read SharePoint List Columns
$SharePointListColumnArray = $appSettings["SharepointListColumns"]
Write-Host("XML - Configuration File - SharepointListColumns = $SharePointListColumnArray ")


# Credential Explicit
$CredentialExplicit = $appSettings["CredentialExplicit"]

if ( ($CredentialExplicit -eq "Y") -Or ($CredentialExplicit -eq "y") )
{
	$bCredentialExplicit = $true
}
else
{
	$bCredentialExplicit = $false
}

Write-Host("XML - Configuration File - Credential ?  $CredentialExplicit -- Flag $bCredentialExplicit")


$XMLFileExtract = $appSettings["XMLFileExtract"]
Write-Host("XML - Configuration File - XMLFileExtract = $XMLFileExtract ")

$TextFileExtract = $appSettings["TextFileExtract"]
Write-Host("XML - Configuration File - TextFileExtract = $TextFileExtract ")

$TextFileSeparator = $appSettings["TextFileSeparator"]
Write-Host("XML - Configuration File - TextFileSeparator = $TextFileSeparator")


## $viewName is a string that contains the GUID of the view. 
#If you give empty value it will take the values from default view
[string]$viewName = ""

## GetListItems only returns 100 items
## http://sharepoint.infoyen.com/2014/06/16/getlistitems-only-returns-100-items/
## $rowLimit is a string that contains number of items to be retrieved from the list
[string]$rowLimit = "50000"

$viewFieldsBuffer = ""
foreach ($element in $SharePointListColumnArray) 
{
	$fieldRef = "<FieldRef Name='$element' />"
	$viewFieldsBuffer = $viewFieldsBuffer + $fieldRef
}

[String]$viewFieldsValue = $viewFieldsBuffer 
Write-Host("XML - Configuration File - SharepointList Column = $viewFieldsValue ")

[String]$queryValue="<Where><Gt><FieldRef Name='ID'/><Value Type='Number'>0</Value></Gt></Where>"

[String]$queryOptionsValue=""


# Get List Items
$nodeListItems = GetListItems $webURL

if ($nodeListItems -eq $null)
{
    Write-Host "Abnormal App Termination -- GetListItems returned null"
    return
}

#convert to Data Row
$nodeListItemsDataRow = $nodeListItems.data.row

#Output File - XML
if ($XMLFileExtract)
{
	writeFileXML $nodeListItems $XMLFileExtract
}

#Output File  - Text
if ($TextFileExtract)
{
	writeFileTextObject $nodeListItemsDataRow `
                        $TextFileExtract $TextFileSeparator
}


 

Invocation

Sample invocation

powershell c:\tmp\getListItems.ps1 c:\tmp\music.config

Sample Output

Sample XML Extract

XMLExtract

 

Sample Textfile Extract

TextfileExtract

 

 

 

Errors

Here are probable errors.

 

Error – Method Invocation Error



Exception Full Name :- System.Management.Automation.MethodInvocationException
Exception Message :- Exception calling "GetListItems" with "7" argument(s): 
"Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was 
thrown."


In our case this was caused when we invoked “GetListItems” with an invalid Listname.

 

Listening To

Listening to “Let her go” by Passengers.

https://www.youtube.com/watch?v=RBumgq5yVrA&feature=kp

Went out last weekend and was listening to a Radio Station when “Let her go” came on the Air.

BTW, “Nice one” to the young lady who talked up little Bissap Baobab ( http://www.bissapbaobab.com/ ) to me.

Made the trip across the Bay and really enjoyed it, very nice International Dance Music Friday and Saturday nights.

 

References

References – SharePoint

References – SharePoint – Client Object Models

 

References – SharePoint – Powershell

 

References – SharePoint/Powershell – SharePoint SnapIn

 

References – SharePoint/Powershell – Credentials

 

References – SharePoint/Powershell - CAML

 

References – SharePoint/Powershell - SOAP

 

 

References – Powershell – ExportCSV

 

References – Powershell – Exception

 

References – Powershell – Parameters

 

References – Powershell – Functions

 

References – Powershell – Configuration File

 

 

Technical: Burning Apple Mac OSX DMG files in MS Windows

Technical: Burning Apple Mac OSX DMG files in MS Windows

Introduction

A couple of weeks ago, one of my dearest friends Apple’s laptop crashed on her.  We tried bringing it back up, but in the middle of trying an OS re-install found out that we had misplaced the CD\DVDs that came with the computer.

To make matters more punishing we had problems getting online and re-installing over the Internet.  I do not think it is Apple’s fault per se, as it appears to be more Comcast’s as she lost her service for an extended period.

Nevertheless, because of the silly errors we are getting I suggested that may be the hard-drive had crashed as a worst case scenario.

Always be careful as to what you say to a lady who has will and money, as she took the laptop to Fry’s and she was nicely fitted with a new hard-drive.

With a new hard-drive, our local Apple Store installed a replacement OS for her.  Cost free, I must say.  Not sure, if it goes that away for every one, but for pretty it goes.

 

New Hard-drive, No User Software

And, as it has been a busy last couple of weeks for me, I only got back to her in the middle of last week.  She pleasurably recounted her good fortune and progress to me.

All she needed now was to re-install a couple of Application Software.

 

New Hard-drive, Replacement User Software

Downloaded Replacement Software

Thankfully, the vendors have the replacement software online and yours truly was able to download them.

Burn Replacement Software

Not quite smart, but I had the feeling that it might be best to burn the software using a burner utility that understands that DMG files are special install files.

If on Mac, it will probably be more straightforward.

But, unfortunately my loaner’s MAC went back with that old job and company.

So goggled for how to burn DMG files on a Windows box.

PowerISO to the rescue

PowerISO came up along with a couple of other tools. Tried the rest, but they did not recognize DMG file types.

Downloaded and installed a trial version of PowerISO.

 

 Use PowerISO

Usage of PowerISO is standard.  Choose the file you want to burn and your burning drive.

Please keep in mind that on a box running UAC or MS Windows 2012 and later, you might have to initiate PowerISO as an Administrator.

 

Burn

PowerISO is not freeware

PowerISO is a commercial product and you are likely to occasionally get reminders to purchase it.  It is cheap enough at $29 or so.

BuyNow

 

Install DMG Files

Invited the old lady out on a date night. And, she accepted and drove down to take us out.

But, alas I have yet to live up to a promise when a quick computer task stood in the way.

So most of last Friday’s evening was spent installing software and crashing a single lady’s otherwise quiet family night.

 

Quotes

Ravi Zachrias : Walking from East to West: God in the Shadows

“We count many costs in the Christian Life, and God in his way prepare us for them all.  Still, the heart is never fully ready to face a significant loss”