gitThere are lots of reasons to use Git as your source-code management system. Whether used as a primary system, or in conjunction with an existing legacy repository, I’m going to argue that if you’re not using Git now, you should be at least testing it out.

Basics of Git: It is open source, and runs on Linux, Unix and Windows servers. It is stable. It is solid. It is fast. It is supported by just about every major tool vendor. Developers love Git. Managers love Git.

Not long ago, much of the world standardized on Concurrent Versions System (CVS) as its version control system. Then Subversion (SVN) came along, and the world standardized on that. Yes, yes, I know there are dozens of other version control systems, ranging from Microsoft’s Visual SourceSafe and Team Foundation Server to IBM Rational’s ClearCase. Those have always been niche products. Some are very successful niche products, but the industry standards have been CVS and SVN for years.

Along came Git, designed by Linus Torvalds in 2005, now headed up by Junio Hamano. For a brief history of Git, read “The Legacy of Linus Torvalds: Linux, Git, and One Giant Flamethrower,” by Robert McMillan, published in Wired in November 2012. For the official history, see the Git website.

What’s so wonderful about Git? I’ll answer in two ways: industry support and impressive functionality.

For industry support, let me refer you to two new articles by SD Times’ Lisa Morgan. Those stories inspired this column. The first is“How to get Git into the enterprise,” and the other is “Git smart about tools: A Buyers Guide.” You’ll see that nearly every major industry player supports Git—even competing SCM systems have worked to ensure interoperability. That’s a heck of an endorsement, and shows the stability and maturity of the platform.

Don’t take my word for it for the impressive functionality. Instead, let me quote from other bloggers.

Tobias Günther: “Work Offline: What if you want to work while you’re on the move? With a centralized VCS like Subversion or CVS, you’re stranded if you’re not connected to the central repository. With Git, almost everything is possible simply on your local machine: make a commit, browse your project’s complete history, merge or create branches… Git lets you decide where and when you want to work.”

Stephen Ball: “Resolving conflicts is way easier (than SVN): In Git, if I have a private branch from a branch that has been updated with new (conflicting) commits, I can rebase its commits one at a time against the public destination branch. I can resolve conflicts as they arise between my code and the current codebase. This makes dealing with conflicts easy because I get the context of the conflict (my commit message) and only see one conflict at a time.

“In SVN if I merge a branch against another and there are a lot of conflicts, there’s nothing I can do but resolve them all at the same time. What a mess.”

Scott Chacon: “There are tons of fantastic and powerful features in Git that help with debugging, complex diffing and merging, and more. There is also a great developer community to tap into and become a part of and a number of really good free resources online to help you learn and use Git…

“I want to share with you the concept that you can think about version control not as a necessary inconvenience that you need to put up with in order to collaborate, but rather as a powerful framework for managing your work separately in contexts, for being able to switch and merge between those contexts quickly and easily, for being able to make decisions late and craft your work without having to pre-plan everything all the time. Git makes all of these things easy and prioritizes them and should change the way you think about how to approach a problem in any of your projects and version control itself.”

Nicola Paolucci:
“If you don’t like speed, being productive and more reliable coding practices, then you shouldn’t use Git.”

Peter Cho: “Most developers would be delighted if they can change their workflow to use Git. Switching over early would be more ideal unless, of course, your SCM relies on a large network of dependent applications. If it’s not viable to change SCM systems, I would highly recommend using it on future projects.

“Git is infamous for having a large suite of tools that even seasoned users need months to master. However, getting into the fundamentals of Git is simple if you’re trying to switch over from SVN or CVS. So give a try sometime.”

Thomas Koch: “Somebody probably already recommended you to switch to Git, because it’s the best VCS. I’d like to go a step further now and talk about the risk you’re taking if you won’t switch soon. By still using SVN (if you’re using CVS you’re doomed anyway), you communicate the following: We’re ignorant about the fact that the rest of the (free) world switched to Git. We don’t invest time to train our developers in new technologies. We don’t care to provide the best development infrastructure. We’re not used to collaborate with external contributors. We’re not aware how much Subversion sucks and that Subversion does not support any decent development process. Yes, our development process most certainly sucks too.”

