Sad story about print books

Sad story on the decline of print books used by students and faculty in their studies or checked out at libraries (over 60% decline). Nowadays digital articles, ebooks, and online reference management software are the main tools for scholarly research. The wealth of knowledge is not lost when switching from print to electronic formats but what I feel we lost is how much we perceive the work done by authors. When we find a book on a bookstore shelf, we not only see the nice looking cover but also notice the volume size. The physical appearance of the book is important for our perceptual mindset – big book means more information regardless of quality. But we we opt for an online version that is both searchable and easily accessible with our computers. With digital books, size doesn’t matter because we are capable of acquiring all sorts of ebooks regardless of quantity (number of pages) or quality (author X vs Y). We then search rather than read cover to cover. By loosing the physical essence of print books, its practical value as a whole book diminishes to us. Discouraged authors will then print less books or write smaller volumes. There is no way around this problem other than appreciating what authors write through #reading and #learning from what they give us.

Read the original article Dan Cohen (2019) “The Books of College Libraries Are Turning Into Wallpaper” in The Atlantic May 26, 2019

Watching car races on TV

When cars were all mechanical and less tech and TVs were black and white with antennas, watching car racing was so memorable. You can’t replay or pause like today. Weather breaking broadcast reception were fans’ greatest fears. Now technology takes over mostly everything at the pit and on tv. Watching races seems to me more like watching a perfectly choreographed movie than watching human intellects and fitnesses compete . Still races are entertaining but are more perfect, enormously digital, and in hidef than the past. Sports technology is leaving lesser room for our imagination. Maybe we are witnessing the last episodes of natural racing before esports fully take over and self driving cars powered with algorithms become the predominant racing entertainment (not sport). Luckily so far we don’t have self driving horses so maybe that type of sports tradition may last longer than car racing, but only if we as human preserve our animal species before advancing AI. Enjoy watching #Indy500 today before robots watch it on our behalf. #technology #sports

Keep Learning

These days students graduate and become the new interns/young professionals in the workforce. Energy is high and spirits are up. They want to make a difference. We as long time professionals should embrace that, but they cannot do it alone. We should help them and support them. Don’t hire them and just let them stay alone. Work with them and frequently communicate with them. Not once a week but every day of the week! They learn and we learn. We should also learn from our past mistakes and from our past experiences, but we must always learn and help if we are to move ahead and make something new and useful. As Henry Ford once said “anyone who stops learning is old, whether at twenty or eighty”. Keep learning

Are Keyboard Shortcuts Still Shortcuts?

I remember the time when we as students first learned to program on early versions of PCs and terminal machines connected to a mainframe. Word processor software, namely WordStar and WordPerfect, were your everyday companion to write papers or stories. Productivity utilities for the first personal computers were innovative, especially that that memory allocation and processing power were so scarce. Developers of such tools had to find ingenious ways to create products that do not occupy all the machine resources to leave you with enough capacity for your work and software. What is now common in the development environment, including multitasking, multiple windows, screen splits, live code sharing, containers, cloud storage syncs, wireless headphones while coding, StackOverflow or Google for help, and virtually anything else you do today while coding did not exist a few decades ago. If I would pick up on some technologies that seem to stick around are:

– Listening to music while coding but not in the same and exact way we do today. You would have a double radio cassette player (if it is one of the big ones then you are rich!). The sound is covering the room until we managed to get our own Sony Walkman. 

– Dark, green, or cyan desktop screens like terminal machines, monochrome monitors, and Commodore computer screens.

– Programming languages and standard operating system shell commands that are still common “dir” “cd”, or words like compile and run.

– Keyboard shortcuts! Yeah, shortcuts. The CONTROL key, ESC Key, Function, Alt, Option, Command on your keyboard were a legacy for developers. (Side note some keys like the Command Key or the Windows key were possibly part of the political battleground for Microsoft and Apple.)

