Programming for Musicians and Digital Artists: Creating Music with ChucK – #music #programming #bookreview

 

 

Programming for Musicians and Digital Artists

Creating Music with ChucK

Ajay Kapur, Perry Cook, Spencer Salazar and Ge Wang

Manning - paperback

Manning’s Programming for Musicians and Digital Artists is enjoyable, informative reading, particularly if you like music and programming and are motivated to combine them in some way.

The book offers plenty of clear how-to content for those who want to take their first deep dives into the techniques needed to make, modify and perform music using computers.

Indeed, this excellent guide can help take you from generating  “Hello, World” and “Twinkle, Twinkle, Little Star” to linking up with MIDI devices and creating sophisticated music and sounds that can be used in live performances and elsewhere.

Don’t be scared by the word “Programming” in the title. Yes, it can help–but it is not required–to have a little bit of programming experience. As you start working with the audio-centric programming language ChucK, you will simply type a few brief lines of code or paste them from downloaded files into a simple on-screen tool known as the “miniAudicle.” With this tool, you can then make changes and hear the results “instantly without interrupting other sounds being synthesized and heard,” the authors point out. You also can save your files, load different files and do other tasks quickly.

The free, open-source ChucK programming language, the authors’ emphasize, “is designed specifically for real-time sound synthesis and music creation.” Their book provides numerous short code examples to tinker with, as well as a few basic physics, math and music pointers that illustrate features and help support the authors’ descriptions.

Note: If your goal is to sit down at a keyboard and immediately start creating digital music, you may want to skip this book and look for other options. The authors concede that “many artists are happy with over-the-counter software systems and controllers for real-time performance work. And there are many who only want to use computers to produce static final products in the form of .wav/.mp3 files, CDs or collections of songs, sound tracks for videos, and more. A large number of those artists are happy to learn and use the packages and tools from commercial or free sources.

“But there are many, and we’re betting you’re one, who want more,” they add. “Maybe you’re coming to this book with a big idea (or many big ideas) and want the tools to help you realize it/them. Maybe you’re looking to shift directions in your art making. Or perhaps you already know how to program in a language such as Java, but you find it doesn’t do what you want.”

ChucK gives you “greater under-the-hood access” than some of the other popular music/sound languages and systems, such as Csound, SuperCollider, JSyn, Max/MSP and PD (Pure Data). And Chuck, the authors note, “is generally more succinct, requiring much less code (lines of typed text) than these other languages in order to accomplish a particular task.”

You learn how to work with many different tools, ranging from oscillators, to filters, to delay generators, reverberators and other audio effects, and MIDI (even without a MIDI interface and cable). You also learn how to generate the sounds of several different musical instruments.

ChucK has a key emphasis on ease of controlling time: for example, how long a tone or sounds occurs, how often it occurs within a set time period, and how long are the silences between tones or sounds.

I have not yet tried all of the code examples in the book, but the ones I have tried in several chapters have worked very well on a Windows laptop and are easily modified and tested in real time using the miniAudicle. (The book also shows how to install ChucK on Mac OS X and Ubuntu Linux systems).

Thus far, I have encountered only one typo in the printed book’s code examples. In Listing 1.8, “Playing notes with integer values,” there is a mistake in the line that is supposed to multiply the frequency of a tone pitch by 2. However, the line is printed “1 *=> myPitch;” — which simply repeats previous pitch. Changing the line to “2 *=> myPitch;” fixes the problem and takes only a couple of seconds to implement in the miniAudicle.

Si Dunn

 

JavaScript Application Design: A book you likely need if you are working with, or still learning, JavaScript – #programming #bookreview

JavaScript Application Design

A Build First Approach

Nicolas Bevacqua

Manning - paperback

 

I didn’t know how much I needed this book until I started reading it and exploring its code examples.

Many of us who have worked with JavaScript started our connections to the language in very haphazard fashions. We learned some of it on the job, under deadline pressure to fix or update somebody else’s code. Or we took an introductory class or two and then started picking up whatever else we could on the fly, including the bad habits of others around us who seemed to know a bit more about JavaScript than we knew at the moment.