Günther also wrote, “Go With the Flow: Only dead fish swim with the stream. And sometimes, clever developers do, too. Git is used by more and more well-known companies and Open Source projects: Ruby On Rails, jQuery, Perl, Debian, the Linux Kernel, and many more. A large community often is an advantage by itself because an ecosystem evolves around the system. Lots of tutorials, tools (do I have to mention Tower?) and services make Git even more attractive.”

I’m sure there are arguments against Git. Nearly all the ones I’ve heard have come to me via competing source-code management vendors, not from developers who have actually tried Git for more at least one pilot. If you aren’t using Git, check it out. It’s the present and future of version control systems.

Surface-Pro-3With the May 20 introduction of the Surface Pro 3, Microsoft has unofficially withdrawn from the tablet market. If you’re looking for a tablet computer, your two main platform choices are now Android and iOS.

The Surface Pro 3 isn not an Apple iPad competitor. It doesn’t go up against the Google Nexus family, or the broad Samsung Galaxy product range. Nope.

With the Surface Pro 3, Microsoft has quietly redefined the Surface product line as consisting of ultralight Windows notebooks with touch-screens and removable keyboards. That’s a “tablet” in the sense of the circa-2005 Windows tablets that ran Microsoft Windows XP Tablet PC Edition. I still have a Fujitsu Lifebook T4010 from that generation, and it was an excellent notebook, with flip-around screen and stylus. Better than a conventional notebook, yes. A device like an iPad or Nexus or Galaxy? Nope.

Yet the Surface Pro family is not inexpensive. It’s priced like high-powered, lightweight notebooks like Apple’s MacBook Air. In some configurations, it’s even pricier. As Microsoft writes in its specifications: “Surface Pro 3 has a 12-inch ClearType Full HD display, fourth-generation Intel Core processor, and up to 8GB of RAM. With up to nine hours of Web-browsing battery life, Surface Pro 3 has all the power, performance and mobility of a laptop in an incredibly lightweight, versatile form.”

Doesn’t sounds like a Galaxy, Nexus or iPad killer. Of course, the Surface can be a tablet sometimes, and that’s Microsoft’s thinking: Most of the time, you want a notebook. Sometimes you want a tablet. Why have two machines?

The complexity of Windows 8.0 (shipped with the original Surface Pro) and the newer Windows 8.1 made the Surface a questionable replacement for a standard tablet. For a short period of time, yes, you can unclick the keyboard and have a walk-around tablet for surfing the Web, watching a movie, reading a book, playing a game or filling in forms.

No comparison to what most of us call tablets: “Surface Pro 3 is a tablet and a laptop: multiple processors, RAM and storage options intersect with a sleek design that, with a simple snap or click, transform the device from a perfectly balanced tablet to a full-functioning laptop and back again— all in a beautiful package that is 30 percent thinner than an 1-inch MacBook Air,” says Microsoft.

The Surface Pro 3 is like an upgraded Fujitsu Lifebook from 2005. Another quote from Microsoft’s announcement:

“So many people carry both a laptop and a tablet but really want just one device that serves all purposes,” said Panos Panay, corporate vice president for Microsoft Surface. “Surface Pro 3 is the tablet that can replace your laptop—packing all the performance of a fully powered laptop into a thin, light and beautifully designed device. You’ll love being able to carry a single device for your next class, workday or weekend getaway knowing you have all the power you need.”

Also, the bevy of configurations—see Microsoft’s pricing sheet—makes this more like a notebook purchase than a tablet. Four storage configurations from 64GB to 512GB. Intel i3, i5 and i7 processors. 4GB or 8GB RAM. USB ports, microSD card reader, Mini DisplayPort, for external monitor: It’s a notebook. Except, of course, that you have to buy the keyboard separately. Bad move, Microsoft.