Non-developers may not really know or care about the CONTROL key (other than copy and paste). They may find the TAB key convenient while writing but are not aware of the war of the worlds in TAB vs SPACES when writing code. They would see the function key or keys (F1, F2,.. ) on their computer but not do anything with it. They will not appreciate when young developers in the late eighties would find ingenious ways to make use of such keys for games, tools, and software. Apple also put a dagger in the developer’s heart when the ESC key was removed in their latest MacBook Pro. That key was so essential for developers using VIM and other text-based editors that people like me managed to turn a hardly used key CAPS Lock as my ESC key. Love it or hate it but Apple kept faith with its Command key which does not exist in Windows keyboard. It made it difficult for multi-OS developers using Windows/Linux, and MacOS to remember all the shortcuts when using the CONTROL key, the OPTION key, and the COMMAND key. On top of that, you have the ALT key, SHIFT-CMD, ALT-SHIFT-CMD, OPTION-CMD, CONTROL-OPTION-CMD, etc. and then add a character or number next to each one to perform a specific function.

To get an idea of how shortcuts can be confusing if you are switching between a Windows and MAC Visual Studio Code take a look at the shortcuts for Visual Studio Code https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf and compare it with the Mac version https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf

The difference is substantial, and that is for one product across two different platforms. If you want to learn the various Windows operating system keyboard shortcuts you can check the link https://support.microsoft.com/en-us/help/12445/windows-keyboard-shortcuts. For Mac, you can check https://support.apple.com/en-us/HT201236 Good luck remembering a lot of those keys.

In today development environment, key stroke shortcuts keeps getting created for every software product imaginable. Products like Visual Studio Code, Sublime Text, VIM, Office 365, LibreOffice, Mac OS own tools (screen capture and navigating around) have their shortcut commands along with the option of creating your own. As new products for developers come around, we have to remember new shortcuts. We are all humans, and we all age. So keeping up with the pile of shortcuts is problematic. Yes, there are options of not using shortcuts by using the Mouse, but we want to be fast and quick. We are developers after all!. I am not demanding a massive revolution against software manufactures that offers you new products with new shortcuts, but I think that the community needs to come together on making shortcuts less of long cuts. For instance, the famous CTRL C and CTRL V (copy and paste) should stay across all platforms and should not be replaced with CMD C & CMD V for Macs. Screenshot capture and paste should have a standard approach across OSes (remember Print Screen key?) We should demand that keyboard keys for Apple and Windows machines be the same – no more separate Windows flag or Apple own CMD key. The ESC key must return as well for Apple machines. These are just my ideas; others might have other suggestions in mind. Maybe we can eventually have an international developers guild of standard shortcuts. Keyboard shortcuts are productivity functions. With our hands on the keyboard at all times, we can navigate and code much quicker than when using the mouse. 

Now you can do select all, CTRL C to copy the text, and CTRL V to share it with all your developer friends. (Oh sorry, this applies to Windows users. CMD C and CMD V for Apple users)

BASIC First Lines of Code

I will write about Microsoft Build conference soon but one important photo that I feel any developer would appreciate is that of the first lines of assembly code that formed the BASIC language compiler on the first Altair personal computer written by Bill Gates and the late Paul Allen. It can be see at the Microsoft Redmond Campus Museum. Such lines of code sparked the generation of software developers across the world including me.

Posting course achievements on social media

Lot of social media users tend to publicize their LinkedIn or Coursera course achievements. When we were at college, we would not post on walls that we completed some course. We might get laughed at. Completing a course (free or paid for) should not longer be treated as breaking news. What should be an achievement is what you do with what you learned rather than wait for recruiters to message you. They won’t if you completed X numbers of courses. If every small thing we achieve is posted as an achievement then how could you differentiate yourself from others who took nearly the same set courses? Instead, focus on the outcome. Do something with what you learned. Don’t make it an excuse that you only need your next x-figure salary to apply what learned. That’s bogus. You are wasting your time that way. Avoid publicizing the quantity of course completions and keep the quality of courses you took to yourself. It is also less stressful to you because you won’t have to worry about the likes that you will not get or the recruiters that won’t come. Better to just tap yourself on the shoulder and move on. It is a lot healthier since, at the very least, you are making some physical effort that personally benefits you and not anyone else