Unfortunately, JavaScript is a big, messy programming language, and it offers numerous opportunities to crash and burn if you really don’t know what you are doing.

In his new book, JavaScript Application Design, Nicolas Bevacqua makes a compelling case for using “the Build First philosophy of designing for clean, well-structured, and testable applications before you write a single line of code.”

He writes: “You’ll learn about process automation, which will mitigate the odds of human error…. Build First is the foundation that will empower you to design clean, well-structured, and testable applications, which are easy to maintain and refactor. Those are the two fundamental aspects of Build First: process automation and design.”

In his well-written text, he argues: “Front-end development requires as much dedication to architecture planning and design as back-end development does. Long gone are the days when we’d copy a few snippets of code off the internet, paste them in our page, and call it a day. Mashing together JavaScript code as an afterthought no longer holds up to modern standards. JavaScript is now front and center.”

He continues: “We have many frameworks and libraries to choose from, which can help you organize your code by allowing you to write small components rather than a monolithic application. Maintainability isn’t something you can tack onto a code base whenever you’d like; it’s something you have to build into the application, and the philosophy under which the application is designed, from the beginning. Writing an application that isn’t designed to be maintainable translates into stacking feature after feature in an ever-so-slightly tilting Jenga tower.”

Bevacqua divides his nine-chapter book into just two parts: build processes and managing complexity. Here is how the chapters are organized:

  • PART 1: BUILD PROCESSES
    1 – Introduction to Build First
    2 – Composing build tasks and flows
    3 – Mastering environments and the development workflow
    4 – Release, deployment, and monitoring
  • PART 2: MANAGING COMPLEXITY
  • 5 – Embracing modularity and dependency management
    6 – Understanding asynchronous flow control methods in JavaScript
    7 – Leveraging the Model-View-Controller
    8 – Testing JavaScript components
    9 – REST API design and layered service architectures

Bevaqua notes that “Linting is often referred to as the first test you should set up when writing JavaScript. Where linters fail, unit tests come in.” He strongly pushes testing and automation right from the start.

Linting soon leads to Grunt, which Bevaqua uses as a task runner and key build tool (with selected modules) in this book. “Grunt is a tool that allows you to write, configure, and automate tasks–such as minifying a JavaScript file or compiling a LESS style sheet–for your application,” he states. (It also works well on Windows machines, which I find handy.)

Grunt leads to running a bit of Node.js on the command line. And if you’ve never worked with Node.js, Bevacqua takes the reader smoothly through the process of installing it and using it in linting exercises. Indeed, he devotes an entire appendix (B) to installing and running Grunt and picking the right plugins for the right tasks and targets.

One of the best parts of this book, to me, is how the author uses short code examples to introduce a concept, and  then builds upon the examples with helpful descriptions and more short but expanded code samples.

Nicolas Bevacqua offers his readers plenty of helpful how-to and why information. Using his book, I have begun applying the Build First approach to some new projects and learning to how test and automate more of my work. I feel as if I now have a good shot at getting a lot better at JavaScript.

There is one small but important glitch to note: At two points in my preview copy of the book from Manning, Bevacqua shows what he calls a simple way to create bare-minimum JSON manifest files. For example, echo “{}” > package.json. Creating a blank, starting-point manifest file did not work this way for me. Instead, I had to use echo {“name: ” “project-name”} > package.json. The empty package.json issue apparently is somehow related to certain versions of Node’s npm.

Si Dunn 

A Home for Wayward Boys: Keeping juvenile offenders in line…with God, rifles and a marching band – #bookreview

 

Home for Wayward Boys

A Home for Wayward Boys

The Early History of the Alabama Boys’ Industrial School

Jerry C. Armor

NewSouth Books - paperback, Kindle

Early in the 20th century, male juvenile offenders in Alabama sometimes were sent to the Alabama Boys’ Industrial School (ABIS), near Birmingham, rather than put into prison with adults. Their crimes ranged from manslaughter to smoking cigarettes as minors. A number of orphans, runaways and victims of broken families also ended up there.

