Friday, October 7, 2016

PS4 Upgrade: OK, so the first thing you do is...

The first thing you do when you upgrade the hard drive on a PS4 is - you just snap the cover off of the top of the left side of the console. There aren't any screws to take the cover off - it just slides over. Then you take a Philips screwdriver and take the one screw out with the Playstation symbols on it and then slide out the disk caddy. Swap the drive for a larger one - SATA, at least 5400 RPM. If you have the 500G unit now, a 2TB drive will quardruple your available space. (It may be hard to find one larger than 2TB that meets the criteria of being smaller than 9.5mm high.) Then, all you have to do is reload the Operating System back on to the PS4 from a USB stick (It's only around 1G in size), log back into Playstation Network, and then reload all your save files that you either already have on the cloud if you have Playstation Plus, or you needed to have saved them via USB...

OK, wait. The first thing you need to do when you upgrade the hard drive on a PS4 is to back up all of your save games to a USB drive. You need to be logged in as each user before you do that, and all your save games will take under a gig even if you have save files for a dozen games or so. If you have users like your kids that don't have a PSN accounts, then you will have to make them a PSN account...

OK, now really, the first thing you need to do when you upgrade the hard drive on a PS4 is to make sure all your users have their own PSN account. You need a unique email address and a password...

Now what do you mean you have kids in the house that don't have their own email addresses? OK, so then the first thing you need to do is make sure all of your users have email addresses, since after they sign up for PSN they're going to have to verify their accounts.

Also, if they're a minor, it's going to take a while to set up that email account since you have to verify them and give permission for them to use certain services.

It's OK. I can wait.

Sunday, October 2, 2016

If you're going to get mad, maybe try being more involved.

My older son and I went over to my local Gamestop the other day, thinking that we were going to get the code for the new Pokémon character Volcanion.  Usually you either get handed a card with a code on it, and redeem the code in the game in the "Mystery Gift" section on the main screen, or sometimes it works by connecting to the Wifi at certain places and then going in the same part of the game. (McDonalds did that recently when the character Hoopa came out. Oddly, for that one you could just change the SSID of your own router to "McDonalds Free WiFi" and it would still work.) As we discovered later, Volcanion is not available in the US until October 10th.

There were a lot of people there trying to do trade-ins and other things, so we hung back while my son tried to go into the Mystery Gift section to see if it would work that way. After a while, we decided we were just going to wait in line, and we also noticed that they got in some of the new Lego Dimensions level packs and grabbed the Adventure Time level pack. (I would have gotten the Mission Impossible one instead if there was a Simon Pegg minifig.) They also had a Harry Potter Team Pack, the new Ghostbusters 2016 Story Pack, and some other team packs.

So, just as I'm about to be called up to the counter, a grumpy mom holding an Xbox One game, a receipt, and the arm of a not-quite-a-teenager walks in, and interrupts everybody to ask the clerk if there is anyone else working. He says no, but mentions there is someone else that is there, but on break. After a second or two, I recognize the kid as someone who was one of the people doing a trade-in while we hung back in the back of the store.  The mom is mad that her kid had just a few minutes before traded in NBA2K16, which he just got recently, and only got two bucks trade-in value for it. Moreover, he traded it in to get NBA2K17, which apparently nobody mentioned to him was just about to come out when he was buying NBA2K16, which is why he wanted to return NBA2K16. She left in a huff, presumably to get satisfaction in some other way. So, let's go over the problems with this scenario.

1) The kid's copy of NBA2K16 had been opened. For the most part, no retailers will do a return for open new software. Gamestop does do returns for used software because sometimes you end up with a bad disk here and there, or maybe you just don't like it. The kid could have just walked away with his copy of NBA2K16, told his mom that they wouldn't return it (and she could have still rolled in the store grumpy the same way that she did).

2) Knowing that the kid really wanted the new version, the store employee talked him into a trade-in just so the old version wasn't "collecting dust and taking up space". Some people do that, so I don't know how to speak to that. I'm not sure if Gamestop has a policy about minors doing trade-ins.