Embrace Gen Z into the Workforce

The corporate world should seriously embrace Generation Z into their workforce. Those born after 1997 are entering the workforce this year. Their approach in IT is to build applications with immediate real-world implications. Check what two GenZ engineers Nisha and Clarisse have to say at a HackerRank interview. Also two completely unrelated companies, BBVA Compass, a financial bank, and Skratch, a platform for teenagers, partnered together in Dallas to let teenagers use a mobile app to make money from community activities such as scooping ice cream at school fairs and teaching kids how to mix music like DJs. (Read more about it.)

Generation Z is on track to be the best educated and most diverse generation yet. (Check Pew Research article). 48% of them are racial or ethnic minorities and have similar liberal-leaning political as well as social views as Millennials (born between 1980–1995). (See Pew Research article.) However, similar to Nisha and Clarisse, Generation Z has its take on society and the workplace. SalesForce updated their blog post on “Millennials vs. Gen Z: How Are They Different?“. I quote from the article:

  1. More millennials than Gen Zers will pay extra for customer experience
  2. Gen Z sets a higher bar for expecting innovation from companies
  3. Gen Z is less likely than the millennial generation to trust companies — but can be swayed
  4. Gen Z is pragmatic; millennials are idealistic
  5. Gen Z focuses on saving money; millennials are more focused on the experience
  6. Millennials liked authenticity, but Gen Z takes it to a new level
  7. Gen Z prefers in-store shopping; millennials shop online
  8. Millennials cozy up to brands; Gen Z wants to be independently themselves

I recommend to check the SalesForce article since each of the bullets above is described in detail.

I think that for companies to be more successful in the digital world, it is essential that their products and services are not assuming all generation of customers (and employees) as one or as merely dividing in half between old vs. new. Having a clear understanding of the differences between millennial and post-millennials who is about to form the largest workforce can make a huge difference in not only companies’ bottom line but for the positive social change across the world. The latter is what all generations should be caring about except that Gen Z is actively caring more about it than everyone else.

planes should keep us alive

All the news about planes crashing, planes burning, planes disappearing, planes stalling, and more of these is so devastating. It is true that one has a higher chance getting into a car accident than a plane crash, but when is this going to stop? When will quality engineering and advanced technologies save more lives? Forget about going to space. We can’t get to air safely all the time. If human generations won’t stop considering every airplane tragedy as a one off incident compared to the total safe flights, what will happen when we have space tourism or space traveling? It will be even worse problems than what human intellect is able to resolve in its lifetime.

Key tech announcements this past week

Key technology announcements in the last few days for software developers, blockchain, and data science. Both Amazon and Microsoft launched their managed blockchain services for general adoption. I expect this to disrupt the blockchain business since it simplifies the process of adopting or integrating blockchain in the development ecosystem. More info at TechCrunch and CoinDesk. Microsoft launched its version of AutoML via Azure. Users can drag and drop their machine learning building blocks which should simply the process for the less AI-savvy. (Note that more than a year ago Google launched its AutoML version.) You can read more about it here. Microsoft launched a cool Visual Studio Code extension that allows you to have a complete development environment on remote hosting machines. This means that developers can use their desktops as basic terminal machines where everything from creating folders/files, compiling, and executing code is running via docker containers/ssh/virtual machines all through their Visual Studio Code environment. That way developers can rely less on their desktop machines and, instead, leverage higher end processing power of servers during code development which shortens the CI/CD pipeline process. For more info about the VS Code extension check the Microsoft announcement.