Opened in 1900, the ABIS was a not a “reform school” in the typical sense. The boys’ school had been founded by a dedicated, driven and religious woman, Elizabeth Johnston. And it operated with a very unusual structure: its board of directors consisted entirely of women, at a time when women still could not vote in elections and mostly were expected to just stay home and not get involved in business and politics.

As the ABIS grew, so did what it offered to “wayward boys.” At first, it mainly provided food, a rustic but safe place to sleep, religious services and some hard work doing farming, repairs and other tasks on the school’s sprawling acreage. Soon, however, the ABIS began stressing military discipline and training, too–indeed, issuing army-style uniforms and rifles to young juvenile offenders who had been sent to ABIS by Alabama judges. Then a military marching band evolved and expanded, and it eventually led a parade in Birmingham for President Theodore Roosevelt, played with the U.S. Marine Band in Washington, D.C., and appeared at numerous other events.

As the ABIS gained more buildings and staff, it began offering education in a variety of trades, including tailoring and sewing, painting, barbering, sheet metal work, bakery work, and radio repair.

Many of the youths sent to ABIS as offenders turned their lives around and graduated, and some earned outstanding combat records in World War I and World War II. Some even came back to teach and administrate at ABIS.

Jerry C. Armor’s book is an eye-opening and uplifting look at the 75-year history of the Alabama Boys’ Industrial School. He places a special emphasis on the school’s difficult formative years, as well as on funny, sad and strange anecdotes about how some of the youths ended up there.

Armor details how one woman who sensed she was following God’s calling fearlessly lobbied the Alabama governor and state legislature and begged businesses and various organizations for funds and supplies to start the school and keep it running and growing. And he tells the stories of key leaders within the school who helped it survive and thrive during its colorful, yet little-known, history.

A federal law enacted in the 1970s established the Office of Juvenile Justice and Delinquency Prevention. And that new agency’s “policies, standards, and recommendations…drastically changed how states dealt with troubled youth,” Armor writes. In 1975, he notes, the Alabama Department of Youth Services assumed control of the ABIS and several other facilities in the state.” The campus soon was renamed, and its programs were changed to meet the new requirements.

Armor’s book includes a call to action for citizens of Alabama who are concerned about today’s high rate of recidivism (70%) for juvenile offenders in their state. The rate was considerably lower, he notes, for the youths sent to the Alabama Boys’ Industrial School.

 — Si Dunn

ALLURE OF DECEIT: American philanthropy brings deadly trouble to rural Afghanistan in this intelligent thriller – #fiction #bookreview

 

Allure of Deceit

Susan Froetschel

Seventh Street Books - paperback, Kindle

The road to hell definitely is paved with good intentions in this well-written, intelligent, engrossing thriller. Some Americans with “do good” desires blunder into a culture they do not understand–rural Afghanistan–and create one hell of a mess as they attempt to offer “help” that most of the Afghans do not want, need, or, in many cases, even comprehend.

Allure of Deceit takes us into a world where many non-governmental organizations (NGOs) from outside Afghanistan are competing for contracts and clients within that troubled nation. And some are throwing around money and promises with little understanding of their unintended consequences.

At the same time, some Afghans, Americans and others are taking advantage of the financial possibilities by helping NGOs find “worthy” programs or individuals to support. “The foreign charities prefer a neat, simple story,” a lawyer counsels a woman prisoner in an Afghan prison at one point in the story. The prisoner has a less-than-simple past, of course, but the NGOs want to just see her as a victim of an acid-in-the-face attack. And her lawyer wants to keep it that way as organizations compete to get her freed, get her some surgery and offer her a brand-new life.

Out in the isolated countryside, meanwhile, ancient and very delicate tribal, family and cultural balances are being disrupted, directly and indirectly, by NGO representatives and by deeply rooted beliefs now crashing against unwanted influences from outside. When some of the Americans end up missing, the searches to find them cause even more unraveling within families and lifelong friendships. And several lives soon are put in danger.

The story moves carefully at first, while complicated relationships, customs and remote locales are set up and put into conflict. Then, in the second half of the book, the action speeds up, and the tensions and dangers quickly escalate.

Allure of Deceit surges to a dramatic, unexpected conclusion that will keep echoing in readers’ minds long after they finish the book.