3) I didn't remember if the kid had had anybody with him when he came in the first time - Grumpy Mom was definitely not there the first time, though. I wouldn't send one of my kids in to try to do a return on anything by themselves just yet, even with a receipt, just because in most cases it's not exactly as simple as ordering something, and often you get asked for ID, or have to sign stuff.

4) As far as not knowing when the new one was going to come out, that's kind of a head-scratcher. From the Gamestop employee's view, they would be ecstatic to be able to sell a new copy of NBA2K16 right before NBA2K17 comes out, so I really can't blame them for not saying anything. If the kid had asked them, they would have told him, though. Moreover, the series has put out a new version every fall for longer than that kid has been alive, and the last 10 versions have all been between mid-September and the first week of October. Despite how easy the Internet has made it to look things like this up, not everybody is going to know, or even think to check.  What I'm really wondering is if when the kid bought NBA2K16, if the Gamestop employee asked if he wanted to preorder NBA2K17. My guess is that if they did, the kid said "no" by reflex and didn't give it another thought.

5) Sports games, especially ones that get released every year, have had historically bad trade-in value, so that's a non-surprise to me that it was only a $2 trade-in value. Of course, if Grumpy Mom was expecting a real return to have transpired, this wasn't even a thing that would have been considered beforehand.

I would have been a little bit more impressed with Gamestop had the employee offered to negotiate with Grumpy Mom, but I think that Grumpy Mom had already decided that leaving and taking it up with someone else was preferable to being in the store for even one more second. Clearly Grumpy Mom didn't want to go in the store in the first place, or she would have been present for the discussion about the trade-in, or perhaps she might have figured out about the new version had she been present for the original purchase.

So, what did we learn? If your kids are playing games, even a little bit of involvement will save you a lot of aggravation later.

Saturday, October 1, 2016

An odd bit of computing.

On my Ubuntu desktop machine I had finally gotten over the fact that every time a semi-large update comes across I have to type:

sudo make install 
sudo modprobe 8812au

to reinstall my wifi driver, because I picked a Wifi device that isn't well supported. 
If the update is _really_ big, I have to type:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

to clean up the OS because the /boot partition is just that - a partition with limited space. 
If it really bothered me, I could just save all my documents and wipe the drive and reinstall the 16.04.1 LTR from scratch, and I don't think the boot sector nonsense would be as much of a problem, but then the OS wouldn't ever properly clean up after itself and would slowly grow larger over time unchecked.

What really fries my bacon is that the Espon printer driver quietly failed while I'm busy doing the other stuff. So, I will have to hijack one of my kids' Windows 7 machines to print something. And, no I didn't make them upgrade to Windows 10 even though it was free.

(I suspect that a portion of my readers aren't laughing or amused because printing stuff is like, so ten years ago.)

Friday, September 23, 2016

Cubing Tips Part 3 - I'm still talking about practice.

I really wanted to wax philosophical about practice, but I think it's more important to nail down some specific things that will help people practice speedcubing more effectively. This will mostly be aimed at CFOP solvers, but I will try to add comments for Roux.

1) Slow, untimed solves. This is effective regardless of the method used. Work on consistency of steps, looking ahead, not turning the whole cube very much, and turning smoothly. If you wanted to take this idea to the next step, then start solving with a metronome dictating your speed, and then gradually increasing the speed while maintaining smoothness.

2) Work on your first four edges as an automatic reaction to what you see during inspection. Lots of random scrambles done slowly may start to get you familiar with what you have to do to keep your movecount down and cube turns to a minimum. Not everybody is going to start color neutral, so maybe at first you're just going to look at your target center and the four edge pieces that go with it for a lot of scrambles and see what the easiest way there is. However, some of them are not intuitive at first, and you might gain that knowledge by watching some machine solved cases. One of the extra features of the Android app Twisty Timer is that when it generates a scramble for 3x3x3, you can press the "Hint" button and it offers optimal solves for the first four edges for any of the six colors. Once you think that you can formulate a good plan, the next thing to do is to figure out if you can execute the plan without having to look at those pieces, because you need to start looking for what's next - the first corner/edge pair. For Roux solvers, apply this to the first block, and start looking for the second block.