I am a genuine fan of the Surface Pro. I own the original 2013 model and use it as my main Windows portable. Yeah, it’s a bit slow, and the battery life is terrible, but it’s an excellent notebook. The new Surface Pro 3 is superior. Were I shopping for a new Windows machine, I’d run down to the Microsoft store and buy one.

But it’s not a tablet. There’s no small form-factor version of the Surface Pro 3. There is no upgrade of the truly tablet-class non-pro Surface running Windows RT, which you can pick up for US$299.

Bottom line: Microsoft makes great hardware, and has pulled out of the tablet market.

arthur-hickenSouth San Francisco, California — Writing software would be oh, so much simpler if we didn’t have all those darned choices. HTML5 or native apps? Windows Server in the data center or Windows Azure in the cloud? Which Linux distro? Java or C#? Continuous Integration? Continuous Delivery? Git or Subversion or both? NoSQL? Which APIs? Node.js? Follow-the-sun?

In a panel discussion on real-world software delivery bottlenecks, “complexity” was suggested as a main challenge. The panel, held here at the SDLC Acceleration Summit, pointed out that the complexity of constantly evaluating new technologies, techniques and choices can bring uncertainty and doubt and consume valuable mental bandwidth—and those might sometimes negate the benefits of staying on the cutting edge. (Pictured: My friend Arthur Hicken, aka “The Code Curmudgeon,” chief evangelist at Parasoft, which sponsored the event.)

I was the moderator. Sitting on the panel were David Intersimone from Embarcadero Technologies; Paul Dhaliwal from 383 Media; Andrew Binstock, editor of Dr. Dobb’s Journal; and Norman Buck from SQS.

Choices are not simple. Merely keeping up with the latest technologies can consume tons of time. Not only reading resources like SD Times, but also following your favorite Twitter feeds, reading blogs like Stack Overflow, meeting thought leaders at conferences, and, of course, hearing vendor pitches.

While complexity can be overwhelming, the truth is that we can’t opt out. We must keep up with the latest platforms and changes. We must have a mobile strategy. Yes, you can choose to ignore, say, the recent advances in cloud computing, Web APIs and service virtualization, but if you do so, you’re potentially missing out on huge benefits. Yes, technologies like Software Defined Networking (SDN) and OpenFlow may not seem applicable to you today, but odds are that they will be soon. Ignore them now and play catch-up later.

Complexity is not new. If you were writing FORTRAN code back in the 1970s, you had choices of libraries. Developing client/server software for NetWare or AIX? Building with Oracle? We have always had complexity and choices in platforms, tools, methodologies, databases and libraries. We always had to ensure that our code ran (and ran properly) on a variety of different targets, including a wide range of browsers, Java runtimes, rendering engines and more.

Yet today the number of combinations and permutations seems to be significantly greater than at any time in the past. Clouds, virtual machines, mobile devices, APIs, tools. Perhaps we need a new abstraction layer. In any case, though, complexity is a root cause of our challenges with software delivery. We must deal with it.

This is one of a series of articles I wrote for the monthly Bulletin of Peninsula Temple Sholom in Burlingame, Calif.

Mah tovu ohaleha, Yaakov, mishk’notecha Yisrael! Vaani b’rov chasd’cha, avo veitecha, eshtachaveh el heichal kodsh’cha b’yiratecha.

How fair are your tents, O Jacob, your dwellings, O Israel! I, through Your abundant love, enter Your house. I bow down in awe at Your holy temple.

Peninsula Temple Sholom is beautiful. You see it when you enter the parking lot – the beds of roses, the trees, all the landscaping. Two lovely buildings, one with our Sanctuary, Social Hall, and administrative offices; the other with our Preschool and Religious School. High ceilings, inspired architecture, lots of light. PTS is more than a synagogue. It’s a work of art.

That is not why PTS is beautiful, however. The beauty is in you. In your friends and family. In babies, children, teens, young adults, empty nesters, seniors. In our community.