Si Dunn

 

 

 

 

 

 

SOFT SKILLS: A very useful ‘life manual’ for software developers – #programming #bookreview

Soft Skills

The Software Developer’s Life Manual

John Z. Sonmez

Manning - paperback

I really wish I had had this book when I started a 14-year career in software development and testing. I was hired back in the days when you could get a software job by having a college degree (in anything), a couple of positive references and some decent writing skills. If you could also turn on a computer and bring up the DOS prompt, so much the better.

No matter how many skills you actually had, you were going to spend a couple of months learning your new environment and your new job, while also attending free, company-sponsored training classes (during working hours). Meanwhile, if you had any questions, you could just go ask the C guru down the hall or dour Mister Assembler, who lived in the big, corner cubicle and seemed to have no other life.

I am retired now from the corporate world of software. And when, out of curiosity, I look at today’s help-wanted postings for developers and testers, I am stunned by how much knowledge, training and verifiable skills one person is expected to bring to the table. At least ten jobs, it seems, have been rolled into one.

For that reason and more, I highly recommend Soft Skills by John Z. Sonmez. He believes, he says, in taking “a holistic approach to software development. This means that I think that if you want to be a better software developer—a better anything, really—you need to focus on the entire person, not just one or two areas of your life.”

Sonmez offers up a wealth of how-to information and useful advice covering everything from “hacking” a job interview to developing a personal brand and staying physically fit in a job that requires long hours sitting on one’s butt. He also offers tips for learning new things quickly, staying productive (using a modified version of the Pomodoro Technique)–and investing part of your paycheck so you can retire early or at least have a comfortable cushion if you get laid off and decide to become an independent consultant.

Yes, there is a lot of common advice sense in Soft Skills–the kind of advice you likely have heard before but ignored. Still, Sonmez’s book makes clear, compelling cases for why you really do have to watch out for–and take care of–yourself these days. You seemingly can’t count on an employer to do much of anything anymore, except view you as a unit of cost to be reduced or eliminated as soon as possible.

“Most software developers starting out in their careers make a few huge mistakes,” Sonmez writes. “The biggest of those mistakes, by far, is not treating their software development career as a business. Don’t be fooled; when you set out into the world to write code for a living, you’re no different than the blacksmith of old times setting up shop in a medieval town. Times may have changed, and most of us work for a company, but our skills and our trade belong to us and we can always choose to set up shop somewhere else. This kind of mindset is crucial to managing your career, because when you start to think of yourself as a business, you start to make good business decisions.”

This is a mindset I wish I had acquired and expanded when I got my first job in software and then began to surf the periodic waves of layoffs. If you are new at working in software development or still trying to get your foot in the door, you can get some very good information and guidance from this book. The same goes if your career currently is floundering and needs a reboot. Don’t just hit CTRL-ALT-DEL and go storming out the door. Try reading some of Sonmez’s chapters first–and at least have your resume reworked by experts who can help you boost your personal “brand.”

Si Dunn

 

NODE.js IN PRACTICE – A well-focused guide to understanding & using this powerful web development platform – #programming #bookreview

 

Node.js in Practice

Alex Young and Marc Harter

Manning – paperback

I have had a long-term, love-ignore relationship with Node.js. I have taken Node classes, read Node books, and tinkered with Node programming both on Windows and Linux machines. Sometimes I have loved working with Node.js. Other times, I have ignored it for months at a stretch while I rush around trying out other choices and development distractions: Clojure, Erlang, Grails, Hadoop, and Ember.js, for example — the list goes on and on.

Node.js in Practice is aimed at intermediate Node.js programmers and even advanced Node.js programmers. There is some awareness that beginners also may be reading this book. So the authors start by explaining Node from the standpoint of “what it is, how it works, and why it’s something you can’t live without.” Then they quickly recommend that Node newcomers should stop for now and read another good, but more basic, how-to book first: Node.js in Action.

