gevent: coroutine-based Python networking library

I learned about this from the FLOSS Weekly podcast . I’ve become more interested in event-driven frameworks lately because of Node.js and Vert.x.

From the gevent website:

gevent is a coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev event loop.

Features include:

  • Fast event loop based on libev (epoll on Linux, kqueue on FreeBSD).
  • Lightweight execution units based on greenlet.
  • API that re-uses concepts from the Python standard library (for example there are Events and Queues).
  • Cooperative sockets with SSL support ยป
  • DNS queries performed through threadpool or c-ares.
  • Monkey patching utility to get 3rd party modules to become cooperative

GoAccess: Pretty Web log parser that runs in the terminal

GoAccess dashboard screenshot

From the GoAccess website:

GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems. It provides fast and valuable
HTTP statistics for system administrators that require a visual server report on the fly.

Features

  • General Statistics, bandwidth, etc.
  • Time taken to serve the request (useful to track pages that are slowing down your site)
  • Top Visitors
  • Requested files
  • Requested static files, images, swf, js, etc.
  • 404 or Not Found
  • Hosts, Reverse DNS, IP Location
  • Operating Systems
  • Browsers and Spiders
  • Referring Sites
  • Referrers URLs
  • Keyphrases
  • Geo Location – Continents/Countries New
  • HTTP Status Codes
  • Ability to output JSON and CSV New
  • Different Color Schemes
  • Support for IPv6
  • Unlimited log file size
  • Output statistics to HTML. See report. N

Supported Formats

  • Any custom log format string
  • Common Log Format (CLF) Apache
  • Combined Format (XLF/ELF) Apache|Nginx
  • W3C format (IIS)
  • Amazon CloudFront (Download Distribution).
  • Apache virtual hosts

Output Formats

  • Terminal (default)
  • HTML
  • JSON
  • CSV

GitList

GitList

Another team at work has begun using GitList as their Git repository
viewer.

It looks like a nice self-hosted alternative to GitHub

From the GitList website:

GitList allows you to browse repositories using your favorite browser,
viewing files under different revisions, commit history and diffs. GitList is
free and open source software, written in PHP, on top of Silex and the Twig
template engine.

WinSCP

WinSCP Screenshot

I’m a command-line guy, but lots of people on my team perfer graphical tools.
WinScp is a really useful piece of software. From the WinScp website:

WinSCP is an open source free SFTP client, SCP client, FTPS client and FTP
client for Windows. Its main function is file transfer between a local and a
remote computer. Beyond this, WinSCP offers scripting and basic file manager
functionality.

Docco & Docco Next

Docco screenshot

I’ve been looking for tools to help facilitate code reviews, and one of the
candidates I’m considering is Docco. From Docco’s website:

Docco is a quick-and-dirty documentation generator, written in Literate
CoffeeScript. It produces an HTML document that displays your comments
intermingled with your code. All prose is passed through Markdown, and code
is passed through Highlight.js syntax highlighting.

By default, it takes comments from your source file and displays them next to
the code they are related to. In my case, I modified the config to leave
regular comments intact, but to display any comments /*! like this one */ off
to the side. This has two advantages:

  1. Reviewers can annotate code inline.
  2. A reviewer can see other review comments.

I am actually using docco-next instead of the original docco since it
allows more fine-grained control over which typed of comments to process.

Google Guava

Google Guava

One of my favorite college professors once said that the best software
developers are often lazy software developers. They work really hard to not
have to work really hard. I am definitely a lazy programmer. One of the ways
that I like to avoid hard work is to avoid writing code in the first place, and
that means finding high quality code libraries and using them instead of
re-inventing the wheel. At work we use the Apache Commons libraries a lot.

Google Guava

…contains several of Google’s core libraries that we rely on in our
Java-based projects: collections, caching, primitives support, concurrency
libraries, common annotations, string processing, I/O, and so forth.

It looks similar to the Apache Commons libraries, but several of the packages
are intriguing to me. Check out the User Guide. There is also an
Apache Commons equivalents page that helps you “translate from code using
Apache Commons” packages.

DokuWiki

At work, we just switched to a new Wiki application for our team documentation:
DokuWiki. So far it has been a pretty big hit. (For a wiki, anyway.)

It has several advantages over our old Wiki app:

  1. It is super easy to install. Drop it on disk, hit the install page,
    configure a few items, and you’re up and running. It’s PHP, so no container
    or application server is necessary.
  2. It is easy to administer. So far, the development team that I’m on has been
    able to administer the DokuWiki wiki ourselves. This makes our operations
    team happy since the old wiki required a bit of care and feeding to upgrade
    and to administer users. With DokuWiki, user admin is really easy.
  3. The syntax is simple and readable as text. I’m a big Markdown fan
    myself so I installed a Markdown plugin to allow me to create some pages in
    the format, but the rest of my team is using the vanilla DokuWiki syntax,
    and they seem to like it.
  4. It supports namespaces. The namespace support is not quite as intuitive as
    I’d like, but it’s simple enough for us to have figured it out. I don’t
    expect us to mave many namespaces, but it’s nice to be able to create a new
    space if another team in our department wants their own corner of the wiki.

DokuWiki screenshot