Categories
Deals

Get the best mobile development books for half price at RayWenderlich.com!

If you’ve been looking to set yourself apart by learning native mobile development — iOS development with Swift, Android development with Kotlin, or cross-platform development with Flutter — take advantage of RayWenderlich.com’s Learn at Home Sale and get the  best mobile development books on the market for half price!

Let me tell you about some of the books…

iOS Apprentice, 8th Edition — co-authored by Yours Truly!

This book is a very special one for me, because I learned iOS development from an earlier edition. I put my heart and soul — and a lot of hours — into this book, which teaches you how to write iOS apps by writing iOS apps. Whether you’re completely new to programming or have experience with other programming languages (remember, I learned from this book, and I have a computer science degree), this book is an excellent starting point for writing apps for the iPhone and iPad!

It normally sells for $59.99, but for a limited time, it’s on sale at $29.99. Get it now!

Want a free downloadable sample from the book? Get it here.

Android Apprentice, 3rd edition

Want to learn Android development in Kotlin? This is the book for you. Like iOS Apprentice, this book teaches you how to make apps by having you make apps. You’ll build 4 apps, starting with a simple game to get you warmed up, and then you’ll go on to make a checklist app, a map-based app, and a podcast manager and player.

It normally sells for $59.99, but for a limited time, it’s on sale at $29.99. Get it now!

Want a free downloadable sample from the book? Get it here.

So many books and bundles!

Right now, all the books are on sale for half price at RayWenderlich.com. You can save even more by buying bundles! Check them out, get the books you need, and start upskilling!

Categories
Deals

Get 14 Python books for as little as $15 for a limited time only with the Humble Bundle!

If you’re looking to learn Python or boost your Python skills — either as planning for the future or dealing with a laid-off present — you’ll want to capitalize on Humble Bundle’s “Learn you some Python” book bundle, which gives you 14 Python books from No Starch Press for as little as $15!

Need some convincing to learn Python? Check out these recent articles:

What’s in the bundle

If you pay a mere one dollar, you get these first four ebooks: Teach Your Kids to Code, Invent Your Own Computer Games with Python, Black Hat Python, and Gray Hat Python:

Pay at least 8 dollars, and you get these in addition to the previous four ebooks: Mission Python, Python for Kids, Cracking Codes with Python, Python Playground, and Math Adventures with Python

And finally, for you high rollers willing to part with at least 15 dollars, you get the previous 9 ebooks plus: Python Crash Course, Automate the Boring Stuff with Python, Python Flash Cards, Serious Python, and Impractical Python Projects:

A limited time offer

As I write this (Wedensday, May 20th at 3:00 p.m. EDT), the offer is good for another 11 days and 23 hours. Once this deal expires, you’ll have to pay almost $400 for all these books. If you want these books on the cheap, get them now!

All these books are DRM-free, and you can get them in PDF, ePub, and mobi format. Better still, some of the money goes to charity. This is your chance to do good for yourself and for others!

Categories
Deals Reading Material

Today only: Manning has data science courses for $10 (instead of the regular $50 or $60)

Yes, the title of that 2012 article in Harvard Business Review may have stretched things a bit. If you’re a regular reader of this blog, you know that any scientific, tech, or engineering endeavor has its long stretches of dullness and drudgery. You also know that if you can make it past those stretches, the work’s pretty rewarding.

If you’d been meaning to get into data science, today’s your day. For the entire day of Monday, April 27, 2020 and only until the stroke of midnight that marks the start of Tuesday, April 28, 2020, Manning’s solo liveProject courses are selling for $10 instead of the usual $50 or $60.

Manning liveProjects are learn-by-doing exercises. They start with a challenge that isn’t all that different from one you might encounter on the job, and the project is about addressing that challenge.The project is broken into several milestones where you can check your progress against a tested reference implementation. Along the way, you’ll have access to book and video resources selected for your project, as well as opportunities to collaborate with other participants. You do it at your own pace, and if you’d like extra help, there’s a (pricier) version with a mentor.

Here are the liveProjects on sale:

Discovering Disease Outbreaks from News Headlines
Imagine this: You are a data scientist at the WHO trying to get a handle on a virus outbreak. Your task? Use machine learning techniques to analyze news headlines gathered from around the globe for clues about its spread. What do you do?