In Node.js in Practice, the learning curve can start getting steep fairly quickly, especially for those of us who have worked somewhat superficially with Node in web projects that also involve other software (such as the MEAN stack: MongoDB, Express and AngularJS, plus Node). Fortunately, the authors, Alex Young and Marc Harter, take a very focused, three-part approach that keeps Node.js centered in the spotlight and promotes deeper understanding.

Part One focuses on “Node’s core fundamentals” and “what’s possible using only Node’s core modules (no third-party modules).” Part Two moves into “real-world development recipes” and shows how to “master four highly applicable skills—testing, web development, debugging, and running Node in production.” Some third-party modules also are introduced. Part Three, meanwhile, emphasizes “creating your own Node modules in a straightforward manner that ties in all kinds of ways to use npm commands for packaging, running, testing, benchmarking, and sharing modules. It also includes helpful tips on versioning projects effectively.”

The book offers “115 techniques…each module covering a specific Node.js topic or task, and each divided into practical Problem/Solution/Discussion sections.” I really like this approach, and the illustrated discussions that accompany each short code example are especially helpful.

For me, it has been a pleasure to upgrade to the latest version of Node.js and reconnect with it using this new book. Despite my previous experience with Node.js, I see a lot to learn! My thanks to Manning for providing a review copy of Node.js in Practice.

 

GUN STREET GIRL: Detective Sean Duffy is back in action, by popular demand! – #mystery #fiction #bookreview

Gun Street Girl

A Detective Sean Duffy Novel

Adrian McKinty

Seventh Street Books - paperback, Kindle

At first glance, “Gun Street Girl” seems like the title for a cheap, unpromising paperback potboiler. But the good news is, it’s actually Adrian McKinty’s latest Detective Sean Duffy mystery.

Readers literally begged McKinty to keep Duffy alive after the novelist finished writing his “Troubles Trilogy,” which features Duffy as a detective in the Royal Ulster Constabulary (RUC) during Northern Ireland’s civil and religious unrest and murderous violence in the 1980s.

The new book not only keeps Sean Duffy investigating murders amid great personal danger (he’s a Catholic cop working in a Protestant police station and living, at high risk, in a Protestant neighborhood). The book also brings greater depth and detail to the whys and hows of his character.

At one point, Lawson, a young cop, tells Duffy that he’s “not interested in promotion, I just want to do good for the community.” And Duffy tells him what an older cop, Dickie Bently, told hm during his first month on the job. “Dickie schooled me pretty quick in the ways of getting things done, Lawson. It’s not just ‘doing good,’ sometimes it’s doing bad too for the greater good, Lawson. It’s a bastard of a job.”

Indeed, Duffy sometimes goes well beyond the accepted limits and laws to achieve justice. He often bends or breaks rules, and sometimes he disobeys direct orders, especially when they get in the way of how he investigates.

In Gun Street Girl, Sean Duffy is fighting total burn-out while he tries to solve a grisly double murder and apparent suicide. Yet his investigative work soon starts uncovering very troubling links to high places, both in Great Britain and across the “pond.” Suddenly, danger is everywhere for Duffy, and the risk of assassination–by bomb or by bullet–now is very high. Meanwhile, he and other members of the Carrickfergus RUC must put aside police work occasionally, suit up in with riot gear and shields, and move into the deadly middle between warring Protestants and Catholics in Belfast and surrounding communities. There, they must endure bricks, firebombs, taunts and other threats to earn a little extra money.

If you’ve never read one of the Sean Duffy novels, Gun Street Girl can be a superb place to start. Then you will want to jump back and read the three books in the Troubles Trilogy: The Cold Cold Ground, I Hear the Sirens in the Streets, and In the Morning, I’ll Be Gone.

I have read and reviewed many detective novels, and Gun Street Girl now has emerged as my all-time favorite. I love its depth of character, its hair-trigger settings, its action, its twists and its turns. And I relish Sean Duffy’s dogged belief that justice must be achieved, no matter how tough or dangerous it can be to follow the necessary and ad hoc procedures.

Adrian McKinty is a master mystery writer. I hope his Detective Sean Duffy will stay on the job for a few more books, even if he has to give in to burn-out, retire from the Royal Ulster Constabulary and become a private eye somewhere else–Australia, maybe?

Si Dunn