ENTRIES TAGGED "git"

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…

Comment

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…

Comments: 3
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.
Comments: 2

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.

Comment
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.
Comment: 1

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…

Comment

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…

Comment: 1
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.
Comment
Four short links: 25 July 2013

Four short links: 25 July 2013

Git Secrets, Ab Initio Keyboard, Continuous Deployment, and 3D Atomic Models

  1. More Git and GitHub Secrets (Zach Holman) — wizards tricks. (via Rowan Crawford)
  2. Building a Keyboard from Scratch (Jesse Vincent) — for the connoisseur.
  3. Practicing Deployment (Laura Thomson) — you should build the capability for continuous deployment, even if you never intend to continuously deploy.
  4. 3D Printed Atoms (Thingiverse) — customize and 3d-print a Bohr model of any atom.
Comment
Four short links: 15 July 2013

Four short links: 15 July 2013

  1. Product Strategy Means Saying No — a resource for strength in saying ‘no’ to unplanned features and direction changes. My favourite illustration is for “but my cousin’s neighbour said”. Yes, this.
  2. git-imerge — incremental merge for git.
  3. The Paranoid #! Security GuideNetworked-Evil-Maid-Attacks (Attacker steals the actual SED and replaces it with another containing a tojanized OS. On bootup victim enters it’s password which is subsequently send to the attacker via network/local attacker hot-spot. Different method: Replacing a laptop with a similar model [at e.g. airport/hotel etc.] and the attacker’s phone# printed on the bottom of the machine. Victim boots up enters “wrong” password which is send to the attacker via network. Victim discovers that his laptop has been misplaced, calls attacker who now copies the content and gives the “misplaced” laptop back to the owner.)
  4. Why Mobile Web Apps Are Slow — long analysis. Just to be clear: is possible to do real-time collaboration on on a mobile device. It just isn’t possible to do it in JavaScript. The performance gap between native and web apps is comparable to the performance gap between FireFox and IE8, which is too large a gap for serious work. (via Slashdot)
Comment