Our temple is a tent, as in the words of Balaam in Parshat Bamidbar, where the Mah Tovu blessing comes from. Yes, it’s a permanent tent, not a moveable one. Our tent has a dome and a bimah, a sacred ark holding our Torah scrolls, classrooms and playgrounds, gift shop and kitchens and bathrooms. Space for dancing and singing, for learning and teaching, for praying and laughing, and for hugging and crying.

Look around PTS the next time you are there for a worship service, or for a class, or to pick up your kids, or even for a committee meeting. In the buildings and spaces, you will see the work of generous donors and gifted architects, maintained by our hard-working staff and custodians. In the face of your fellow congregants, you see something even better. Friends, family, fellow congregants, we are all created b’tzelem elohim, in the image of God.

Coming together as a family

Peninsula Temple Sholom is where we, b’tzelem elohim, come together as Jews. Sometimes we come together in groups, to worship on a Friday night or Saturday morning, celebrate a bar/bat mitzvah, take a class, eat a festive meal. Sometimes we are here to meet with the rabbi, to prepare for a baby naming, or cry before a funeral.

When times are good, many of us take PTS for granted. We focus on our jobs, our families, the Giants, mowing the lawn, filling out college applications, worrying about aging parents, schlepping kids to soccer practice. A million and one things.

What does the Temple mean most of the time? If we have school-age kids, taking them to Religious School. If we have kids getting ready for b’nai mitzvah, taking them to lessons with the Cantor. If we are at the anniversary of the passing of a loved one, going to say Kaddish. If it’s around the High Holy Days, it means making sure we have our tickets for Rosh Hashanah and Yom Kippur services. And going to Friday night services only if our kids are on the bimah or if we have nothing else going on. Yes, all too often, that’s the sum total of our Temple experience.

When times aren’t so good, things change. The Temple is where we turn, whether it’s to the clergy, the staff, or our fellow congregants. That’s when we need PTS the most. And our Temple community is always, always there for you.

On duty 365 days each year

Being president of the PTS Board of Trustees, I’ve learned that while many congregants only interact with the Temple occasionally, the clergy and staff are on duty 365 days a year.

Services happen every week, whether you attend this week or not. Religious school is convened each year, whether you have a child there or not. Adult education classes are taught each week, whether you sign up or not. The rabbis make pastoral visits to homes, to hospitals, and to hospice, even if nobody in your family is ill. Weddings happen, whether or not you are invited. Funerals happen, whether or not your loved ones have passed on.

This costs money. PTS is a big organization, with a lot of expenses. Salaries, health care, utilities, equipment, supplies. We have nearly $3.3 million dollars in expenses projected for 2014-2015.

Fortunately, the Temple is in a healthy financial state. Through dues, donations and school fees, we are able to balance our budget each year, including the forthcoming fiscal year that starts July 1.

Thanking you in advance

To be direct: It’s not easy balancing the budget. Many expenses go up every year, from payroll to health care to supplies to utilities. We are still paying off the mortgage taken out for the Sanctuary and Social Hall renovations and construction of the Raiskin Torah Center. Maintaining and upgrading our aging infrastructure is not cheap.

Compounding the challenge: Even in this improving economic climate, many families are unable to contribute meaningfully to the Temple. They pledge far less than their fair share of the costs of operating our synagogue. Because it’s our Jewish value to never turn anyone away, that means we ask everyone else to contribute more.

That’s where you come in. This is the season when the Temple asks congregants to commit to their giving for the 2014-2015 year. You will receive a letter in the mail soon asking for an increase in your annual pledge to PTS. We hope you will answer this call.

Peninsula Temple Sholom is a tent, a shelter, and a blessing. Whether in good health and strength, or in weakness and need, we are all created b’tzelem eholim, and you are the real beauty of PTS. Thank you for your generosity, and I look forward to seeing you at the Annual Meeting & Conversation on Wednesday evening, May 21.