Work and learn with over 1000 other participants in this liveProject. In Discovering Disease Outbreaks from News Headlines, you’ll analyze a database of headlines gathered clusters on a map to find patterns indicating an epidemic. As you work through this liveProject, you’ll develop techniques for text extraction, data manipulation, clustering, interpreting algorithm outputs, and producing an actionable report.

Decoding Data Science Job Postings to Improve Your Resume
Imagine this: You step into the life of a budding data scientist looking for their first job in the industry. There are thousands of potential roles being advertised online, but only a few that are a good match to your skill set. What do you do?

In Decoding Data Science Job Postings to Improve Your Resume, you’ll learn how to use libraries in the Python data ecosystem to analyze text-based data, such as resumes and job listings. As you build this project, you’ll clean data from HTML files, use text similarity analysis to find the perfect job, and visualize your results using word clouds and plots. When you finish, you’ll be ready to apply your new skills to any text analysis task.

Human Pose Estimation with Deep Neural Networks
Imagine this: You are a machine learning engineer working for a company developing augmented reality apps, including apps like fitness coaches that need to be able to reliably recognize the shape of a human body. Your challenge is to create an application for human pose estimation: detecting a human body in an image and estimating its key points such as knees and elbows. What do you do?

In Human Pose Estimation with Deep Neural Networks you’ll build a convolutional neural network from scratch, training your model using Google Colab and your GPU. At the end of this liveProject, you’ll have completed an interactive demo application that uses a webcam to detect and predict human keypoints!

Training Models on Imbalanced Text Data:
Imagine this: You are a data scientist working for an online movie streaming service. Your bosses want a machine learning model that can analyze written customer reviews of your movies, but you discover that the data is biased towards negative reviews. Training a model on this imbalanced data would hurt its accuracy, and so your challenge is to create a balanced dataset for your model to learn from. What do you do?

In Training Models on Imbalanced Text Data, your challenge is to create a balanced dataset for your model to learn from. You’ll start by simulating your company’s data by deliberately introducing imbalance to an IMDb (Internet Movie Database) review dataset, experimenting with two different methods for balancing this dataset. You’ll build and train a simple machine learning model on each dataset to compare the effectiveness of each approach.

Use Machine Learning to Detect Phishing Websites:
Imagine this: You’re a data scientist employed by the cybersecurity manager of a large organization. Recently, your colleagues have received multiple fake emails containing phishing attacks, one of the most common—and most effective—online security threats. Your manager is worried that passwords or other information will be given to an attacker. What do you do?

In Use Machine Learning to Detect Phishing Websites, you’ll build a machine learning model that can detect whether a linked website is a phishing site. As you go, you’ll sort out what’s safe and what’s a security risk, use common Python libraries, clean and query datasets, learn performing hyperparameter tuning, and summarize the performance of your models.

Building Domain Specific Language Models
Imagine this: You’re a NLP data scientist working for Stack Exchange. Your boss wants you to create language models that are tuned to the particular vocabulary of different Stack Exchange sites. Language is domain specific, so an insurance company’s documents will use very different terminology than a post on a social media site. Because of this, off-the-shelf NLP models trained on generic text can be inaccurate for specialized domains. What do you do?

In Building Domain Specific Language Models you’ll build a language model capable of query completion, text generation, and sentence selection for the domain-specific language of the Cross Validated statistics and machine learning site. Challenges you’ll face include preparing your datasets, building and evaluating n-gram word-based language models, and building a character-based language model with AllenNLP. At the end, you’ll have built a foundation for any domain specific NLP system by creating specialized, robust and efficient language models!

Training and Deploying an ML Model as a Microservice
Imagine this: You’re a developer for an ecommerce company. Customers provide reviews of your company’s products, which are used to give a product rating. Until now, assigning a rating has been manual. Your boss has decided that this is too expensive and time consuming. Your mission is to automate this process. What do you do?

In Training and Deploying an ML Model as a Microservice you will have to train a machine learning model to recognize and rank positive and negative reviews, expose this model to an API so your website and partner sites can benefit from automatic ratings, and build a small webpage using FaaS, containers, and microservices that can run your model for demonstration. You’ll learn how all parts of machine learning tie together, and how to effectively deploy a model to production.

Monitoring Changes in Surface Water Using Satellite Image Data
Imagine this: You’re a data scientist at UNESCO. Your job involves assessing long-term changes to freshwater deposits. Recently, two satellites have given you a massive amount of new data in the form of satellite imagery. Your task is to build a deep learning algorithm that can process this data and automatically detect water pixels in the imagery of a region. What do you do?