3) As you execute the moves for each corner/edge pair to build the F2L, you need to locate the next pair of pieces for the next corner/edge pair. If you can see farther ahead than that, that's great. If you feel you're not doing something smoothly, look up a couple of different algorithms for that case and see what feels good. While the F2L should be done intuitively much like the first four pieces, it still may be helpful to learn some algorithms for the more difficult cases.  For Roux, the next step is the U layer corners, and is its own very difficult subset of algorithms, nearly as difficult as the last layer algorithms in CFOP, and probably will get accomplished using the main feature of item #4 below.

4)  For the last layer, my suggestion is drill, drill, drill.
Once you learn an algorithm, go on youtube and watch a couple of different people do the moves to look at move groupings and hand positions.
While the OLL is done before the PLL, and it might make sense to learn things in order, it's more important to learn the PLL first.  Early on you will only make use of only three or four of the OLL cases, having to use them in combination and even multiple times in some cases.

Once you feel like you have enough moves put together to finish the last layer, use the qqtimer subset feature to generate scrambles for the last layer.

For Roux, there is a different subset you can use that just scrambles the last six edges - it's labeled "Roux-generator ".

Don't forget, there's always more to practice (and not just at cubing).

Sunday, July 17, 2016

I know what Pokémon Go is short for...

... it's short for "Pokémon Go outside where their main demographic is woefully unfamiliar with the surroundings".

Since my older son has been playing Pokémon for many years, I felt like I should see what Pokémon Go was about. The first night it was available, I loaded it onto my phone, and after a little bit of user information setup, it puts up a map of our neighborhood with locations of a few Pokémon nearby. I took my older son outside with me, we turned the camera part of the game on, and we looked at the screen where it shows what we currently refer to as "augmented reality" or AR. I flicked a representation of a Pokéball at a representation of a Pokémon that somewhat seemed to be out in the neighbor's yard. (I'm sure that he didn't know that he had a Pokémon infestation.)


I know that I'm not really the intended audience for the game, so it's no big loss if I'm not playing it. My son doesn't have a smartphone, so he's not playing it. The game vaguely reminded me of a location-based game that was out a few years ago that one of my other neighbors wanted me try, but I didn't have a smartphone then (and frankly I was a little suspicious about the nature of a game that was GPS tracking you and all of your friends). For all I know, that game was Niantic's previous game - Ingress. It didn't have Pokémon, it just had a map with little lights all over it and it used local landmarks as control points for a team vs. team resource collecting game. While it didn't take off like Pokémon Go has, it was a good showcase for the location-based technology and apparently helped them better map places for Pokémon Go.

