"git" entries

Cross-pollinating Web communities

The integration of the Web's diverse communities broadens horizons and technology.

Waterdrops inside The Animal Flower Cave, Barbados. By  Berit Watkin on Flickr.

Web projects are integration projects, combining skills from a number of disciplines. Lousy interfaces can obscure brilliant code, and ingeniously engineered back-end systems can still fail when they hit resource limits. “Content” lurks in many guises, requiring support not only from writers and illustrators but from video specialists, game designers, and many more. Marketers have built businesses on the Web, and influence conversations from design to analytics. You don’t have to be a programmer to do great work on the Web. The Web stack is vast.

Web development models include far more than code. Creating great websites and applications demands collaboration among content creators, designers, and programmers. As applications grow larger, supporting them requires adding a cast of people who can help them scale to demand. As projects grow, specialization typically lets people focus on specific aspects of those larger disciplines, supporting networking, databases, template systems, graphics details, and much more.

In some ways, that’s a recipe for fragmentation, and some days the edges are sharp. All of these communities have different priorities, which conflict regularly. Battles over resources sharpen the axes, and memories often linger.

At the same time, though, often even in environments where resources are scarce, different perspectives can reinforce each other or create new possibilities. Sometimes, it’s just because the intersection spaces have been left fallow for a long time, but other times, the combinations themselves create new opportunities. Read more…

Four short links: 26 January 2015

Four short links: 26 January 2015

Coding in VR, Git Workflows, Programming as Bookkeeping, and Valuing People

  1. How Might We Code in VR? — caught my eye because I’m looking for ideas on how to think about interaction design in the holoculus world.
  2. Git Workflows for Pros — non-developers don’t understand how important this is to productivity.
  3. All Programming is Bookkeeping — approach programming as a bookkeeping problem: checks and balances.
  4. Why I Am Not a Maker (Deb Chachra) — The problem is the idea that the alternative to making is usually not doing nothing — it’s almost always doing things for and with other people, from the barista to the Facebook community moderator to the social worker to the surgeon. Describing oneself as a maker — regardless of what one actually or mostly does — is a way of accruing to oneself the gendered, capitalist benefits of being a person who makes products.

5 PaaS anti-patterns

Common behavior to watch out for when transitioning to a PaaS

Getting Started with OpenShiftToday I am going to cover 5 ways developers may be on a Platform as a Service (PaaS) but have not really embraced the new platform effectively. If you have done any of these things below while building your application hosted on a PaaS, like OpenShift, Heroku, or Google App Engine, don’t feel bad:

  • PaaS is a relatively new concept in the development world and I think some of these patterns are only recently coming to light
  • I have seen veteran developers making these mistakes as they move to the new paradigm

One piece of terminology I will use throughout the article is container. When I am using this word I am referring to the piece of the PaaS that hosts the application and does the work. An application can be composed of multiple containers and the PaaS will probably have a method to add your favorite server-side tech to the container. On OpenShift this is called a gear while on Heroku it is called a dyno.

So without further ado, let’s dig in on some of the code smells in the cloud.

Read more…

Just fork it

Making forking the norm

Brian Kardell (вкαя∂εℓℓ)tweeted:

Kip Hamptonreplied:

Free and Open Source software licenses make forking legal. Git makes forking easy. GitHub makes it easy to fork sociably. Can we just make this normal?

The most visible recent fork – LibreSSL‘s blunt forking of OpenSSL – was widely reported as conflict. It’s certainly not a polite break, but the OpenSSL’s Apache-style license means it’s legal.

Meanwhile, in a reminder that specifications can fork too, Ian Hickson put his objections to the W3C forking a WHATWG spec on www-archive to make sure his complaints of plagiarism would be part of the permanent record. WHATWG specs are licensed CC0, so once again, it’s legal.

It seems to be a common pattern to want to grant rights, but only want other people to use those rights if they acknowledge our control. (I sometimes have similar tendencies, granted.) We hope that people will contribute to our works while recognizing our power and our ownership over those works. Even the fact that we have to choose licenses at the start of a project gives us a sense of ownership and control, often hiding the (excellent) lack of control that comes once those licenses are applied.

Read more…

Four short links: 25 March 2014

Four short links: 25 March 2014

Super Gamers, Game Developers, Erlang+LLVM, and Git Visualised

  1. Meet the Super-Taskers (Psychology Today) — As part of the Nissan GT Academy challenge, the top 10 players of the car-racing game Gran Turismo are given the chance to race real automobiles in competition. They’re very good—too good, in fact. A graduate racing a real car in the British GT in 2012 was so fast that he could keep up with the professionals in what was supposed to be an amateur event. In 2013, GT Academy graduates were banned from such races in the UK. Instead, they have to compete against the pros.
  2. A View of Game Developers From The Future (Ian Bogost) — A new arms race commenced—for virtual attention, which the Patrons converted into financial instrument. While historians agree that ancient works like Civilization and chess still provided inspiration, games primarily became a specialized form of banking. As long as there has been advertising, there has been an attention economy: you advertise where people pay attention—whether it’s on the walls of buildings or above urinals.
  3. ErLLVMproviding multiple back ends for the High Performance Erlang (HiPE) with the use of the LLVM infastructure. Making the very-lightweight-multithreading Erlang less of a closed world fruitcake deployment can only be good.
  4. Explain Git with D3 (GitHub) — visualisations of common git operations.