With Monitoring Changes in Surface Water Using Satellite Image Data, you will design, implement, and evaluate a convolutional neural network model for image pixel classification, or image segmentation. Your challenges will include compiling your data, training your model, evaluating its performance, and providing a summary of your findings to your superiors. Throughout, you’ll use the Google Collaboratory coding environment to access free GPU computer resources and speed up your training times!

3D Medical Image Analysis with PyTorch
Imagine this: You’re a machine learning engineer at a healthcare imaging company, processing and analyzing MR brain images. Your current medical image analysis pipelines are set up to use two types, but a new set of customer data has only one of those types! What do you do?

In 3D Medical Image Analysis with PyTorch your challenge is to build a convolutional neural network that can perform an image translation to provide you with your missing data. Utilizing the powerful PyTorch deep learning framework, you’ll learn techniques for computer vision that are easily transferable outside of medical imaging, such as depth estimation in natural images for self-driving cars, removing rain from natural images, and working with 3D data.

I ordered them all, paying $90 in the process. I’ll write about my experiences as I do each of these courses.

If you’re interested, go visit the promo page for these discounted liveProjects and place your order before midnight!

Categories
Deals Programming Reading Material

COBOL roundup: Save $20 on a COBOL book, recent articles, COBOL on Cloudflare, and how to code in COBOL on macOS

Save $20 on Beginning COBOL for Programmers — today only!

Don’t forget that today, Thursday, April 16, 2020, is the last day that you can get Apress’ Beginning COBOL for Programmers at a discount! Use the coupon code SPRING20A when checking out to get $20 off orders $40 and above. That knocks down the price to $29.99 — but only for today.

Current COBOL news articles

Every time ancient banking and government software that’s still in use on “big iron” runs headlong into a problem it was never meant to handle, from Y2K to the COVID-19 stimulus check program, COBOL returns to the spotlight. Here are some recent news articles featuring the language. Most of these have been published in the last seven days:

Cloudflare now supports COBOL?!

There’s a fine line between genius and madness, and Cloudflare are riding that line by making it so that you can code Cloudflare workers in COBOL! They have a number of simple examples posted, including a Rock, Paper, Scissors web applet written in COBOL (pictured in the screenshot above).

It looks as though they’re using GnuCobol to compile COBOL code into C, and then compiling that C into WebAssembly. I like to refer to this sort of cobbling as “the Flintstones-Jetsons approach”.

Once again, how to start programming in COBOL on macOS

If you’re on a Mac and want to dive into COBOL coding, don’t forget that I have a quick and dirty to installing a COBOL compiler and IDE on macOS. If you’ve already got Homebrew and Python 3 installed, you can probably go through the process in about a minute.

Are you looking for someone with both strong development and “soft” skills? Someone who’s comfortable either being in a team of developers or leading one? Someone who can handle code, coders, and customers? Someone who can clearly communicate with both humans and technology? Someone who can pick up COBOL well enough to write useful articles about it on short notice? The first step in finding this person is to check out my LinkedIn profile.

 

Categories
Deals Programming Reading Material

A quick and dirty guide to installing a COBOL compiler and IDE on macOS (and get a COBOL book at a discount)

OpenCobolIDE running on macOS, displaying the code for the “Chunky Bacon” version of “Hello, World!”.

OpenCobolIDE running on my MacBook Pro. Tap the screen shot to see it at full size.

In an earlier post, I played around with an online COBOL compiler. Seeing as I’m a COVID-19 unemployment statistic and there’s a call for COBOL developers to help shore up ancient programs that are supposed to be issuing relief checks, I’ve decided to devote a little more time next week (this week, I have to finish revising a book) to playing with the ancient programming language. I’ll write about my experiences here, and I’ll also post some videos on YouTube.

If you want to try your hand at COBOL on the Mac, you’re in luck: it’s a lot easier than I expected it would be!

Get the compiler: GnuCOBOL

COBOL isn’t used much outside enterprise environments, which means that COBOL compilers and IDEs are sold at enterprise prices. If you’re an individual programmer without the backing of a company with a budget to pay for developer tools, your only real option is GnuCOBOL.

On macOS, the simplest way to install GnuCOBOL is to use Homebrew.

If Homebrew isn’t already installed on your system (and seriously, you should have it if you’re using your Mac as a development machine), open a terminal window and enter this to install it:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