The Nintendo DS/3DS family couldn't play Pokémon Go because although it's fully capable of integrating the camera into AR-type games, it's only able to communicate with the internet via WiFi and doesn't have any sort of mobile data connection. (Honestly, I don't use the mobile data on my phone that often, so that was another strike for me against Pokémon Go.) Also, other than the handful of AR games that come with the DS/3DS systems, most developers have ignored AR gaming in favor of more traditional games. Also, all of the Pokémon games on Nintendo's handhelds have all had much more complicated mechanics (battles, RPG elements, interacting with NPC's) than Pokémon Go does.

I'm a little bit surprised that some adults have taken to Pokémon Go as much as they have, but I can only assume that's because they either haven't played any sort of AR game before, they're nostalgic for Pokémon, or they just needed an excuse to get outside and didn't have one.

I'm not surprised at all that kids (and some adults) have had odd discoveries and mishaps playing Pokémon Go. Most people these days aren't used to being pedestrians for any length of time, and the random distribution of the Pokémon may cause people to walk places that they otherwise might not go. This is made grossly more difficult by the fact that you're staring through your phone screen which effectively narrows your field of vision, and creates much lower situational awareness than you would normally have as a result.

Well, don't worry. Soon enough, we'll have the first mishaps with people playing Occulus Rift outside.

Happy Pokémon hunting to those of you who are, but be safe out there. To the rest of you, just remember that if you think that Pokémon Go is stupid, then you're probably not in the intended demographic.

Sunday, June 5, 2016

Cubing Tips, Part 0. It's only pieces.

So while I am trying to work on tips for people getting into cubing, I was reminded that I skipped some fundamental concepts. All of you people that are already under three minutes probably don't need to read this one, so you'll probably have to wait for me to type Part 3.

The standard 3x3x3 Rubik's cube has three distinct types of visible pieces. There are six center pieces of a single color, all of which are attached to the center spindle. These six pieces cannot move relative to each other. There are twelve edge pieces, each with two colors. There are eight corner pieces, with with three colors. Each of the pieces has a unique set of colors that correspond to the final location of the piece.  For example, the green and white edge has a final location that is on the edge between the green and the white center pieces. The corner piece that is orange, green, and white corresponds to the location of corner of the three faces that have the orange, green, and white centers. Since the centers cannot move relative to each other, all that is really happening is that there are twenty pieces moving freely around the center pieces. This is a little bit different from what many people initially see - often the first impression of a Rubik's cube they have is that there are 54 stickers. (They're at least colored tiles now, anyway.)

The next part of conceptual understanding is the idea that any specific set of actions performed on the cube always has the same effect on the cube, and thereby can be used to perform predictable operations on the cube. These operations are usually referred to as algorithms.

We typically describe algorithms as a specific ordered set of face turns, described in relative terms. Instead of using the colors of the faces, which can vary from cube to cube, we use a set of names for the faces that refer to their positions in space. Those names are Up, Down, Left, Right, Front, and Back. In the context of written algorithms you may see something like

R U R' U R U2 R' U2

which cycles the uf piece to the ub position, moves the ub edge piece to the ur position and moves the ur piece to the uf position, and rotates the corner pieces ulb, urb, and urf counterclockwise in place.)

R = Right face 90 degrees clockwise
U = Up face 90 degrees clockwise
R' = Right face 90 degrees counterclockwise (Typically spoken as "R prime".)

After that the only new notation is U2, which means to turn the Up face 180 degrees. You could also write U'2, but unless there's a specific reason to notate a specific direction, this is not commonly encountered. Remember - clockwise is from the perspective of looking at the face.

If you want to undo an operation, you need to do the opposite of each operation, in the reverse order. So, to reverse the move above, you would do the move

U2 R U2 R' U' R U' R'.

To notate a move of one of the middle layers, or slices, of the cube, the letters M, E, and S are used. M moves in the same direction as the L face, S moves in the same direciton as F, and E moves in the same direction as U. You may see other things in move notations, like the small letters x, y, z, and the small letters of the faces. The x, y, and z notations are to rotate the cube around the corresponding spatial axis, and the small letters of the faces refer to double layer turns, so f is a clockwise turn of the F face and the layer behind it. You can get started cubing without all of these small letter moves, but in any event if you want to learn the notation I would suggest bookmarking this page. You won't have to learn all of it at once anyway, so referring to it as needed will eventually give you enough familiarity.

A collection of algorithms that work together to solve the cube is referred to as a method. Instead of talking about what types of algorithms a method contains, methods usually refer to the overall style of the solution (layer-by-layer, corners-first, CFOP) or the inventor(s) of a specific solution (Roux, Petrus, Thistlewaite, Guimond, Waterman, ZZ.) Discussing any specific method may be outside the scope of what I intended, but in general there can be any number of methods. If you're just trying to get the cube back to the solved state, there is more than one way to get there. What algorithms are required depend on the steps we decide to take. Still speaking generally, the steps of a solution boil down to solving some of the pieces and then another group of the pieces, and then another, until all groups of pieces are in the correct locations and correctly oriented. Each subsequent group of pieces typically takes longer algorithms, knowing that we have to not upset the pieces put in place from previous steps. That's not to say that the previously solved pieces never move during the algorithms, you just have to pick algorithms that put the things that are already solved back into place by the end of each algorithm.

Saturday, May 14, 2016

My first official cube competition.

You would think that someone that's been cubing for 30 or so years would have been to a cubing competition by now, but I hadn't. Part of me had realized that the world had largely passed me by, and my usual standby, the ancient corners first solution that hasn't been viable since 1986 or so isn't going to win me any awards. So, when events started popping up here and there in my home state, it was easy to say that having kids at home and bigger stuff to worry about was a good reason not to go. But, as more time went on, I realized that it wasn't about winning, but maybe about learning things, and also about meeting other cubers. Under normal circumstances, I only run into new people that I haven't met before that can solve a cube once every couple of years or so. So, I decided to go to an event last weekend (Central Florida Summer 2016) and just see how I did, and meet some of the other people cubing in Florida.

The drive was a couple of hours, and thankfully uneventful. I actually didn't practice 3x3x3 in the car at all. I started with 4x4x4, went up to 5x5x5, and did a 6x6x6, and then I hoped that I would have a chance to finish a 7x7x7 solve in the car. Since I'm still using old solution methods, I'm well over 20 minutes on the 7x7x7 still. My first attempt at 7x7x7 got interrupted by the location of a rest stop on the highway, and the second attempt got interrupted by having to navigate once we got off of the interstate. So, I never did manage to finish one that day. Once we were there, I thought it best to just take my 2x2x2 and 3x3x3 with me since those were the only events I was competing in, and my notebook that I use just for cubing. I took my stickerless DaYan 2x2x2, which is sort of important later. The 3x3x3 I brought is a Yulong stickerless which I got fairly cheap on Amazon and it's pretty fast.

Since my wife wanted to explore a nearby nature area with our younger child, I got dropped off. Getting dropped off in a parking lot of an unfamiliar school was just like going to a high school math tournament. I waited in line, realizing that there were a lot of fairly young kids practicing 2x2x2 in line. I got to registration, filled out a piece of paper with my name and the events I was participating in, paid my $20, and tried to relax. The big upside to this whole operation was that I was meeting the guitarist from the band that I play in and his son (who had just recently gotten into cubing) at the event. It gave me something else to fill my brain with instead of just filling it with nervousness about the event and not knowing anybody there. 

Once I sat down, I practiced a little bit of 2x2x2 with my guitarist's son and a friend of his that he met at a previous tournament. I was able to finish easily before either of them, but I had to focus pretty hard on turning slowly so I could make sure I wasn't making mistakes. Eventually I got called for my heat in 2x2x2.

What happens at this point is that the person running that heat puts down a bunch of slips of paper with a competitor's name and space for times to be written in. Each competitor puts their own cube down on their piece of paper, and then the official grabs up all the cubes for that heat and takes them to the main table to be inspected and scrambled. Once your cube is scrambled, the piece of paper with your name on it and your cube go into a paper bucket and is taken to a table where there's a Stackmat timer and a judge. The paper goes to the judge, and the bucket is turned over on to the table, covering your cube. What's supposed to happen at that point is that the judge asks you if you're ready, and you have 15 seconds to inspect your cube and then arm the timer and start. The judge will let you know when 8 seconds have transpired, and then 12. At that point you really need to start arming the timer by putting your fingertips on the two contacts and waiting for the green light, because it takes a second or two.

I had used a Stackmat timer before, as I had one for a few years before it lost its mind. I use TwistyTimer to practice with on my phone now, but I think I need to get another Stackmat at some point if I'm going to do more of these events.

Event 1 - 2x2x2

14.65/DNF/12.64/14.49/13.89 (14.34 avg)  52nd out of 73

That's around 6 times as slow as the winners who averaged between 2-1/2 and 3 seconds , and not nearly as good as my usual average of closer to 12 seconds.

My first solve of my first heat almost got me a DNF because the timer hadn't been reset by the judge beforehand. I couldn't remember if the new Stackmats reset on their own if it's been long enough since a previous solve or not, so it didn't occur to me to ask. The judge realized the mistake and took my cube up to be rescrambled and I got to solve again, but I was more than a little rattled. It didn't help that I was at a table at the front where all the cube moms were spectating. My second attempt was a DNF, because I opted to use that DaYan 2x2x2 that was a little bit looser and had a preferable color scheme. When a puzzle pops, you're allowed to put the pieces back in and finish the solve, but the DaYan 2x2x2 has three or four little mini edge pieces that pop out when a corner piece pops out, and it didn't seem realistic that I could just put it back together quick enough. The last time I put it back together took me a couple of minutes, and all I wanted to do at that second is take a second by myself and reassemble it away from the spectators. Had I used my Cyclone Boys 2x2x2, I might have finished all five solves, but probably a little slower. The first time I ever popped a piece on the DaYan 2x2x2, it was at a stoplight on the way to picking up my wife from work. I had to wait until I got home to try and get it back together. I think that it only tends to pop when it's comedically inconvenient. My guitarist's son had me spooked thinking I had made the cut for the second round, but it turns out it was just an anomaly of how the solves were displayed on where he was looking at the scores.

Event 2 - 3x3x3

31.69/36.56/32.26/32.84/37.35 (33.89 avg) 40th out of 71

That's a little less than four times as slow as the winner, on average, and maybe only a second slower than my average when practicing. I was a little less rattled, but not enough for me to pull out any solves under 30 seconds. The last judge that I had was amused by my ancient solving technique since they mostly only see CFOP. Oddly, some of the younger cubers think that Corners First is RedKB's method (an early Youtube cuber) instead of Minh Thai's (the method I use) or Jeff Varasano's.

While I was waiting between solves, I asked a couple of the 10-year olds standing around to show me how they do the Z permutation (M2 U M2 U M' U2 M2 U2 M' U2) and it was just frightening how fast they could whip through the move, and it was also very interesting to watch each of them watch the other do the move, because their execution varied a little bit. One of them was more crisp and staccato, the other one was just as fast but smoother. All of the M slice moves were done with the ring or middle finger of their left hand from behind the cube, where the U layer moves were done with their index and middle fingers of their right hand. It reminded me of drum rudiments.

Best single time in both of those events and everything else went to Daniel Wannamaker, currently ranked 31st in the world in regular 3x3x3 as of the other day and in the top 100 on all the events from 2x2x2 through 7x7x7. I actually talked to him briefly about something I saw other people doing on 4x4x4, and he walked me through the algorithm that he uses for doing an edge pair flip during the last layer. (Lw2 B2 U2 Rw' U2 Lw U2 Lw' U2 F2 Lw' F2 Rw B2 Lw2) As it turns out, he didn't win 2x2x2 and Pyraminx because his average wasn't as low. Daniel better watch out for Katie Hull, though. She won Pyraminx and was close behind on a lot of the other events. Dawson Wellman won 2x2x2 by putting up some great times in the last round.

I only ended up talking to a few of the cubers. I talked to Jeff Stinson briefly, as I surmised early on that we were the oldest two people competing, and we had a good laugh about being the only old men there. I also talked to someone that had only been cubing for a few months that was almost as fast as I was already, a programmer fond of making rather tall towers of cubes, and hard luck case that had a few too many DNF's. I also got to see a Mixup Cube in person for the first time, and my guitarist looked very oddly at a Mirror Cube which he had not seen before.

It was a little odd that the guitarist from my band and I both opted for superhero shirts. I almost wore a cube shirt, but since we were at a cubing competition I saw absolutely no need to identify myself to others as a cuber. So, if you can't be yourself, be Batman. (My guitarist wore a Spiderman shirt that I think is the somewhat obscure Spiderman 2099 logo.)

I think that I achieved all of my intended objectives - I got to participate in a real competition, I got to be in a room where my cubing was not any sort of an oddity, I got to hang out with my guitarist and his son outside of a music venue, and I made an effort to talk to some of the other cubers - both experienced and new.