Warcraft is a movie based on the game World of Warcraft (WOW). The story follows the lore contained in early versions of the game. The peaceful world of Azeroth is invaded by large green humanoid creatures called Orcs. The orcs arrive via magical means and immediately begin attacking human communities. With that as the backdrop, the movie explores the main characters involved in these events.
The portrayal of the orcs is quite good. The actors are able to convey a lot of emotion through all that CGI. In addition, they have a lot of really good dialog throughout the movie. And if you play the game for the Horde side I think you will really like this part of the movie. My only complaint would be the Orcs seem a little too tall, large. They aren’t giants in the game, just more muscular.
My main complaint about the movie would be the geography of the fighting. It doesn’t really make much sense. The humans seems to just ride outside the castle and then suddenly they are fighting orcs. It would have been better if the writers had simply selected a town as the base for the orcs. Then you could clearly see where the humans were attacking and where the orcs were defending.
From a game players perspective I was a little disappointed there weren’t more WOW classes in the game. Basically, they just had the warrior class and a few mages. That was it. There is a lot more magical stuff in the game and I would have like to see that in the movie. Also, almost no dwarves or elves in the movie.
Overall a good movie worth seeing. I think most folks will be able to follow the story without playing the game. Hopefully there will be more movies because the back story for the game is really good.
Posted by: MikeW Date: 2016-06-11 10:08 Tags: web, net, opera Click to Tweet
Remember the Opera Browser? It used to be that odd little browser that was really fast, but was kinda weird. Well, the company has made a lot of improvements recently that make the browser worth another look. The changes include:
- Switched to the WebKit engine for rendering. This is the same engine that is in iOS and Mac Safari. So no more rending weirdness.
- Ad blocker support at a standard similar to iOS. Turn this feature on and no more nasty ads. At all!
- New mobile battery saving features. For example, the Chrome browser works great on a desktop, but when it comes to battery life, it is a pig. Safari on the Mac already has these features, but now you have a browser that can do the same on Windows or Linux.
Why install an extra browser? Here is my use case. When do you need ad blocking the most? When you search of course. Because you have no idea where you will be sent. And a lot of these no name sites have the most browser slowing crap. So when I research something, I fire up Opera and search.
I can configure Chrome or Safari to let a few ads through on my favorite sites.
Opera is free. You should check it out.
Posted by: MikeW Date: 2016-06-05 22:02 Tags: general Click to Tweet
Sorry for the 6 months off. The blog needed some work and I was busy with my real job. So I kind of fell out of practice.
Anyway, over the Memorial Day holiday, I took some time to start fixing things up. So here are the results. The main thing was to make fixes to the the CSS. The site didn’t work right on iOS or Android. So I had to really dig in to figure things out. This is what I learned.
- Be careful what you include in a page. I was using a third party CSS feed reader to display links of interest. Turns out that was messing up my CSS.
- Android and Chrome do not like wide <pre> tags. You have to set both white-space and word-wrap values to get things to work right.
Anyway, the site should look much better on phones now. Enjoy!
Posted by: MikeW Date: 2016-01-13 16:46 Tags: html Click to Tweet
This trick can be used for any bit of text you want to copy to the clipboard a lot. Very useful for storing an e-mail address or user name that you need to copy and paste repeatedly.
These examples copy a command line for the Maven build tool.
Text Box Example
Text Area Example
Posted by: MikeW Date: 2016-01-10 19:34 Tags: windows Click to Tweet
Problem: For no apparent reason, the Windows 10 start button has stopped working. Clicking on the button does nothing. In addition, the Cortana search box may also be frozen.
In my case, I could right click the button. But a single click did nothing.
Solution: I found my answer on the British Telecom (bt.com) site. Option 2 worked for me. Just reinstalling all my apps seemed to do the trick.
It does make one wonder what makes this sort of thing happen. At least there is a fix!
I wanted to give a quick shout out for “The Expanse” tv show on the SyFy channel. Basically it is a somewhat realistic space adventure sometime in the not too distant future. The human race has colonized Mars and the asteroid belt.
The show consists of three story threads.
- Ice miners from the belt. Their routine mining run turns into quite an adventure. (Really like this thread.)
- A detective from the belt searching for missing girl. (Like this thread a lot too.)
- Political happenings on Earth as the other stories take place. (This thread confuses me a bit. I am not sure what it going on.)
Anyway, a very well done show. Check it out if you get a chance.
Posted by: MikeW. Date: 2015-09-15 09:48 Tags: java, java8, jvm, performance, garbage collection Click to Tweet
In Java 8, the JVM’s Permanent Generation has been replaced. But with what? Turns out it is called the Metaspace. It serves the same purpose as the Permanent Generation, but it is not a fixed sized. It is stored in the native heap, so you are only limited by the amount of memory on your system. This should eliminate any of those nasty out of memory errors generated by the Perm gen.
Here are a few good links to read up further on the subject.
Posted by: Mike W. Date: 2015-09-11 13:09 Tags: ruby, bundler, jruby, rubygems Click to Tweet
When you run
bundle install to store the ruby gems for your application bundler throws the following error message:
bundle install Encoding::CompatibilityError: incompatible encodings: UTF-8 and ASCII-8BIT
This is a really weird error and seemed to come out of nowhere for me.
Solution: Delete your Gemfile and retype it. Apparently an illegal character got pasted into my Gemfile. After creating a new file, the error message disappeared.
Posted by: MikeW Date: 2015-09-10 15:49 Tags: windows, linux, commandline Click to Tweet
Cygwin is program that lets you run Linux/Unix utilties on windows. One problem with Cygwin is you always forget to install something. What are you options? There are a couple of package managers for Cygwin with confusing names: apt-cyg and cyg-apt. One of this works well, but I can never remember which one.
Turns out there is an easier option. Do the following:
- Copy the Cygwin setup program to your Cygwin directory.
- For 32 bit, copy
- For 64 bit, copy
- For 32 bit, copy
Use the setup program to install new packages from the command line. Just navigate to your cygwin directory and type (use 32 bit or 64 bit command depending on your Windows version):
setup-x86.exe -q -P Package1,Package2,Package3
This launches the setup program which downloads the package and any required dependencies. No packaging software required.
You can get a complete list of available Cygwin packages at: https://cygwin.com/packages/package_list.html
Posted by: MikeW Date: 2015-08-25 21:55 Tags: misc, web Click to Tweet
I updated the home page so that my recommended list of links appears at the top of the page. They were at the bottom before, but I guess most folks were not able to see them. This list is updated more often than the main blog.
Posted by: MikeW Date: 2015-08-16 22:17 Tags: windows, windows10 Click to Tweet
Over the last couple of weeks I have tried to upgrade a few systems to Windows 10. In the process I learned a few things that are worth sharing.
- If you request an update through the normal process, it take about 2 days to for the download and upgrade to start. Not bad, but I don’t like to wait.
- You can download the Windows 10 ISO from Microsoft and upgrade that way. No waiting at all. Just put the image on a thumb drive and start the upgrade from the mounted image.
Note: If you need to make a bootable ISO, you can do that using the Rufus ISO utility for Windows.
What about a Clean Install?
I use a number of virtual machines for testing and I wanted a couple to be Windows 10. It seems like I read or heard from multiple places that you could do a clean install from the ISO as long as you had a Windows 7 or Windows 8 license key. Wrong!!!!
You cannot do a clean install with just a license key from Windows 7 or 8. In fact, here is the word direct from Microsoft.
Can I perform a clean install using the Free upgrade?
No, it will require that you are running a previous qualifying version and start the upgrade from within the qualifying version. You can initiate a clean install after completing the Upgrade.
Source: Windows 10 FAQ
Translation, if you are using a VM, you have to install the old version first. Then upgrade it. I can confirm the upgrade works if you use this method. Just install the old version. Patch it. Then run the install from the Windows 10 ISO. Windows 10 installs just fine.
I have not tested if I can do a clean install after upgrading from a license key. In other words, after I have upgraded a version of Windows with a particular license key, can I do a clean install of Windows 10 with that license key? I don’t know yet. I will give this a try this week and let you know.
Posted by: MikeW Date: 2015-08-04 09:49 Tags: linux, commandline, bash Click to Tweet
After executing a Linux command have you ever wanted to suppress all of the output? I have and I finally found the answer. Turns out the answer is pretty straightforward.
Here is a typical example. I execute
gedit and send the output to the bit bucket.
gedit > /dev/null
The command sends standard output to the
null device. However, any output that would be sent to standard error still appears in the terminal window.
To turn off standard error, you can pass a modifier to the expression. Here is the list of options.
> /dev/nullredirects stout to the null device
1> /dev/nullsame result as the previous command
2> /dev/nullredirects sterr to the null device
&> /dev/nullredirects sterr and stout to the null device
So to prevent any output in the terminal window the following command would be used:
gedit &> /dev/null
So to start the command as a background process would be:
gedit &> /dev/null &
And finally, to execute a command in the background without making it a child process of the terminal use this.
(gedit &> /dev/null &)
This command will launch
gedit in its own process and prevent any output from appearing in the terminal.
Posted by: MikeW Date: 2015-08-04 09:48 Tags: linux, commandline, xubuntu, ubuntu Click to Tweet
Resizing Windows on Xubuntu Linux 14.04 can be really difficult as the default theme sets the window border to 1px. This is very difficult to grab with a mouse. So how to fix this? There are two easy solutions.
- Go to Settings –> Windows Manager and select Daloa. This theme looks good and has thicker borders.
- When grabbing a border hold down the Alt key and right click the corner. This should make it easy to grab.
Posted by: MikeW Date: 2015-07-31 10:38 Tags: java, java se 8, development, REST Click to Tweet
My latest Java tutorial is now up on Oracle.com. This tutorial covers how to make a basic REST application using Grizzly, Jersey, and Maven. If you are new to any if these tools, this tutorial is a great way to try them out. You can launch the tutorial from here:
In the tutorial you create an application using the open source Grizzly web server and the Apache Jersey library to create a RESTful web service. The Jersey library is the reference implementation of the JAX-RS Java REST web service API. Jersey makes creating RESTful web services really easy and the tutorial takes you through the process step by step.
Finally, Apache Maven is a Java build tool that makes it really easy to create and manage projects. It also allows you to create new projects using well known tools and templates and automates the process of downloading required libraries. Finally, you use Maven to create create an uber jar file which stores all the required libraries for an application in a single file.
Posted by: MikeW Date: 2015-07-31 12:00 Tags: windows, windows 10 Click to Tweet
My Windows 10 upgrades have shown up 2 days after I requested them. Yay! That is not too bad, but I still thing there must be some way Microsoft could be more definitive on when your update will show up.
Also, I need to point out you can download a Windows 10 ISO from here. You just need a valid Windows license key to install. The only caveat is the image only does clean installs. So if you are ok with wiping your disk, you can install right away. So I hope you saved your old boxes or wrote down the numbers someplace, because now they become very useful.
Posted by: MikeW Date: 2015-07-29 14:51 Tags: windows, windows 10 Click to Tweet
Microsoft has released Windows 10 today! All users rejoice!
But is it released? I got out my windows laptops and started the regular Windows patching process. On my Lenovo, I finally figured out how you request an update (it is a Windows icon on the right side of your start menu). Well, when you click on the little app and fill out the form Windows starts updating right? Wrong! lol.
All you do when you “request” an update is put your machine in a queue for Windows 10 updates. There is no ETA of when you might get your update. Could be hours, days, weeks, heck who knows. This is, of course, a feature to ensure you have a “good” upgrade experience.
What? lol. If I have can’t update today, I am already having a “bad upgrade experience”. Somehow I think giving the folks an indeterminate upgrade date is probably not going to go over well.
Anyway, I will update you again when I finally win the Windows lottery. :)
Posted by: MikeW Date: 2015-07-19 09:03 Tags: java, java8, lambda, streams Click to Tweet
Are you interested in learning more about Java 8 lambda expressions and streams? If so, our free 3 week MOOC is live. Taught by Java Evangelist Simon Ritter, this course is just what you need to learn how to use lambda expressions and streams.
To sign up, go to this URL and enroll.
Posted by: MikeW Date: 2015-07-19 18:26 Tags: ruby, development, date, time Click to Tweet
How do you get a rfc 3339 or rfc822 date in Ruby? Why do you want either one? lol. Well, you need these specially formatted dates for Atom or RSS2 syndication feeds. To get the properly formatted dates for current time, use:
Or if you have a date object named
dateVar you can use:
Posted by: MikeW Date: 2015-07-13 18:22 Tags: unix, linux, commandline Click to Tweet
Ever want to run multiple SSH scripts but get annoyed by having to authenticate for each one? Well it turns out you can configure SSH to accept multiple commands over a period of time. The name I found on the net for this is SSH multiplexing. Command chaining would be a better name in my opinion. Anyway, this technique allows you to call several commands that use SSH but you only authenticate once! That’s right, authentication happens on the first command, no long waits for each step.
For example, I need to execute 2 rsync commmands to copy files to different parts of my web site. Here are the two commands.
rsync -vaz --rsh="ssh -l username" --exclude=bin/ --exclude=*.DS_Store /Users/username/www/blog/ example.com:~/blog rsync -vaz --rsh="ssh -l username" /Users/username/www/index.html example.com:~/index.html
For each command I would need to authenticate with SSH and each step would have to wait a few seconds for that to happen. So now I can replace this with a series of commands, but before I do that, a little configuration and explanation.
To get this to work, you need to create two things in your
- An empty file named
- An empty directory named
config file, enter the following:
host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600
The first line tells SSH that any host can use this command chaining feature. If you want to limit it to certain hosts it can be changed to just example.com:
The second line enables the multi command feature. It tells SSH that if an SSH socket alread exists for a host, it is ok to reuse it.
The third line tells SSH where to store the socket information. This is why we created a
sockets directory. The string
%r@%h-%p tells SSH to name the socket file
username@hostname-port. If the username you log in with is different then your login username, then you will need to change the name so it matches the remote host. For example:
Finally, the fourth line tells SSH how long to leave the socket open if the open socket is not closed. In this case a value of 600 seconds (10m) is specified. You can also use minutes:
60m as a unit of measure for this option.
With everything setup, let’s take a look at our
rsync commands. This time, we will wrap them in special SSH commands.
ssh -l remote-username -Nf example.com rsync -vaz --rsh="ssh -l username" --exclude=bin/ --exclude=*.DS_Store /Users/username/www/blog/ example.com:~/blog rsync -vaz --rsh="ssh -l username" /Users/username/www/index.html example.com:~/index.html ssh -O exit example.com
The first command sets up the shared socket. The
-l option specifies the login name. The
-N option tells SSH not execute a remote command. The
-f option tell SSH to wait in the background.
The last command closes the open socket for that host. The
-O option passes a command for SSH to execute on the open socket. In this case,
exit tells SSH to close the connection.
Well that is the short version, though not very short. If you need more information on this topic please take a look at the resources linked below from which this post was built.
Posted by: MikeW Date: 2015-07-07 22:35 Tags: movie, review Click to Tweet
Ex Machina is a scifi thriller about AI and androids (the robot kind, not the phone kind). The basic premise is a brilliant, but reclusive, genius founder of a Google like company lives in a remote place in Alaska or Canada. He invites his top developer out to his estate to help him with a top secret project which turns out to be a female android. The developer dude tests out the android and drama ensues when the android tells him the evil genius is an evil genius.
This review does contain spoilers so if that is an issue, stop reading now.
So as you may have guessed I have a few issues with this film.
Most of the elements for the movie were just not believable for me.
First, I didn’t buy the whole evil genius lair in the woods. It just comes off as silly to me. Too hard to build. Too remote to be useful. The shear logistics are just dumb.
The evil genius dude seems more like a drunken hipster than some sort of software/hardware genius. At no point do I think the character is capable of making the female androids.
Finally, the female androids are over the top. This dude’s first attempt at an AI results in Blade Runner type androids? Please…