If Homebrew is installed on your system, first make sure that it’s up to date by using this command in a terminal window:

brew update

Then install GnuCOBOL by entering the following:

brew install gnu-cobol

Once that’s done, GnuCOBOL should be on your system under the name cobc. You can confirm that it’s on your system with the following command…

cobc -v

…which should result in a message like this:

cobc (GnuCOBOL) 2.2.0
Built Aug 20 2018 15:48:14 Packaged Sep 06 2017 18:48:43 UTC
C version "4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.10.43.1)"
loading standard configuration file 'default.conf'
cobc: error: no input files

Get the IDE: OpenCobolIDE

Unless you’ve got some way to configure your text editor to deal with the language’s quirks, you really want to use an IDE when coding in COBOL. Once again, an open source project comes to the rescue: OpenCobolIDE.

OpenCobolIDE relies on Python 3, so make sure you’ve installed Python 3 before installing OpenCobolIDE. I installed it on my computer by installing the Python 3 version of Anaconda Individual Edition.

If Python 3 is already on your system, you have a couple of options for installing OpenCobolIDE:

  1. Installing OpenCobolIDE using the Python 3 package installer, pip3, which gives you a program that you launch via the command line. This gives you OpenCobolIDE version 4.7.6.
  2. Downloading the .dmg disk image file, which gives you an app lives in the Applications folder and which you launch by clicking an icon. This gives you OpenCobolIDE version 4.7.4.

I strongly recommend going with option 1. OpenCobolIDE is no longer maintained, so you might as well go with the latest version, which you can only get by installing it using Homebrew. Version 4.7.6 has a couple of key additional features that you’ll find handy, including:

  • Support for all the COBOL keywords in GnuCOBOL 2.x. This is a big deal in COBOL, which has something in the area of 400 reserved words. For comparison, C and Python have fewer than 40 reserved words each.
  • Better indentation support (and you want that in COBOL, thanks to its ridiculous column rules from the 1960s).
  • Support for compiler flags like -W and -Wall — and hey, warning flags are useful!

To install OpenCobolIDE using the Python 3 package installer, pip3, enter the following in a terminal window:

pip3 install OpenCobolIDE --upgrade

To launch OpenCobolIDE, enter this:

OpenCobolIDE

You’ll be greeted with this window:

Tap New file. You’ll see this:

For Template, select Program, enter the name and location for your program file, and tap OK.

You should see this:

Tap the screen shot to see it at full size.

Don’t mistake those red vertical lines for glitches. They’re column guides. COBOL is from the days of punched cards, and is one of those programming languages that’s really fussy about columns:

  • The first 6 columns are reserved for sequence numbers.
  • Column 7 is reserved for a line continuation character, an asterisk (which denotes a comment) or another special character.
  • Columns 8 through 72 are for code, and are broken down into 2 zones:
    • Area A: Columns 8 through 11, which are used for DIVISIONS, SECTIONS, and PARAGRAPHS, as well as specifying levels 01 through 77 (COBOL is weird).
    • Area B: Columns 12 through 72, which is for the rest of the code.
  • Columns 73 through 80 make up the “identification” area and are ignored by the compiler. It’s useful for very short comments along the lines of “TODO” or “HACK”.

Get the book: Beginning Cobol for Programmers

There aren’t many current books on COBOL out there. Apress’ Beginning COBOL for Programmers is probably the best of the bunch, and unlike many old COBOL books, makes sense to developers with a solid grounding in modern programming languages.

The ebook is available for US$49.99, but if you use the coupon code SPRING20A by the end of Thursday, April 16, you can get a $20 discount, reducing the price to $29.99. If you want the book for this price, take action before it’s too late!

Are you looking for someone with both strong development and “soft” skills? Someone who’s comfortable either being in a team of developers or leading one? Someone who can handle code, coders, and customers? Someone who can clearly communicate with both humans and technology? Someone who can pick up COBOL well enough to write useful articles about it on short notice? The first step in finding this person is to check out my LinkedIn profile.

Categories
Deals Programming Reading Material

Pluralsight’s courses are free for the month of April!

Pluralsight is making its 7,000+ video courses completely free for the month of April! If this is the first time you’ve heard this news, you still have 27-ish days to take advantage of this opportunity.

