Changing Font Size in Notepad++
Notepad++ is a very nice editor for use on a Windows computer. I have it on a number of machines. For some reason, on one of my machines, the text font was too small. It was easy to find on the internet that I could change the font size with Settings > Style Configurator. However, the font size did not change. Here is the trick: if you decide to change the global font, you will also need to check the
"Enable global font" and "Enable global font size" check
boxes.
I found that advice here.
White Space
I described in the past how to have good visibility and good control over white space. Now I want to tip you off to a side-effect of updating Notepad++ to a new version: A new version of Notepad++ wipes out your white space setting. You will end up with tabs again for the automatic indents, which can break code. So, when you update to a newer version, check the white space settings and fix them in necessary.
Robert
Monday, July 25, 2016
Thursday, March 10, 2016
Google AlphaGo Software Defeats World Class Go Player
The Wall Street Journal article "Google Beats Go Champion" by Alastair Gale and Jonathan Chen, March 10, 2016, page B5, describes how the Go program owned by Google, AlphaGo, defeated former world champion Lee Se-dol in the first game of their 5 game match. Previously, this computer program had defeated the European Go champion Fan Hui 5-0.
The importance of AlphaGo is enormous. The same techniques could be applied not only to robotics and scientific research, but so many other tasks .... “You can apply it to any adversarial problem—anything that you can conceive of as a game, where strategy matters,” says Chris Nicholson, founder of the deep learning startup Skymind. “That includes war or business or [financial] trading.”
The quote above is from this article:
http://www.wired.com/2016/01/in-a-huge-breakthrough-googles-ai-beats-a-top-player-at-the-game-of-go/
Both the business aspects of this development and the software developments are interesting. From the business perspective, it is interesting to notice that Google did not develop this program. Google acquired AlphaGo when it purchased the U.K. company called DeepMind.
From the software perspective, the types of algorithms used by AlphaGo are of interest. At its core, the program uses a machine-learning method known as deep learning. The AlphaGo team says in a technical article that they introduced a new search algorithm that combines Monte Carlo simulation with value and policy networks. The program uses two neural networks. One is a policy network that suggests a limited number of moves. The second is a value network that reduces the depth of a search, maybe looking only 20 moves deep. The technical article also makes reference to convolutional filters, so there is some serious math used in the program.
AlphaGo is not just software. The hardware for the program used about 170 GPU (Graphical Processing Unit) cards and 1,200 standard processors, or CPUs.
The following article has a good description of the development of the program:
https://www.technologyreview.com/s/546066/googles-ai-masters-the-game-of-go-a-decade-earlier-than-expected/
There is a brief YouTube video embedded in the article that is very nice.
The game of Go is very different from the game of chess. In chess you start with all the pieces on the board in fixed locations. As a chess game progresses, the pieces move and when captured are removed from the board. In Go the board is empty at the start and pieces are added with every move, never moving after they are placed. There is only one type of piece in Go, a stone. In chess there are six types of pieces. The goal of chess is to capture the opposing king. In Go the goal is to control more space on the board than your opponent. The game of Go is more abstract than chess.
Having a Go program that defeats world caliber players is a monumental achievement. There is great anticipation in the business world for exploiting the type of algorithms used by AlphaGo.
Programmers always want to know which programming language was used in a program like AlphaGo. The programming language is not mentioned anywhere. The artificial intelligence and mathematics techniques are the driving factors towards the success of this endeavor.
The important take-away for programmers is that programming is not necessarily the star of a successful software product.
Robert
The importance of AlphaGo is enormous. The same techniques could be applied not only to robotics and scientific research, but so many other tasks .... “You can apply it to any adversarial problem—anything that you can conceive of as a game, where strategy matters,” says Chris Nicholson, founder of the deep learning startup Skymind. “That includes war or business or [financial] trading.”
The quote above is from this article:
http://www.wired.com/2016/01/in-a-huge-breakthrough-googles-ai-beats-a-top-player-at-the-game-of-go/
Both the business aspects of this development and the software developments are interesting. From the business perspective, it is interesting to notice that Google did not develop this program. Google acquired AlphaGo when it purchased the U.K. company called DeepMind.
From the software perspective, the types of algorithms used by AlphaGo are of interest. At its core, the program uses a machine-learning method known as deep learning. The AlphaGo team says in a technical article that they introduced a new search algorithm that combines Monte Carlo simulation with value and policy networks. The program uses two neural networks. One is a policy network that suggests a limited number of moves. The second is a value network that reduces the depth of a search, maybe looking only 20 moves deep. The technical article also makes reference to convolutional filters, so there is some serious math used in the program.
AlphaGo is not just software. The hardware for the program used about 170 GPU (Graphical Processing Unit) cards and 1,200 standard processors, or CPUs.
The following article has a good description of the development of the program:
https://www.technologyreview.com/s/546066/googles-ai-masters-the-game-of-go-a-decade-earlier-than-expected/
There is a brief YouTube video embedded in the article that is very nice.
The game of Go is very different from the game of chess. In chess you start with all the pieces on the board in fixed locations. As a chess game progresses, the pieces move and when captured are removed from the board. In Go the board is empty at the start and pieces are added with every move, never moving after they are placed. There is only one type of piece in Go, a stone. In chess there are six types of pieces. The goal of chess is to capture the opposing king. In Go the goal is to control more space on the board than your opponent. The game of Go is more abstract than chess.
Having a Go program that defeats world caliber players is a monumental achievement. There is great anticipation in the business world for exploiting the type of algorithms used by AlphaGo.
Programmers always want to know which programming language was used in a program like AlphaGo. The programming language is not mentioned anywhere. The artificial intelligence and mathematics techniques are the driving factors towards the success of this endeavor.
The important take-away for programmers is that programming is not necessarily the star of a successful software product.
Robert
Friday, January 1, 2016
Why you should avoid Linked Lists
On YouTube
Bjarne Stroustrup: Why you should avoid Linked Lists
https://www.youtube.com/watch?v=YQs6IC-vgmo
This is interesting and useful.
Robert
Bjarne Stroustrup: Why you should avoid Linked Lists
https://www.youtube.com/watch?v=YQs6IC-vgmo
This is interesting and useful.
Robert
Wednesday, December 24, 2014
Using printf in C++ Instead of cout
If you study C++ from textbooks you will see the cout function used to print. Later you might be surprised to see people using the older printf function from the C programming language within C++ programs. When I first ran across this practice I asked why the older function was used and I was told that it was more efficient.
It is hard to find supporting evidence for this claim, so here is a link to "In defense of printf" by Kenny Kerr, which has this quote: "...cout has a serious performance problem." The author presents a chart of performance measurement.
I remember the book Efficient C++: Performance Programming Techniques by Bulka & Mayhew recommending printf over cout, but I have lost my copy of this book and cannot verify my recollection.
So if you see someone using printf in a C++ program, be aware that it is an acceptable practice. For a student's purposes, cout is fine.
Robert
It is hard to find supporting evidence for this claim, so here is a link to "In defense of printf" by Kenny Kerr, which has this quote: "...cout has a serious performance problem." The author presents a chart of performance measurement.
I remember the book Efficient C++: Performance Programming Techniques by Bulka & Mayhew recommending printf over cout, but I have lost my copy of this book and cannot verify my recollection.
So if you see someone using printf in a C++ program, be aware that it is an acceptable practice. For a student's purposes, cout is fine.
Robert
Saturday, December 20, 2014
Dijkstra at the University of Texas Austin
I was surprised to learn that Edsger Dijkstra had been a Professor Emeritus in the Department of Computer Sciences at The University of Texas at Austin. I thought of Dijkstra only as a Dutch computer scientist. UT has a nice tribute to Dr. Dijkstra on the web. The world famous Dijkstra taught students at U.T.! Wow. That tribute article provides a very nice, detailed description of his career and the importance of his ideas. The university has scanned many of his papers and makes them available online. His famous article, “Go To statement considered harmful," is available as paper EWD 215: A Case against the GO TO Statement. It is a short paper, 4 pages plus the cover page. I recommend it as a short, very readable paper. His "Notes on Structured Programming" is much longer, but very influential. The university maintains an archive of Dijkstra's papers.
If you are curious about computer science, I cannot think of a better way to explore the field than to explore Dijkstra's writings.
Robert
If you are curious about computer science, I cannot think of a better way to explore the field than to explore Dijkstra's writings.
Robert
Sunday, October 5, 2014
The R Programming Lanuage
If you are interested in learning the R programming language, then I will share with you what I am doing to learn R. I have chosen to use Introductory Statistics with R by Peter Dalgaard.
http://www.amazon.com/Introductory-Statistics-R-Computing/dp/0387790535/
I am enjoying the book. The problems used in the book are from the life sciences. The author tells you to install the ISwR package. ISwR actually stands for "Introductory Statistics with R," so it is written for this book. The book is not perfectly clear on how to install the package, so I'll explain that.
After following the book's instructions on how to install the R programming language, you open the R programming IDE, you look for the menu item that says "Packages > Install Packages." You are asked to pick mirror site. I picked the one in Texas (TX), then you have a long list of packages to peruse. Find ISwR and select it. The only tricky part is that when it asks you if you want to install the package in a private library, you must say "yes." If you say "no" on a Windows machine, then the installation of ISwR breaks. Just say "yes."
Have fun learning R!
Robert
http://www.amazon.com/Introductory-Statistics-R-Computing/dp/0387790535/
I am enjoying the book. The problems used in the book are from the life sciences. The author tells you to install the ISwR package. ISwR actually stands for "Introductory Statistics with R," so it is written for this book. The book is not perfectly clear on how to install the package, so I'll explain that.
After following the book's instructions on how to install the R programming language, you open the R programming IDE, you look for the menu item that says "Packages > Install Packages." You are asked to pick mirror site. I picked the one in Texas (TX), then you have a long list of packages to peruse. Find ISwR and select it. The only tricky part is that when it asks you if you want to install the package in a private library, you must say "yes." If you say "no" on a Windows machine, then the installation of ISwR breaks. Just say "yes."
Have fun learning R!
Robert
Saturday, September 13, 2014
Programming Language Popularity
If you want to learn a second computer programming language, how do you choose which one to learn? One factor in making your choice might be the popularity of the language. If you want to get paid for knowing a language, you avoid languages that provide few opportunities. I think your first language should be based on a combination of popularity and its ease for learning. It is hard to beat Python as a good 1st language. You can peruse the popularity lists and see how Python stacks up in popularity.
PYPL PopularitY of Programming Language Index
From their website: "The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google : the more a specific language tutorial is searched, the more popular the language is assumed to be."
https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language
This is relying on the wisdom of the crowd.
The RedMonk Programming Language Rankings
The "RedMonk Programming Language Rankings" are derived from a correlation of programming activity on GitHub (usage) and Stack Overflow (discussion). This is a measure of language usage.
Go to this website and look for the latest ranking:
http://redmonk.com/sogrady/category/programming-languages/
Besides rankings, there are articles. An article at the time of writing this post is "Will Python Kill R?" (R being a statistical analysis language)
http://redmonk.com/sogrady/2013/11/26/python-r/
The TIOBE Index
The monthly TIOBE Programming Community Index shows the top 10 languages' popularity graphically and the top 20 languages with a rating. The numbers are based on searching the Web with certain phrases that include language names and counting the numbers of hits returned. This is a measure of interest in a language.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
The Transparent Language Popularity Index
This ranking is also based on internet searches. This website makes the open source software used for the ranking available for you to download, study, and use it yourself if you wish.
http://lang-index.sourceforge.net/
Trendy Skills
This website measures Skills that employers seek in the IT industry. This is the only list based on employment
http://trendyskills.com/
This webpage is interactive. You can click on the bottom to view by absolute popularity, popularity by percentage, and salary. The salary numbers might be misleading. If a preponderance of jobs for a language are in California, then that salary will be available only in California.
Trendy listed a language I needed to look up: "S". S is a statistical programming language.
http://en.wikipedia.org/wiki/S_%28programming_language%29
I am familiar with a major variant of S, called "R," but S was news to me.
No matter how many languages you know, you are always wondering what you should learn next. These popularity lists might be helpful to you.
Robert
PYPL PopularitY of Programming Language Index
From their website: "The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google : the more a specific language tutorial is searched, the more popular the language is assumed to be."
https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language
This is relying on the wisdom of the crowd.
The RedMonk Programming Language Rankings
The "RedMonk Programming Language Rankings" are derived from a correlation of programming activity on GitHub (usage) and Stack Overflow (discussion). This is a measure of language usage.
Go to this website and look for the latest ranking:
http://redmonk.com/sogrady/category/programming-languages/
Besides rankings, there are articles. An article at the time of writing this post is "Will Python Kill R?" (R being a statistical analysis language)
http://redmonk.com/sogrady/2013/11/26/python-r/
The TIOBE Index
The monthly TIOBE Programming Community Index shows the top 10 languages' popularity graphically and the top 20 languages with a rating. The numbers are based on searching the Web with certain phrases that include language names and counting the numbers of hits returned. This is a measure of interest in a language.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
The Transparent Language Popularity Index
This ranking is also based on internet searches. This website makes the open source software used for the ranking available for you to download, study, and use it yourself if you wish.
http://lang-index.sourceforge.net/
Trendy Skills
This website measures Skills that employers seek in the IT industry. This is the only list based on employment
http://trendyskills.com/
This webpage is interactive. You can click on the bottom to view by absolute popularity, popularity by percentage, and salary. The salary numbers might be misleading. If a preponderance of jobs for a language are in California, then that salary will be available only in California.
Trendy listed a language I needed to look up: "S". S is a statistical programming language.
http://en.wikipedia.org/wiki/S_%28programming_language%29
I am familiar with a major variant of S, called "R," but S was news to me.
No matter how many languages you know, you are always wondering what you should learn next. These popularity lists might be helpful to you.
Robert
Subscribe to:
Posts (Atom)