background preloader

What is a Full Stack developer?

What is a Full Stack developer?
Is it reasonable to expect mere mortals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it. I was told at OSCON by a Facebook employee that they only hire ‘Full Stack’ developers. To me, a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology. Good developers who are familiar with the entire stack know how to make life easier for those around them. Server, Network, and Hosting Environment.This involves understanding what can break and why, taking no resource for granted.Appropriate use of the file system, cloud storage, network resources, and an understanding of data redundancy and availability is necessary.How does the application scale given the hardware constraints? Other Pieces of the Puzzle: Ability to write quality unit tests. Closing Thoughts: It is very bad practice to tightly couple code to a specific implementation (library, OS, hardware, etc).

Internet Go Protocols There seem to be 5 main protocols out there for playing go over the internet. They are: GMP - Go Modem ProtocolGTP - Go Text ProtocolNNGS - No Name Go Server ProtocolIGS - Internet Go Server ProtocolKGS - Kiseido Go Server ProtocolGMP seems to have an open spec. The protocol is supported by some programs, but may be old by now, and my impression is that it may not be so popular anymore. GTP seems to have replaced GMP as the default protocol that people implement in their Go game. IGS is a popular go server, and their protocol is open-ish. KGS is a popular go server, and their protocol seems closed. GTP and GMP are already implemented in GNU Go (though as a server rather than client), so it's probably fairly straightforward to implement them in GNUGoS60 as a client, though I am not entirely sure how useful that would actually be. The other 3 would probably be harder to do, not least because you probably need to have more gui support also.

gerrit - Gerrit Code Review Web based code review and project management for Git based projects. Objective Gerrit is a web based code review system, facilitating online code reviews for projects using the Git version control system. Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer. Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer. To see Gerrit in the wild, checkout our ShowCases page. News Resources Background | Downloads | Plugins | Documentation | Release Notes | Issue Tracking | Scaling | Training Discussion List | IRC freenode #gerrit | IRC log

A Docker primer – from zero to a running Django app August 30, 2013 by Csaba Okrona Let's create a docker container and run a basic Django app - step by step. Docker is a great tool for creating and managing lightweight isolated application environments, a.k.a. containers. Docker is a wonderful layer on top of Linux containers (LXC). Let's get started! If you're already using linux, you can skip the next part, but on OS X, you need to run docker using a Virtualbox linux image at this point. Installing Vagrant (only neccessary for non-Linux hosts) Vagrantfile: Vagrant.configure("2") do |config| config.vm.box = "raring" config.vm.box_url = " # we'll forward the port 8000 from the VM to the port 8000 on the host (OS X) config.vm.network :forwarded_port, host: 8000, guest: 8000 config.vm.synced_folder("vagrant-docker", "/vagrant") # add a bit more memory, it never hurts. Create the shared folder Boot up the VM with Vagrant Now ssh into the VM: Whoa.

Internationalization and localization Screenshot of software programs localized to Italian. In computing, internationalization and localization (other correct spellings are internationalisation and localisation) are means of adapting computer software to different languages, regional differences and technical requirements of a target market. Internationalization is the process of designing a software application so that it can potentially be adapted to various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text. Localization (which is potentially performed multiple times, for different locales) uses the infrastructure or flexibility provided by internationalization (which is ideally performed only once, or as an integral part of ongoing development). Microsoft[3] defines Internationalization as a combination of World-Readiness and localization. Scope[edit] See also[edit]

Signs that you're a bad programmer - Software Engineering Tips Why was this written? Most of these faults were discovered the hard way by the author himself, either because he committed them himself or saw them in the work of others. This paper is not meant for grading programmers, it was intended to be read by programmers who trust their ability to judge when something is a sign of bad practice, and when it's a consequence of special circumstances. This paper was written to force its author to think, and published because he thinks you lot would probably get a kick out of it, too. 1. Reasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is. Symptoms Remedies To get over this deficiency a programmer can practice by using the IDE's own debugger as an aide, if it has the ability to step through the code one line at a time. 2. Object Oriented Programming is an example of a language model, as is Functional or Declarative programming. 3. 4. 5. 6. 1. 2. 3. 4. 5. Symptoms

How are you? — Continuous Delivery with Docker and Jenkins - part I We have been using Docker in our staging environment for a month now and are planning to make it part of our production setup once the first stable version gets released. We’ll be discussing the staging environment setup today with the promise of following up on the production environment at a later date. Docker is a utility for creating virtualized Linux containers for shipping self-contained applications. As opposed to a traditional VM which runs a full-blown operating system on top of the host, Docker leverages LinuX Containers (LXC) which run on the same operating system. We have converted our entire staging environment from a handful of AMIs to a single bare metal host running Docker. Whenever a new github branch gets started, Jenkins, our Continuous Integration server, automatically attempts to build a new Docker container from it. We couldn’t find any clear guide on integrating Docker with Jenkins so we’ve decided to contribute one. 1. 2. 3. 4. github service hooks "How are you?"

Adding multi-language support The content management system Joomla! includes various language packs and translations for the user interface already. The combination of one specific language pack and the content in the same language allows you to build a website in any language you like. If you build a website that should have more than one language you need some extensions for multi-lingual support. Within this article we will give a brief introduction on the different topics and concepts. Multi-Lingual content in Joomla! Joomla! Simply speaking, this means you can store any language and any characters in your content with Joomla!. In general you can say the language adds a new dimension to your site which you need to manage. Admin & User notes: Creating a multi-lingual website If you try to create a new multi-lingual website the general process is not very different from a single language site. Is the site structure of all languages the same or do I have different "views"? Setting up Joomla! To use Joomla!

Signs that you're a good programmer - Software Engineering Tips The most frequently viewed page on this site is Signs you're a bad programmer, which has also now been published on dead trees by Hacker Monthly, and I think that behoves me to write its antithesis. "Bad programmer" is also considered inflammatory by some who think I'm speaking down to them. Not so; it was personal catharsis from an author who exhibited many of those problems himself. And what I think made the article popular was the "remedies"--I didn't want someone to get depressed when they recognized themselves, I wanted to be constructive. Therefore if you think you're missing any of the qualities below, don't be offended. I didn't pick these up for a while, either, and many of them came from watching other programmers or reading their code. 1. The compiler and runtime can often answer a question faster than a human can. Symptoms How to acquire this trait Are you excessively cautious? Note: A programmer who "suggests wacky and unrealistic solutions" is not always a bad programmer. 2.

Related: