background preloader

John Anderson ( sontek ) - Turning Vim into a modern Python IDE

John Anderson ( sontek ) - Turning Vim into a modern Python IDE
$ git clone $ cd dotfiles $ ./install.sh vim Download PDF Version Back in 2008, I wrote the article Python with a modular IDE (Vim). Years later, I have people e-mailing me and commenting daily asking for more information, even though most of the information in it is outdated. Here is the modern way to work with Python and Vim to achieve the perfect environment. Because one of the most important parts about a development environment is the ability to easily reproduce across machines, we are going to store our vim configuration in git: $ mkdir ~/.vim/ $ mkdir ~/.vim/{autoload,bundle} $ cd ~/.vim/ $ git init The purpose of the autoload directory is to automatically load the vim plugin Pathogen, which we'll then use to load all other plugins that are located in the bundle directory. You'll need to add the following to your ~/.vimrc so that pathogen will be loaded properly. filetype off call pathogen#runtime_append_all_bundles() call pathogen#helptags() Related:  Py:Tips

Solarized - Ethan Schoonover Precision colors for machines and people Solarized is a sixteen color palette (eight monotones, eight accent colors) designed for use with terminal and gui applications. It has several unique properties. I designed this colorscheme with both precise CIELAB lightness relationships and a refined set of hues based on fixed color wheel relationships. It has been tested extensively in real world use on color calibrated displays (as well as uncalibrated/intentionally miscalibrated displays) and in a variety of lighting conditions. See the changelog for what’s new in the most recent release. Currently available in formats for (cf screenshots below): Editors & IDEs Vim by me. Terminal Emulators Xresources / XdefaultsiTerm2OS X Terminal.appPutty courtesy Brant Bobby and on GitHub Other Applications Palettes Adobe Photoshop Palette (inc. Don’t see the application you want to use it in? Download Click here to download latest version Current release is v1.0.0beta2. Fresh Code on GitHub Features Installation

Accelerating Python Libraries with Numba (Part 2) Accelerating Python Libraries with Numba (Part 2) Introduction Welcome. This post is part of a series of Continuum Analytics Open Notebooks showcasing our projects, products, and services. In this Continuum Open Notebook, you’ll learn more about how Numba works and how it reduces your programming effort, and see that it achieves comparable performance to C and Cython over a range of benchmarks. If you are reading the blog form of this notebook, you can run the code yourself on our cloud-based Python-in-the-browser app, Wakari. How Does Numba Work? Numba is a Continuum Analytics-sponsored open source project. c = a+b We’ll assume that a and b are both floating-point numbers. The same statement in Python will generate dozens of instructions. Numba is our bridge between Python and performance. Benchmarking This notebook provides a benchmark comparison between Python, C interfaced through ctypes, Cython, and Numba - all from an IPython notebook in the cloud that you can run yourself! Setup Whoa!

Basic NGINX + Django server setup | Scott Rogowski This tutorial will take you from nothing to an nginx server running a simple django project using this stack: EC2Ubuntu 12.04NGINXWSGIDjango I wrote this because all of the existing tutorials on the internet were out of date or had a lot of fluff and magic. Why nginx? Simple answer is that Nginx is faster, simpler, and more stable than Apache. Why not a stack like Bitnami or Heroku? Don’t go this route… Take it from me, I tried it. What is happening at the highest level? Amazon hosts your ec2 serverYour ec2 server runs the Ubuntu/Linux operating systemUbuntu runs the nginx webservernginx serves static files and relies on uwsgi to generate dynamic filesuwsgi runs django Before you begin I am assuming you are comfortable on the command line and can use a text editor like vi or nano. Setup EC2 Go with the classic wizard and select Ubuntu Server 12.04 LTS 64 bit. SSH into your server Once your server is running, click on the name to see the details of your server. . And a new command prompt.

Revenge of the Nerds May 2002 In the software business there is an ongoing struggle between the pointy-headed academics, and another equally formidable force, the pointy-haired bosses. Everyone knows who the pointy-haired boss is, right? I think most people in the technology world not only recognize this cartoon character, but know the actual person in their company that he is modelled upon. The pointy-haired boss miraculously combines two qualities that are common by themselves, but rarely seen together: (a) he knows nothing whatsoever about technology, and (b) he has very strong opinions about it. Suppose, for example, you need to write a piece of software. Why does he think this? Well, this doesn't sound that unreasonable. But all languages are not equivalent, and I think I can prove this to you without even getting into the differences between them. Presumably, if you create a new language, it's because you think it's better in some way than what people already had. So, who's right? Catching Up with Math

productivity - What is your most productive shortcut with Vim Don't do this Why we stopped using Drupal for our platform | Technology, Education and Development Me with Dries Buytaert, creator of Drupal I love Drupal . I have been engaged with the technology, the community and the vision for about 2 years now. So much so that I attended DrupalCon 2012 in Denver and loved it (I compare it to Google I/O when I consider the quality of tech conferences I have been to). Drupal, much like many other CMSs, follows a development methodology that I call . . . . Another really important development concept around Drupal is . To sum it up, Drupal, for the reasons mentioned above and more, may not be a good environment for your agile development needs.

Why The New Guy Can’t Code We’ve all lived the nightmare. A new developer shows up at work, and you try to be welcoming, but he1 can’t seem to get up to speed; the questions he asks reveal basic ignorance; and his work, when it finally emerges, is so kludgey that it ultimately must be rewritten from scratch by more competent people. And yet his interviewers—and/or the HR department, if your company has been infested by that bureaucratic parasite—swear that they only hire above-average/A-level/top-1% people. It’s a big problem, especially now. There’s a boom on. Like many of the hangovers that haunt modern software engineering, this is ultimately mostly Microsoft’s fault.2 Back when they were the evil empire where everyone secretly wanted to work, they were famous for their “brain-teaser” interview questions – Why are manhole covers round? Everyone wanted to be like Microsoft, even Google, until everyone wanted to be like Google (until recently); and so that interview meme persisted.

Ultimate Vim Config Steve Francia's Epic Blog I have spent the last few years tweaking and refining my VIM configuration until I had the Ultimate Vim Config. It is well organized and documented taking full advantage of Tpope’s pathogen for a excellent clean and modular configuration. The Ultimate vim config contains the perfect .vimrc file combined with an excellent set of plugins all easily managed thanks to pathogen and git. It is on GitHub so you can always grab the latest. The Ultimate VIM Configuration This is the ultimate vim configuration. Modular configuration using power of pathogen & git Far more than just a well crafted .vimrc file (though it’s got one of those too), it makes use of pathogen to have a well organized vim directory. Fully cross platform It also works well on Windows, Linux and OSX without even modifying directories. The perfect .vimrc file The vimrc file is perfectly suited programming and also works well for general use. It fixes many of the inconveniences of vanilla vim including: Includes the best Plugins

[citation needed]» Blog Archive » The homogenization of scientific computing, or why Python is steadily eating other languages’ lunch Over the past two years, my scientific computing toolbox been steadily homogenizing. Around 2010 or 2011, my toolbox looked something like this: Ruby for text processing and miscellaneous scripting;Ruby on Rails/JavaScript for web development;Python/Numpy (mostly) and MATLAB (occasionally) for numerical computing;MATLAB for neuroimaging data analysis;R for statistical analysis;R for plotting and visualization;Occasional excursions into other languages/environments for other stuff. In 2013, my toolbox looks like this: You may notice a theme here. The increasing homogenization (Pythonification?) These days, tools for almost every aspect of scientific computing are readily available in Python. Take R, for example. Flash forward to The Now. Mind you, I don’t mean to imply that Python can now do everything anyone could ever do in other languages. Speaking only for myself, I’ve now arrived at the point where around 90 – 95% of what I do can be done comfortably in Python.

Example of what SQLAlchemy can do, and Django ORM cannot Why Python? | Keeping It Classless If you're new here, you may want to subscribe to my RSS feed, or follow me on Twitter! That way you can stay up to date with all Keeping It Classless posts! It’s been really interesting to see the industry in an all-out zerg rush to adopt Python as a skill-set. What is it about this seemingly arbitrary selection in the vast array of programming languages available out there? What is so special about Python that it comes up in nearly every conversation about SDN? This post has been in drafts for some time, and I was motivated to finish it up by this Packet Pushers episode, where Jeremy Schulman and others discuss Python and its impact to networking. Let’s think about what we’re trying to do when it comes to network programmability. The networking industry (in general) tends to fall back on what’s easy, and what’s cheap – interoperability tends to trump every other consideration. A better, and perhaps even more practical example would be the education of engineers new to networking. Matt O

HigherLevelDatabaseProgramming There are several wrappers that provide improved or simplified interfaces to SQL databases. Some of these might be referred to as object relational mappers, or ORM in this list -- these create Pythonic objects out of database rows. Others may only help generate SQL, or provide simple mapping support. Axiom: MIT-licensed, SQLite-based Bazaar ORM: Easy to use and powerful abstraction layer between relational database and object oriented application. dal.py: a Database Abstraction Layer (DAL), an API that maps Python objects into database objects such as queries, tables, and records. 101 video (This module is normally distributed as part of web2py but it does not depend on web2py, except for few some web2py specific functionalities) DbObj: ORM Dejavu: Public domain, thread-safe, Data Mapper ORM. See also PersistenceSystems and ObjectOrientedDatabase The above lists should be arranged in ascending alphabetical order - please respect this when adding new entries.

Related: