Term::ReadKey problems in Cygwin? Install the package vs. CPAN compile

I had an issue running Perl in Cygwin. I could install the modules I needed, but was unable to compile Term::ReadKey due to sgtty or some other challenges. I kept getting annoying messages around perl like this with “sgtty not found” and it seems to be an eternal issue. I found bug reports back to 2000!


Term::ReadKey in cygwin sgtty not found during cpan compile

I tried many different tactics within perl, but nothing worked. Turns out, there is a cygwin package you can install directly for this issue. You can run the setup.exe or setup64.exe for cygwin and select the


package to get the module going in perl under cygwin. You are also better-off long term on getting apt-cyg going in the cygwin environment to query and install packages easily in the environment and without the need to fire-up the setup.exe app each time you want to install a package.

Getting apt-cyg going in cygwin

Getting apt-cyg going in cygwin

Here is the install of Term::ReadKey via the setup apt-cyg:

Installing perl-Term-ReadKey via apt-cyg

Installing perl-Term-ReadKey via apt-cyg

Actually, tablet is a feature, not a product.

After using a Lenovo Yoga 2 Pro for the last 6 months or so, it is clear to me that the tablet form factor is a feature of a PC and not a separate product. People can belittle Windows 8.x, but the Intel Ultrabook platform is the future instead of the multiple device strategy of Apple. If Apple was still the sort of company it was with Jobs, it would have released a touchscreen Macbook even if it meant it might jeopardize iPad sales. Apple is not that kind of company anymore under Cook.

As iPad tablet sales stagnate, people are starting to realize that tablets are really not displacing PCs in terms of total functionality. Apple may want us to believe we are moving to a post-PC world, but tablets have really not been able to displace the PC or Mac. They have be great additional devices for people to give their kids or have around the house for an accessory. Microsoft is even marketing their Surface Pro 3 as the only tablet that can truly replace their laptop. We’ll have to see how that goes over for the third shot at the Surface. We all see people buy iPads then buy cases with built-in physical keyboards to try and make their tablets act like an underpowered laptop. It’s going to get old for folks. The sell will be tougher and tougher for Apple as people get sick of the churn of software-obsoleted hardware models.

Piling on more and more devices per individual is just not sustainable. People will realize this at some point. Sure, we all see the folks at the local Starbucks with an iPhone, iPad, and laptop all out on the table because they have bought the lie that each device complements the other in some weird way. It doesn’t. It is nice to have your laptop be a tablet with a touchscreen from time to time, but it’s not needed all the time. It’s great to be able to fold the laptop into a tablet for specific uses, but most of the time I use it as a fully-featured laptop with real applications and a built-in physical keyboard when I need it. I still have a thin form-factor and an Intel Core i7 when I want power.

Microsoft actually has a great opportunity here if they can deliver on Windows 9. Windows 8.x is damaged goods at this point from a branding perspective with all the bad press even though it is really quite workable for Ultrabook users like me. It will be interesting to see how this all plays out.

Steve Jobs famously referred to Dropbox as a feature, not a product. I think Apple will see that will also be their reality as their users realize alternatives to their product mix designed to have them consume more feature-limited products, not fewer, more capable ones.

Dan Garcia’s List of 10 Things To Increase Engagement in Computer Science


Dan Garcia, the Co-Creator of CS10: Beauty & Joy of Computing, shared his ten points to increase engagement and success around Computer Science at the CS4HS 2014 session on diversity in CS. . I thought they were great to keep in mind. I’m paraphrasing, so I might need to correct at some later moment.

  1. Pair projects and pair programming
  2. Allow students pick their projects
  3. Reading and writing on social impact of projects
  4. Reading others writing assignments and commenting on them (peer review)
  5. Everything in the class is free (no cost)
  6. Use clickers in lecture for active learning
  7. The class is not “sage on the stage” but the guide on the side. Lab work, students doing.
  8. Many opportunities to give back to academic field study to see diverse populations in leadership roles around CS.
  9. Use a graphical programming language tools. Keep it fun.
  10. The course name the course/curriculum should be named that captures the joy and fun.

Fixing false “insufficient storage available” errors on Android

For some reason, I started to get some of these Android errors and did some searches to figure-out what was happening. I think it happened after I used some cache cleaner apps or something. There are a lot of other posts out there on this but here is what works for me. I’m running Cyanogenmod 11 on an HTC One (M7) so YMMV.


Errors have started to kick-up on certain apps and I can’t even determine a pattern for ones that this generates for whatever reason. Chrome was one that this happened to for me. Google Play SHOULD be able to just play the update on the screenshot below. image

Except, it stops. So, in investigating this there are many posts out there that reference the app-lib directory under /data. Popping-open a Terminal and getting into the directory with root lets you nuke the files that get stuck. image

On CyanogenMod, you want to go to /data/app-lib and su or sudo to be able to nuke the stuck files. image

You can do a search with an ls -l and grep to see what is in there for the app. Then come back and delete it. They are little directories that might get stuck. This removes the data around the install that don’t want to play nice with Android. image

After the removal of the stuck directories and files, you can play the update.image

Update: June 1, 2014

The permissions on the problem files somehow got messed-up. You can see that the owner/groups are not system.


So, when I fixed the permissions with a chown (the -R option is not available to all the Linux folks out there!) it helps correct the issues.

This gets everything to have system owner and group.