Category Archives: software

Installing SonarQube on CentOS/RHEL

The following webpage has detailed instructions for installing and configuring SonarQube on a RHEL/CentOS 7 Linux server (real or virtual) and it was one of the best guides I’ve seen (and I’ve reviewed half a dozen):

The webpage  outlines how to update your Linux server, how to install MySQL (as a data repository) on it, and how to then install SonarQube software on the server.

Some things to note. First, this procedures has you using wget to get v6.0 of SonarQube:

Check out the page https://www.sonarqube.org/downloads/ and see the latest version of SonarQube (e.g. 6.4) and replace “sonarqube-6.0.zip” with the latest version (e.g. “sonarqub-6.4.zip”.)

One important thing to note: this procedure creates a userid and database called sonarqube.

Later in the process, the changes made to /opt/sonarqube/conf/sonar.properties needs to match this:

sonar.jdbc.username=sonarqube                                   sonar.jdbc.password=password
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

If the userid, password and database you created in MySQL do not match what it is the sonar.properties file, you will see cannot connect to the database errors in the /opt/sonarqube/logs/web.log file and SonarQube will not come up.

Once you enter: sudo ./sonar.sh start

Get the IP address of the SonarQube server and then go to a browser and enter:

If you are worried about the WannaCrypt ransomware (and if you are a Windows user, you should be), then…

…Then you want to go here and download and install the appropriate software for your Windows system: Security Essentials Download.

According to this, Microsoft has upgraded it’s security software to prevent similar attacks. That’s good. What’s not good is that you can be certain there will be a wave of copycat attacks coming. Get the software and install it today.

It’s not because most developers are white that AI has hard time with non-white faces. It’s this….

An example of a neural net topology
This piece, Most engineers are white — and so are the faces they use to train software – Recode, implies that AI software doesn’t do a good job recognizing non-white faces because most engineers (i.e. software developers) are white. I’d argue that the AI does a poor job because of this: the developers aren’t very good.

Good software developers, in particular the lead developers, take an active role in ensuring they have good test data. The success of their software when it goes live is dependent on it. Anyone using training data  (i.e. using test data) in AI projects that is not using a broad set of faces is doing a poor job. Period. Regardless of whether or not they are white.

If the AI is supposed to do something (i.e. recognize all faces) and it does not, then the AI sucks. Don’t blame it on anything but technical abilities.

 

 

Two additions to my github repositories: one for IBM Watson, one for monitoring Linux systems

I’ve recently added two repos to my github account:

The first one is some proof of concept code I wrote to demonstrate how to work with IBM Watson’s Tradeoff Analytics service using node.js

The second one is some sample code I have had for some time that does simple server monitoring of a Linux server.

There is no intellectual property involved in these repos: it is simple code based on documented code samples found in many places on the web.

For more details, see my Github landing page, here: blm849 (Bernie Michalik)

How to stop Whatsapp from sharing information with Facebook 

Instructions are here as to how to stop Whatsapp from sharing information with Facebook.

Facebook owns Whatsapp. I expect this simple opt out may not be so simple in the months and years to come. You may have to make a harder choice then when it comes to privacy on Whatsapp. In the meantime, you can follow those instructions to maintain the separation between your Whatsapp data and your Facebook data.

A primer for Pokemon Go

It’s only been out for a very short time, but already there’s at least one primer for it, here: Ten Things I Wish I Knew When I Started ‘Pokémon GO’ – Forbes. If you want to leapfrog others playing it, read this and then get going.

More thoughts on Waze

I have thought a lot about Waze since I started using it. Without a doubt, it has improved my life substantially. Here are some other thoughts I had as I used it.

  1. Waze is an example of how software will eat the world. In this case, the world of gPS devices. Waze is a GPS on steroids. Not only will Waze do all the things that a GPS will do, but it does so much more, as you can see from this other Waze post I wrote. If you have a GPS, after you use Waze for a bit, you’ll likely stop using it.
  2. Waze will change the way cities work. Cities are inefficient when it comes to transportation. Our work habits contribute to that, in that so many people commute at the same time, in the same direction, on the same routes, each work day. Waze and other new forms of adding intelligence to commuting will shape our work habits over time. Drivers being able to take advantage of unbusy streets to reduce congestion on major thoroughfares is just the start. City planners could work with Waze to better understand travel patterns and travel behaviour and incorporate changes into the city  so that traffic flows better. It’s not that city planners don’t have such data, it’s that Waze likely has more data and better data than they currently have.
  3. Waze is a great example of how A.I. could work. I have no idea how much A.I. is built into Waze. It could be none, it could be alot. It does make intelligent recommendations to me, and that is all I care about. How it makes those intelligent recommendations is a black box. Developers of A.I. technologies should look at Waze as an example of how best to deploy A.I. Those A.I. developers should look at how best A.I. can solve a problem for the user and spend less time trying to make the A.I. seem human or overly intelligent. People don’t care about that. They care about practical applications of A.I. that make their lives better. Waze does that.