One of the nicest things about this deal is that you don’t have to provide a credit card number to sign up. They could’ve easily asked for it and counted on you to forget to cancel your account, allowing them to charge you on May 1st. Instead, they’re just letting you create an account with very little info and are hoping that you’ll like your course so much, you’ll choose to become a subscriber in May:

In case you’re curious, here’s a sampling of the Pluralsight courses I’m interested in:

Between the day job at Lilypad and finishing the next version of iOS Apprentice, there’s no way I’m going to be able to do all the courses I want over the month. I’m pretty sure that I’ll play sessions from the conferences in the background while working, and perhaps see what their Unity courses are like.

Be sure to sign up and see if there are any courses that you’d like to take for free!

Categories
Deals Process Reading Material

“The Essentials of Modern Software Engineering“: A must-read book, free for a limited time!

The Essentials of Modern Software Engineering is an apt title for a book that helps you move from programming (writing code) to software development (the larger process, which includes requirements, design, testing, delivery, maintenance, and so on) to software engineering (bringing the discipline of engineering to software development, which involves repeatable, consistent processes, and a move to relying more on science than on craft). Better still, it’s a $60 book that’s now available for free right up to June 30th, 2020!

ACM logo

Who’s giving away this book?

The book is part of the digital library of the ACM — Association for Computing Machinery — one of the world’s first and largest professional groups devoted to computing. Founded in 1947, the ACM pre-dates the first time a thing we would consider to be a program was run on a thing we would consider to be a digital computer by a year! The ACM’s mission is to promote computing as an academic interest, science, and profession.

On Monday, March 30th, the ACM announced that they have opened their normally paywalled digital library to the public for the next three months as a way of supporting the computing community during the COVID-19 crisis. From now until June 30th, 2020, it will cost nothing to access the library or to download any number of electronic books from it. You can visit the library right now without having to log in.

Here’s the thing: the ACM is an organization run by academics, and you’ll see that as soon as you visit the library. Their books are more like university textbooks and less like “For loops for Dummies”. Still, there are a few books in the library that you’ll find useful even if you aren’t looking for works to cite for your Ph.D. dissertation. The Essentials of Modern Software Engineering is one of these books.

Why should you get this book?

Most books on development these days focus on what I call the mechanics of building software: the vocabulary and syntax of programming languages, how-tos from programming tools, frameworks, and libraries, and the technologies and techniques for getting a specific kind of functionality into the applications you’re writing.

Fewer books and even fewer courses cover the larger process of building software, such as design, development,  testing, evaluation, and maintenance. Software engineering is not programming: It’s the application of techniques borrowed from engineering to craft complete solutions, of which software is a part.

The Essentials of Modern Software Engineering provides a good introduction — or for those of us who took the course long ago, a good refresher — to the topic.

Who should read this book?

  • If you’re a computer science major: Software engineering is a key course in just about every university’s computer science degree program. This is because it’s part of a recommended standard computer science curriculum developed by the ACM and IEEE (Institute of Electrical and Electronics Engineers). The Essentials of Modern Software Engineering is one of the most up-to-date textbooks on the topic.
  • If you’re self-learning or in a code camp: Software engineering is one of those topics that gets missed in the code schools and courses, where the emphasis is on a specific programming language and technologies and not the larger topic of the software development process. The Essentials of Modern Software Engineering is essential supplementary ready for you.
  • If you’re a junior developer: Are you on your first job, or perhaps the first couple of years in your software development career? Think of The Essentials of Modern Software Engineering as a way of gauging prospective workplaces or the place where you’re working, as well as a guide for what you should be learning.
  • If you’re a senior developer: What a senior developer anyway? Well, if the number of developers doubles every five years as it has been since the ’90s, it stands to reason that half the developers out there have less than five years’ experience. If you have 5+ years’ experience as a developer, you’re a senior, and you should treat The Essentials of Modern Software Engineering as a checklist!
  • If you’re a non-technical manager of a development team or project: The Essentials of Modern Software Engineering is pretty layperson-friendly and quite readable. You should at least skim the book for an overview of what’s considered better ways to build and maintain software.
  • If you’re in hiring or recruiting: You should skim The Essentials of Modern Software Engineering to get a better feel for the software development process. You might also get some insight into the sort of skills and aptitudes that developers, especially senior ones, should have.

Get the book now while it’s free!

In case you were wondering, The Essentials of Modern Software Engineering currently has a five-star rating on Amazon. Yes, it’s from 7 reviewers, but 7 high-quality reviewers.