How to (semi-)automate JavaScript refactoring

Disposable robot assassins and spreadsheets

Computers aren’t ready to write much of our code for us, but they can still help us clean and improve our code.

At Fluent 2013, O’Reilly’s Web Platform, JavaScript and HTML5 conference, Giles Bowkett demonstrated a wide variety of ways to write code that helps refactor code, showing developers a variety of ways to clean up and simplify their JavaScript. He gave ‘disposable robot assassin at large’ as his title, but it fit better with the code he was demonstrating.

Bowkett explored many options and iterations of his automation ideas,

  • The roots: Martin Fowler’s classic Refactoring. [at 00:50]
  • “Probably the first time ever you see a developer or hacker enthusiastic about using a spreadsheet… I am that fluke.” [at 01:48]
  • Matching method names with the ack and wc Unix command line utilities, and finding some useless methods. [at 5:58]
  • “More complex information… surfacing an implicit object model.” [at 7:45]
  • Filter scripts and text streams [at 14:45]
  • “Towlie, because it liked to make things DRY”, using similarity detection in Ruby. [at 16:37]
  • Building on JSLint [at 20:10]
  • Switching to a Ruby parser for JavaScript to calculate differences [at 21:49]
  • JavaScript parsers: Esprima [at 27:26]
  • “Have script that… tells you this file is the one that people have edited most frequently. [at 30:29]
  • Grepping through git history [at 32:53]
  • “Automatic refactoring will let you get to better code much faster.” [at 36:25]

It’s an amazing mix of capabilities that let you build your own robot (code) assassins.

If the Web Platform, JavaScript, and HTML5 interest you, consider checking out our growing collection of top-rated talks from Fluent 2013.

Four short links: 14 January 2014

Four short links: 14 January 2014

Web Design, SF History of Hate, USB Fauxkeyboard, and Git Tutorials

  1. LayoutIt — drag-and-drop design using Bootstrap components. These tools are proliferating, as the standard design frameworks like Bootstrap make them possible. There’s unsustainable complexity in building web sites today, which means something will give: the web will lose to something, the technology forming the web will iterate, or the tools for the web will improve.
  2. How Silicon Valley Became The Man — I’m fascinated by the sudden spike in anti-corporate tension in SF. This interview gives me some useful vocabulary: New Communalists and the New Left. And two more books to read …
  3. USB Rubber Ducky — USB dongle that pretends to be a keyboard and types out your text REALLY fast. (via Root a Mac in 10s or Less)
  4. Simple Git Workflow is Simple — Atlassian producing videos on how to use git, good starting point for new code drones.

Code Carabiners: Essential Protection Tools for Safe Programming

Assertions, regression tests, and version control

Programming any non-trivial piece of software feels like rock climbing up the side of a mountain. The larger and more complex the software, the higher the peak.

You can’t make it to the top in one fell swoop, so you need to take careful steps, anchor your harnesses for safety, and set up camp to rest. Each time you start coding on your project, your sole goal is to make some progress up that mountain. You might struggle a bit to get set up at first, but once you get going, progress will be fast as you get the basic cases working. That’s the fun part; you’re in flow and slinging out dozens of lines of code at a time, climbing up that mountain step by steady step. You feel energized.

However, as you keep climbing, it will get harder and harder to write each subsequent line. When you run your program on larger data sets or with real user inputs, errors arise from rare edge cases that you didn’t plan for, and soon enough, that conceptually elegant design in your head gives way to a tangled mess of patches and bug fixes. Your software starts getting brittle and collapsing under its own weight.

Read more…

Restructuring the Web with Git

Can version control manage content?

Web designers? Git? Github? Aren’t those for programmers? At Artifact, Christopher Schmitt showed designers how much their peers are already doing with Github, and what more they can do. Github (and the underlying Git toolset) changes the way that all kinds of people work together.

Sharing with Git

As amazing as Linux may be, I keep thinking that Git may prove to be Linus Torvalds’ most important contribution to computing. Most people think of it, if they think of it at all, as a tool for managing source code. It can do far more, though, providing a drastically different (and I think better) set of tools for managing distributed projects, especially those that use text.

Git tackles an unwieldy problem, managing the loosely structured documents that humans produce. Text files are incredibly flexible, letting us store everything from random notes to code of all kinds to tightly structured data. As awesome as text files are—readable, searchable, relatively easy to process—they tend to become a mess when there’s a big pile of them.

Read more…

Four short links: 26 September 2013

Four short links: 26 September 2013

Google's Data Centers, Top Engineers, Hiring, and Git Explained

  1. Google Has Spent 21 Billion on Data Centers The company invested a record $1.6 billion in its data centers in the second quarter of 2013. Puts my impulse-purchased second external hard-drive into context, doesn’t it honey?
  2. 10x Engineer (Shanley) — in which the idea that it’s scientifically shown that some engineers are innately 10x others is given a rough and vigorous debunking.
  3. How to Hire — great advice, including “Poaching is the titty twister of Silicon Valley relationships”.
  4. Think Like a Git — a guide to git, for the perplexed.