Why Python programs often have this: `if __name__ == “__main__”:`

If you were wondering why Python programs often have this: `if __name__ == “__main__”:` and then a call to a function, a good explanation is here.

In short, if your program is used as input to other programs, then you want to have that snippet of code in them. If your programs are standalone, you can get by without it.

A good article: Why I Am Not a Maker. With one comment by me.

If you hang around with or are involved in some way with IT people, you will come across individuals extolling the virtues of being a “Maker”. Making things (typically software or IT systems) is seen as a virtue, in some case one of the highest virtues, and the implication is that makers are virtuous people.

A well written critique of that is here: Why I Am Not a Maker – The Atlantic. If you consider yourself  a maker or aspire to be considered one, you should read it. A key point is this:

When tech culture only celebrates creation, it risks ignoring those who teach, criticize, and take care of others.

This is true: tech culture sometimes places little or no value on other activities, such as the ones that the article mentions.

My main criticism of the article is that it has a blind spot for the middle ground. I know plenty of creative people whom I consider makers that also take care of others, teach, manage, administer…you name it. Often time the things they make are superior to those of people who devote themselves to being makers.

Being a maker is a virtuous thing, for the most part. But so is teaching, providing care, managing, cleaning, coaching and many other positive activities. Find the thing you are good at and contribute positively in your own way.  If you can make some things along the way, all the better.

Some thoughts on recently teaching myself Python

I have jumped on the Python bandwagon lately. I did because I was finding that more and more of the examples provided for integrating with APIs and for working with new technologies were often in Python. So I decided, why not? At first I tried teaching myself by way of various web sites, but I didn’t find this a satisfactory way to ramp up my skills as well as I wanted. It wasn’t until I came across this book in my local bookstore, Python in 24 Hours by Katie Cunningham and started learning from it did I find my skills increased at the level I wanted. By the time I was through it, I found I was writing good (not great) Python code at the level I was happy with. Furthermore, I felt I had a pretty good handle on the language, its features, and what it can do.

I highly recommend this book, and Python too. If you are new to programming, or are thinking of picking up a new language, read this piece: Why Python Makes A Great First Programming Language – ReadWrite.

Git 201: how to get to the next level with git


There are quite a few really good introductions to git. I’ve written about them here. Once you get past “git 101”, where do you go to learn more and be more productive with git? I’d like to recommend this article:
developerWorks: Learn the workings of Git, not just the commands. It should help you get to the next level. I particularly like the diagrams: there are alot of them, and they help you better understand the flow that can occur when you really start capitalizing on git.

How to learn Python: fast, slow and somewhere in between

As one of my areas of skill development this year, I am teaching myself Python (the programming language). I had a number of different sites offering help with it, but I have found these three the most useful, so far. I have found each of them useful, but I have spent the most time on “medium”. If you are interested in learning Python, I recommend you check these out:

Fast: Tutorial – Learn Python in 10 minutes – Stavros’ Stuff. Great as a cheatsheet or a quick intro to Python or if you used to do work with Python but haven’t done it in awhile.

Medium:the Python Tutorial from python.org. If you know other programming languages, this is a good starting point.

Slow: Learn Python the Hard Way. Good if you don’t know much about programming and want to make Python the first language you know really well.

Are you trying to learn to code? Are you finding it difficult?

It’s likely not you. As this piece argues, Learnable Programming, there are limits to the approaches that online sites have which many can get by, but some cannot. If you are in the latter group, give this piece a read. Afterwards you might think: aha! That’s why I couldn’t get it!

With technology, if you don’t understand something, don’t assume the problem lies with you. It may, but most of the time, the problem lies with the technology.

‘Notability’ is App of the Week and is free this week. You should get it.

I just started using Notability in the last few weeks on my iPad and I love it. It allows me to quickly and easily capture notes while I am interviewing clients or jotting down ideas during work. I can type in text or I can use a stylus and draw/scribble my notes and drawings. I can also take photos of things and then scribble on them. I can capture audio if I want too. There’s alot of ways to capture information.

Once I capture the info, I can either leave it on my iPad, email it to myself, or use any number of cloud services (e.g., Dropbox) to save the output. The output can be PDF, RTF or other formats.

It’s a great app, and I didn’t hesitate to pay the $2.99 for it. But now it is free, there is no reason for you not to download a copy and try it.  I bet you will love it.

For more info, check out the iPad App Store or read more about it here: ‘Notability’ Named App of the Week, Available for Free – Mac Rumors