Fast Markdown libraries for Ruby: two for the price of one.
It’s as though every other version control system I’ve ever used was created by people who were really into version control and Git was created by people who were really into hacking.
Fork me!
I didn’t know it was possible to build such nice closed-source programs.
The quality of the generated HTML is poor and we need to be able embed custom stylesheets … and do something about those nasty URLs!
403 Go Away!
A look at the new Coherence Mode feature in Parallels desktop.
MacOS X: How to turn textmode tools into first class applications. Mutt.app, Vim.app, Irssi.app, Top.app, etc.
Need an analogy but don’t have the time to actually think of one your self?
Some praise for Site24x7.
How to get command line apps to respect the OS X network location. A neat little hack exploiting symlinks and $0.
Bringing gems from the del.icio.us mailing list to the masses.
Using the address bar as a quick del.icio.us lookup tool
Some thoughts about a simple backup system that takes advantage of a package management system.
I can’t think of anything I like better than the intersection of writing and shell hacking.
That argument debunked for most real world applications.
I liked the way different types of boundedness were presented:
- I/O-bound. Completing a unit of work earlier just means waiting longer for the next block/message.
- Memory-bound. Completing a unit of work earlier just means more time spent thrashing the virtual-memory system.
- Synchronization-bound (i.e. non-parallel). Completing a unit of work earlier just means waiting longer for another thread to release a lock or signal an event – and for the subsequent context switch.
- Algorithm-bound. There’s plenty of other work to do, and the program can get to it immediately, but it’s wasted work because a better algorithm would have avoided it altogether.
As much as I agree with the thrust of the article, C programs really are faster in real life, but I think it’s because people who program in C are more likely to be familiar with common performance problems and tradeoffs. It’s hard not to be at that level.
Interesting concept. Layer the routing guts found in modern web frameworks over Linux’s FUSE userland filesystem stuff and you get a nice model for developing custom filesystems.
The small example (~30 LOC) shows how to build a simple GitHub filesystem, which gives you this:
opus:~ broder$ ./githubfs /mnt/githubfs
opus:~ broder$ ls /mnt/githubfs
opus:~ broder$ ls /mnt/githubfs/ebroder
anygit githubfs pyhesiodfs python-simplestar
auto-aklog ibtsocs python-github2 python-zephyr
bluechips libhesiod python-hesiod
debmarshal ponyexpress python-moira
debothena pyafs python-routefs
opus:~ broder$ ls /mnt/githubfs
ebroder
Pretty awesome.
Python version of Docco, the quick-and-dirty, hundred-line-long, literate-programming-style documentation generator:
8888888b.
888 Y88b
888 888
888 d88P .d88b. .d8888b .d8888b .d88b.
8888888P" d88""88b d88P" d88P" d88""88b
888 888 888 888 888 888 888
888 Y88..88P Y88b. Y88b. Y88..88P
888 "Y88P" "Y8888P "Y8888P "Y88P"
All together, we have Docco, Rocco, shocco, and now Pocco. Jeremy observes, “It’s a whole little adorable family of midget programs now…”
I’m pleased to announce the first public release of a small project I’ve been working on: bcat is a command line utility that streams text or HTML input to a web browser. Input is unbuffered and displayed progressively as it’s read from standard input, so bcat works great with programs that generate output over longish periods of time like build tools, tail(1), etc. It’s also useful for previewing HTML output when working on Markdown, Textile, AsciiDoc, Ronn, DocBook, etc. source files.
The plan is to bring as many of TextMate’s excellent HTML output capabilities as is feasible to the shell and to editors like vim or Emacs.
Paul Hammond’s recent Velocity talk on managing different code-paths for beta features, A/B testing, staff-only features, etc. in web apps. I’ve been interested in tools and techniques for doing percentage-based feature deploys for a long time. This is the first time I’ve seen someone talk about it in any detail.
Minimalist Google Reader theme with a focus on typography and removal of administrative debris. I just now installed it and passed quickly through my feeds but that’s all it took. This thing is gorgeous:

All sidebar and other navigation is completely gone, so be sure to hit ? (or i? with Vimium installed) for a list of keyboard shortcuts.
Great advice for commit message formatting. It’s absolutely vital that the first line not exceed 65 characters (50 is suggested and good practice). Browsing around github.com, I see a ton of commits with an entire paragraph on the first line and it drives me crazy. This destroys git log, tig, git format-patch, and a lot of other commands that use the first line as a short message — even git pull shows it when the HEAD moves.
This is probably the nicest manpage site I’ve come across:

I haven’t heard of it. They imported 98,660 manpages from all available Debian packages plus some from other sources. The type is clean. URLs are short and sweet. Manual sections are presented in a nice TOC on the left. They have some other novel features like comments on each manpage.
I planned to do something very similar. I even registered mancutter.org. A great number of manpages are distributed under a liberal license. I wanted to throw up a nice and simple site and then ship a tool anyone could run to bomb roff up to the server for all manpages on a machine. You should be able to gather all Linux and BSD manpages fairly quickly with such a system. Or, you could push up a specific set of manpages so project maintainers could publish directly to the site. I might still but man.cx is a huge chunk of what I was looking for.
Okay, this is the project used to generate the previously linked CoffeeScript documentation. It’s a “quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.” It pulls out comments, applies markdown, and then runs the code through pygments for syntax highlighting.
Beautiful.
Tim Pope registered smackaho.st and pointed the wildcard at 127.0.0.1 so you don’t have to futz around in /etc/hosts every time you want another local hostname.
try visiting dontmakeme.smackaho.st:3000
Brilliant.
It’s a commit list (git log --online --reverse <start>..<end>), a rolled up diff + diffstat (git diff --stat <start>...<end>), and commit comments all on one page. Here it is in action showing all changes between the Sinatra 0.9.4 and 1.0.a releases:
Dogfood never tasted so good. We’ve been incrementally using and developing and using and developing this thing for a few months now. It’s become a core part of our code review process. I’m extremely happy with how it turned out.
Life altering Chrome extension that adds vi keybindings. It’s not quite as intense as Firefox’s Vimperator but that’s a good thing IMO. You get some really interesting stuff in addition to the obvious h, j, k, and l movement keys and find commands:
gg scroll to top
G scroll to bottom
f activate link hints mode
F activate link hints mode to open in new tab
r reload
gf view source
zi zoom in
zo zoom out
i enter insert mode -- commands ignored until you hit esc to exit
y copy current url to the clipboard
ba, H back in history
fw, fo, L forward in history
J, gT go one tab left
K, gt go one tab right
t new tab
d close tab
u restore closed tab
Feels great in practice. Sold.
Benjamin Pollack — one of the guys that helped build Fog Creek’s Mercurial based source control system, Kiln — pleads for Git and Hg folks to stop bickering over stupid shit and team up to go after the massive number of Subversion/CVS holdouts.
I can confirm one of his points:
It’s easy, in the yin/yang of Hacker News and proggit, to forget that most developers are not even aware of what DVCSes are or what they do. Yeah. Sounds crazy, I know, but trust me on this.
This is true. My second day on the job at GitHub was spent at the Zend PHP conference. Maybe 10% of the people we talked to had any awareness of DVCS at all, and a big chunk of that 10% hadn’t used DVCS seriously on a project. This was six months ago.
For most popular programming language communities, I’d put the percentage of developers that really understand DVCS under 1%.
Paul Bigger, author of the phc PHP compiler, explains why Facebook’s HipHop is interesting and why the translator/compiler technique might be a better design than a JIT or something more… elaborate. Good article all around, even if you don’t care about PHP.
There’s some salt in there too:
I’m also slightly annoyed that people all of a sudden care about PHP compilers. I worked on one for 4 years and I could not convince anyone to give a shit. But now that its got the Facebook logo on it, all of a sudden PHP compilers are the greatest thing ever. Bah.
Lesson in marketing. Merit is not conducive to mass appeal.
The Arc90 guys have a nice little Readability update. Two new styles with beautiful Typekit faces and more size and margin options.
This is cool too:
Beyond the “wow, this makes reading so much easier” comments is a whole slew of emails from the elderly, people with vision or cognitive difficulties and users that rely on screen readers. It’s incredibly gratifying to see Readability make a difference for so many people.
For the record, I’m rocking the Athelas style (type info) with Large type and Medium margins.
Aristotle explains how he uses git’s index and how it makes git unique among VCSs. I’ve raved about git’s index before in The Thing About Git. It’s great.
defunkt’s hub is a command line utility that adds GitHub knowledge to git. Sweet. It expands GitHub repository references so you can do stuff like: git clone defunkt/gist, git remote add bmizerany, etc.
I’ve released a tool for authoring UNIX manual pages using a markdown-ish source format:
Ron is a humane text format and toolchain for creating UNIX man pages, and things that appear as man pages from a distance. Use it to build and install standard UNIX roff man pages or to generate nicely formatted HTML manual pages for the web.
It still needs some work but can produce useful output for both roff and HTML. The sources are on GitHub.
Google’s shipping official beta builds of Chrome for Mac and Linux. I’ve been using Chromium for a few months now and it’s definitely become my favorite browser. It needs a flash blocking extension and an ad blocker. I’m using userscripts for both but they’re a little janky.
Tobi’s log tail and grep app is precisely what I’ve wanted on every single syslog machine I’ve ever had to deal with. And the code has some great examples of using EventMachine features to do real async HTTP stuff.
I recently started a repository for my dotfiles, shell environment, vim config, and utility scripts. As of right now, I’m about 25% through all of the stuff in my $HOME — it should all fill in shortly.
Really excited to see Chris release the shiny new Redis-based work queue that’s been running GitHub for the past couple of months:
It boils down to this: GitHub is a warzone. We are constantly overloaded and rely very, very heavily on our queue. If it’s backed up, we need to know why. We need to know if we can fix it. We need workers to not get stuck and we need to know when they are stuck. We need to see what the queue is doing. We need to see what jobs have failed. We need stats: how long are workers living, how many jobs are they processing, how many jobs have been processed total, how many errors have there been, are errors being repeated, did a deploy introduce a new one?
I’m still getting my feet wet with the jobs system but I can’t wait to get my hands dirty in the guts of this thing.
I’ve dumped MacPorts for pkgsrc. This quick tutorial helped me get going and this package browser is awesome.
Not sure how I never heard of this program before:
dtachis a tiny program that emulates the detach feature of screen, allowing you to run a program in an environment that is protected from the controlling terminal and attach to it later.dtachdoes not keep track of the contents of the screen, and thus works best with programs that know how to redraw themselves.dtachdoes not, however, have the other features of screen, such as its support of multiple terminals or its terminal emulation support. This makes dtach extremely tiny compared to screen, making it more easily audited for bugs and security holes, and also allows it to fit in environments where space is limited, such as on rescue disks.
GitHub has rake tasks that use dtach to manage redis and maybe some other things.
Need more rdebug?
I sometimes forget how useful a debugger is for coming up to speed on a new codebase. This bare-bones HOWTO on rdebug was everything I needed and nothing I didn’t.
Nice little self-contained perl script that shows a basic memcached top display for a list of servers.
$ curl http://memcache-top.googlecode.com/files/memcache-top-v0.6 >
~/bin/memcache-top
$ chmod +x ~/bin/memcache-top
$ memcache-top --sleep 1 --instances memcache1,memcache2,memcache3
That gives you this:

Nifty.
Gemcutter will become rubygems.org and Rubyforge will eventually go away entirely:
So, what does this mean for RubyForge? The Ruby-specific functionality and data will be moved into RubyGems.org, and the parts that other hosting sites (GitHub, Google Code, SourceForge) can do better will be pruned away. Migration paths for those projects will be provided, we’re not throwing any switches without warning. RubyGems.org will not be gaining any “bloat” from rewritten RubyForge features.
Wow. Congrats to @qrush and the Rubyforge team for pulling this off so quickly. Also, it’s pretty cool to see Heroku hosting a major/official piece of Ruby community infrastructure.
This is pretty rad. You can do web searches and whatnot without leaving a command line style interface but you can also do stuff like read news feeds. Check it:

I’d love to settle into this kind of workflow but these shell interfaces always have one thing or another wrong with them. Maybe this is The One. We’ll see.
Turns out
tig, the ncurses front-end to git,
is all kinds of customizable. Quick tip: set the author-width
to 5 or less and author names are abbreviated to initials:
$ cat <<E > ~/.tigrc
set show-date = no
set author-width=3
E
$ tig
RT harmful specs - disable them
KN [defunkt/master] I shine the shoes around here
CW don't let daemon serving ruin the public / private flow
CW ensure the listeners are notified, just in case
CW add "open sourced" event
CW Turns out we're still stuck on 1.0
CW let's try this again
CW allow overriding of the queue during job creation
Boom.
Simon Willison on using Redis with the Python REPL to get complex shit done quick. Insightful piece, as always.
I usually don’t like these web based regular expression editors but this one’s just right. Best part is that you can create a permalink for regular expression + text combos.
Chris Wanstrath and Leah Culver’s submission for Rails Rumble ‘09 finally has its own permanent hostname. Hurl makes HTTP requests and then shows you stuff about the response, like headers and a syntax highlighted body. Hurl’s have permalinks, too, so you can link to them from email threads, IRC, technical documentation, etc. See the about page for more info and a screencast.
Prime number browser and generator for all primes smaller than 10,000,000,000 (so called “small” primes). Enter a number and find the prime that follows it — super useful in a variety of server administration and manual cryptography tasks. Also, “there’s totally 455,042,511 prime numbers.” Neat.
Unicorn is a newish Rack-based HTTP server that’s kinda sorta like Mongrel but comes packed with some insane process management features. The main link is to the SIGNALS file, which documents the master/worker process model, supported signals, process replacement, failover, etc. See the README for a high level description of features.
This link brought to you by @defunkt, who explained Unicorn’s unique approach (repeatedly) over the course of a week.
Joe Damato and Aman Gupta show why and how Ruby (MRI)’s thread implementation sucks. Great presentation with lots of useful examples of using tools like strace and gdb to figure out where a process is spending time. Warning: you will be depressed and embarrassed after reading this if you currently target Ruby MRI.
I didn’t know about this:
In Snow Leopard, Apple has introduced a C language extension called “blocks.” Blocks add closures and anonymous functions to C and the C-derived languages C++, Objective-C, and Objective C++.
They go on to list code samples in each language. The syntax is … not what I expected. Check out the section on LLVM and Clang also.
Interesting bookmarklet from arc90. Removes all superfluous content and administrative debris from the current page and turns the main content into something very readable. Comes with a few options for font-size and margin width. I’m rockin the Newspaper style with large text and medium margins. The entire web looks like my blog :) Love it.
Oh, and a tip for Safari + Webkit users: drag the bookmarklet to the first position in your bookmarks toolbar and you can use “Command + 1” as a hotkey.
Only requires that gdb be available on the box. No requiring libraries or listening on sockets to get the console. Rad.
New flight delay prediction site that actually works. Launched with an iPhone app. Runs on Heroku. I’ve been working with them for a few months now. Great team. Simple, smart product. More of that please.
Safari extension that add’s a bunch of features I’ve missed since switching from Firefox: an awesome full screen mode, live search completion + results, open tabs to the right of current tab (instead of on the very very right), and a bunch of other stuff I won’t use.
Via Minimal Mac, my new favorite website.
The Google Wave demo blew me away but I think Anil gets a lot right here. If the past is a good predictor of the future, Wave is a little too orphaned, a little too complex, and doing a little too much to be adopted quickly on any kind of large scale.
This is an interesting idea. Publishing gems on rubyforge is complicated but the gem source is everywhere and gems have sane file names. Publishing gems on github is dead simple but the filenames include a username prefix, which is just kind of weird. Publishing gems to gemcutter is simple enough and the gems have sane filenames. This could work.
Yahoo!’s proposal to open source their “fast, scalable and extensible HTTP/1.1 compliant caching proxy server” as an Apache project:
Traffic Server fills a need for a fast, extensible and scalable HTTP proxy and caching. We have a production proven piece of software that can deliver HTTP traffic at high rates, and can scale well on modern SMP hardware. We have benchmarked Traffic Server to handle in excess of 35,000 RPS on a single box. Traffic Server has a rich feature set, implementing most of HTTP/1.1 to the RFC specifications.
Rad. I know Yahoo! runs a custom build of Squid as well so I’m curious to understand where this thing came from. The proposal states that it was originally acquired from Inktomi and has been in use for some time.
“… learn how to use httperf load testing with sessions, how to automate our httperf testing using autobench, how to graph the results from autobench, and lastly we talk briefly about a few other load testing tools you might want to be aware of.”
This is the second time Gregg has beat me to a great screencast :)
Minimalist, keyboard controlled (modal vim-like bindings, or with modifier keys) browser based on Webkit. A lightweight vimperator, maybe?
Nice. The xargs(1) switch -P N will run up to N separate processes in parallel. Combine with the -n M switch for a quick and dirty process pool.
tl;dr — that’s why it’s awesome.
We made it.
Big list of new features in bash 4.0.
This has been sitting in the back of my brain for months now. I finally got a chance to throw something together last night:
Shotgun is an automatic reloading version of the rackup command that’s shipped with Rack. It can be used as an alternative to the complex reloading logic provided by web frameworks or in environments that don’t support application reloading.
The shotgun command starts one of Rack’s supported servers (e.g., mongrel, thin, webrick) and listens for requests but does not load any part of the actual application. Each time a request is received, it forks, loads the application in the child process, processes the request, and exits the child process. The result is clean, application-wide reloading of all source files and templates on each request.
Pat Nakajima’s script to measure the amount bloat you’re adding by requiring libraries. Generates a report on the number of methods added, along with a list of names. Interesting metric.
Christian Neukirchen’s utility for managing multiple virtual ruby installations.
Ruby based continuous integration server that rocks. Built on Sinatra and DataMapper. Painless setup, beautiful web UI, hooks up to GitHub. I wish I’d went and looked at this earlier.
You cannot find this special offer anywhere else. A Twitter client, a fart noise generator, and a flashlight, all in one app for the iPhone. Act now!
Quick presentation on Rack by Dan Webb. Covers a lot in eight minutes.
Aristotle Pagaltzis shows a pretty crazy technique for splitting a single git commit into multiple separate commits using an interactive rebase and successive checkouts on the same branch. Interesting approach. I usually pop the commit off into my working directory with git reset HEAD^ and then use multiple iterations of git add --patch + git commit until my working directory is clean again.
Interesting looking prefpane for MacOS X that tweaks some sleep settings:
“Just ‘sleep’ means that the notebook will go to sleep fast, but you loose the ability to change the battery. Just ‘sleep and hibernate’ will wake the computer fast, but sleeping will take ages as the contents of the memory are saved to disk before entering the sleep. MacOS uses ‘sleep and hibernate’ all the time by default. SmartSleep lets your notebook just ‘sleep’ while the battery has a high level. If the battery level drops below a certain point ( default is less then 20% or 20 minutes ) it will switch to ‘sleep and hibernate’. So you have the best of both worlds.”
Markus Prinz with a nice review of important Ruby 1.9 changes.
A much more sober but constructive take on the plan to merge Rails and Merb.
Christian Neukirchen’s Ruby styleguide. The best I’ve seen.
“The syntax for many of the commands in bashdb mimics that of gdb, the GNU debugger. You can step into functions, use next to execute the next line without stepping into any functions, generate a backtrace with bt, exit bashdb with quit or Ctrl-D, and examine a variable with print $foo.”
RDiscount, a fast Markdown library for Ruby, is now included with the FreeBSD ports collection thanks to Daniel Roethlisberger.
An interesting RubyGems mod by Fabien Franzen that seems to fix the memory hit a process takes on require 'rubygems'. Unfortunately, you have to code for it in your app and apply it to installed ruby commands explicitly. Fabien has submitted a ticket and patch to the RubyGems project, however. You should +1 it (after reviewing the code, of course).
Interesting Rails plugin from Viget Labs that adds ActiveRecord attribute helpers for various humane markup languages. The markdown variation supports both rdiscount and rpegmarkdown. Cool. Not sure how I missed it when it was released in August.
Sends an email notification when someone stops following you on Twitter. I don’t have the nervous system for it myself.
“Varnish implementes a subset of the ESI Language 1.0 defined by W3C, this document lays out some of the thoughts and rationale for choices made and advice for usage of these features.”
This lets you perform includes at the cache layer so that each included resource can have its own caching policy. Akamai edge proxies have supported this for some time, apparently.
Looks like a really solid improvement on 1.0. I haven’t had a chance to play with any of the betas but I’m anxious to see whether If-Modified-Since/If-None-Match validation made it in. There’s a note on “serving expired objects until we have a fresh one” but that sounds more like stale-while-revalidate.
Apparently, Yahoo!’s indexer supports marking specific content on a page as “extraneous to the main unique content”. This lets you prevent headers, navigation, and other types of site-level crud from overwhelming the content and the search results will excerpt only content that’s relevant to the page.
From the Yahoo! Web Crawler FAQ: “… apply the robots-nocontent attribute to indicate to search engines any content that is extraneous to the main unique content of the page. Yahoo! Search observes the class='robots-nocontent' present on XHTML elements, such as div, span, and all others.”
… is a Ruby library suitable for use as a drop-in Net::HTTP replacement or with event frameworks like EventMachine and Rev.
I’m using this on all of my “linkings” index pages now (see here, for example). It works pretty well. I really like the idea of integrating a piece of the destination site’s visual identity instead of using a generic del.icio.us/bookmark icon. Some site’s with favicons don’t work properly, however, and I’d give anything to have another parameter that let me override the default globe icon (this one: ). It’d be nice if I could say, grab the favicon for this domain but if it doesn’t exist, give me the favicon for delicious.com (
).
Very interesting alternative to git submodule, especially in “vendor branch” type scenarios. The other project is merged into yours at a specified prefix and can be updated with a simple git pull.
Lots of good stuff coming in Varnish 2.0. GC, regexp based purge, custom hash funcs, backend load balancing based on health or other metrics, and the thing I’m personally most interested: what looks like support for validation based caching.
Pseudocode for the SHA-1 algorithm. Pretty straight-forward for being so insanely useful.
Highly experimental HTML 5 validation service. More info and bookmarklets available on the about page.
Sends emails to people when you die. Awesome.
“This is how this works. You write a few e-mails, and choose the recipients. These emails are encrypted with military-grade algorithms, so you can be sure that no-one except the intended recipient will ever read them. Your switch will email you every so often, asking you to show that you are fine by clicking a link. If something were to… happen… to you, your switch would then send the emails you wrote to the recipients you specified. Sort of an ‘electronic will’, one could say.”
Dump the stack trace of all threads in a running ruby process by signaling with -QUIT. Requires patching the ruby interpreter, which sucks because I need it for a process running right now.
Yep. Rubygems’s system of security is really very lax compared to any Linux distro or other system-level package management system I’ve come across. I think the bigger problem, though, is that there’s a cultural acceptance to running gem as root. You don’t really think before installing a gem, you just “sudo gem install FOO”. There’s an attack waiting to happen any time you’re using sudo out of convention like that.
PHP-based Muxtape clone that you host yourself. From the project page: “Opentape’s creation and design are proudly inspired by Muxtape’s success and sleek interface. We were sad with it’s untimely shutdown and wanted to let the web mixtape movement continue.”
muxtape.com was RIAA’d a couple of weeks ago. And while the EFF believes they could have decent legal footing if they wanted to challenge the take-down, it seems unlikely that the site will reopen anytime soon, if at all.
I threw this together a few weeks ago and now I’m not sure how I lived without it now. I know you people have cool bash/git hacks sitting in your ~/.bashrc — hand them over.
Very nice and functional JavaScript based timeplot library. Looks good, shows data-points on mouse over, approachable API. Good stuff.
Awesome. I didn’t even know there were such things as Firebug Extensions.
Sam Ruby on how DVCS + mailing list has removed the need for bug tracking systems on some projects. I’m feeling a similar pull in my own work.
Awesome idea. Nice syntax highlighting. (Via Simon Willison)
Nice TOS: “We are engineers, and we, like you, know very well how you want to be served by us, just as you know very well what not to do here.”
Free (as in beer). Built on WebKit. Simple. Beautiful.
An initial version of RDiscount’s API docs just published on rubyforge…
Compare (as in, diffs) the output of 15 different Markdown implementations. Includes every Markdown implementation I’ve ever come across and then some…
Justin French: alias push?='git cherry -v origin' — beautiful.
Interesting. I’ve been using the jquery-1.2.3.js hosted on google code for a few months now. Maybe I should have read the TOS…
This is the template used to generate the HAML RDoc. It’s a massive improvement over the default template shipped with rdoc. I can almost stomach rdoc with this — almost.
Interesting thread wherein Linus describes the need for various types of Git workflows for leaf developers vs. maintainers. Lot’s of talk about the pros and cons of rebasing in different situations.
An implementation of Markdown in portable ANSI C that’s roughly 28.5x faster than the canonical Perl implementation on a 179K test file. Looks like a complete implementation; includes smarty and footnote extensions.
And I was just starting to get used to the Minefield icon… I’ve been running the nightlies for about three months now and FF2 is really feeling a bit like legacy software.
I think I may finally be able to get rid of Colloquy.
All manners of good stuff here.
Now this is the kind of direction I hope to see GitHub and Gitorious go in the future.
The Python REPL running on Google’s infrastructure.
Ian Bicking: “Many people are excited about how far up you might be able to scale something based on App Engine, but I’m excited about how far it could be scaled down.”
A nice solution to “The Tangled Working Copy Problem” for VCS’s that don’t allow you to pluck out portions of a working copy to commit. Allows editing the diff that’s about to be committed.
Matt Chisholm evaluates Ruby against Python for an upcoming project and determines that it’s a big pile of doodoo. I can’t agree with the conclusion but he details a lot of Ruby’s warts really quite well.
I’m a bzr refugee in Git-land, myself.
Bill de hÓra gives some reasons for using a distributed VCS even when the downstream repo is non-distributed.
JavaScript based source highlighter with support for many languages in separate modules. Similar to the JavaScript Prettifier in that <pre><code> blocks are automatically detected and highlighted without an explicit language class.
David Heinemeier Hansson: “PHP scales down like no other package for the web and it deserves more credit for tackling that scope.”
Agreed!
Okay, I’ve read about five of these articles purporting to explain Git’s internal conceptual framework. This was the first that really made things click in any significant way.
I’m more than a little embarased that I’ve never heard of this utility. I think most modern kernels prioritize IO with normal nice, though…
Most of these are relevant to POSIX sh(1). This one gets me every time: echo <<EOF :)
More praise for GitHub from a small team of Django hackers that built a site in three hours on one night with a little help from git…
Makes the background of hexadecimal color codes the respective color. So, background-color:#f00 will have a red background in the vim editing window. Nifty.
Make Firefox like Vim. No, like, insanely like Vim. Not just h,j,k,l mappings but everything. Looks like it’s been around for awhile. I’m not sure how I missed it.
A quick script I threw together to convert simple bzr branches to git repos. Requires git, bzr, and rsync.
I repackaged mongrel_proctitle as a GemPlugin so that all mongrels on use it automatically. This is the first chance I’ve had to play with GitHub, too. Lovin' it.
Constantly updates the the process title ($0) with something like: “mongrel_rails [10010/2/358]: handling 127.0.0.1: HEAD /feed/calendar/global/91/6de4”. Let’s you monitor backends with ps and top.
“… adds a chroot(2) facility to sshd, controlled by a new sshd_config(5) option ‘ChrootDirectory’. This can be used to ‘jail’ users into a limited view of the filesystem, such as their home directory …”
Huge thanks to al3x for the invite. I’ll be writing up my experience over the next week or so.
Seriously interesting web based git browser and collaboration tool from the folks at Engine Yard. If anyone has a spare invite laying around, hook me up: rtomayko@gmail.com. I have a bunch of stuff sitting in bzr repos that I’d like to flip over to git.
From the comments: “the only things i find [useful] in Web Developer Extension is the shortcut to clear cache… for other things i use Firebug…” — Me too!
Nice Ruby assertion library that’s block based. Shows block contents when the assertion fails. Much cleaner than Test::Unit assertions and without the retarded RSpec non-sense. This really ought to be rolled into the stdlib Test::Unit, IMO.
Lightweight Firefox extension that causes new tabs to open to the right of the current tab. Works with Firefox 3.0 betas and nightlies with extension compatibility checking disabled.
Finally: “this manual is designed to be readable by someone with basic UNIX command-line skills, but no previous knowledge of git.”
Evan Weaver: “These leaks tend to grow slowly. Your Rails app definitely has this kind of leak, especially if it uses the ActiveRecord session store.”
There’s some good questions here. I’ve been running into a few of the same issues while experimenting with moving some of my bzr projects to git. Can one of the git pros out there have a look?
Runs on Linux and FreeBSD (with linproc mounted on /compat/linux/proc). I’ve always wondered why top(1) just kind of stopped being developed 10 years ago.
You’ve got to be kidding me…
I’ve been watching the weekly changelogs and there were a ton of performance tweaks. The FreeBSD port landed today as well.
This is pretty funny. Even the options dialogs are themed.
pv can be inserted into any normal pipeline between two processes to give a visual indication of how quickly data is passing through, how long it has taken, and an estimate of how long it will be until completion.
Dennis Ritchie: “There was a facility that would execute a bunch of commands stored in a file; it was called runcom for ‘run commands’, and the file began to be called ‘a runcom’. rc in Unix is a fossil from that usage.”
Payware GUI shell thingy for MacOS. This is not a QuickSilver/Launchbar clone. It’s more like a magical bash interpreter that knows things about what’s happening in various Mac GUI applications (like Finder, Safari, etc).
I wonder why newsgator would make this free. Seems like there was a pretty decent slate of paying users. Losing ground to Google Reader? Eventual ad placement? Just wanted to be nice? Weird.
“I am going to introduce you to bash’s vi editing mode and give out a detailed cheat sheet with the default keyboard mappings for this mode.”
I can never remember nmap args for some reason…
This is a good idea. The w3c hosted validators tend to perform on the bad side of horrible. I’ve run the validator locally but never thought to look for mirrors.
New, faster repo format and a bunch of other tweaks make in during the RC process.
I would use this ASAP if not for the privacy requirements around the data I’m charting. There’s really no good general purpose graphing libraries that use nice and simple vector shapes and styles.
This trumps Leopard for most important Mac development this year as far as I’m concerned. Words cannot explain the hatred I’ve developed for booting up multiple Parallels VMs to get at IE.
“Installation is left as an exercise for the reader.”
Absolutely beautiful new Vim port for OS X – sane GUI tabs, multiple windows, client/server mode, fonts look great. Stop building Carbon Vim from source!
Manual page URL handler for Safari (e.g., “man:bash”, “man:sort” in URL box). References to other man pages are hyperlinked very nicely and the pages themselves are formatted quite nicely.
That was quick. IMO, the Mac needs this application more than other platform’s (including Windows) because of its document oriented application switching.
“v1.8.0 represents nearly a year of development and testing to bring you a host of new features and improvements”
Vim add-in for viewing manpages, perldoc (both system and embedded), help, info, and php files. Maybe I’ll finally be able to read all that GNU info doc I keep hearing about in the GNU coreutils man pages.
NoSquint remembers your text zoom level per site, so you will only need to adjust text size once for each site that uses text that is too small for your eyes.
Some detail on rsync’s “rolling checksum” algorithm invented by Andrew Tridgell.
“… cron’s pathological behavior has be petrified into the Unix standards. So if it isn’t broken, it isn’t cron.”
Aaron is at it again. This looks like the perfect web based notepad.
“…. But after closely studying Git I’m a little bit awestruck; Torvalds is a frickin' genius, a true visionary, and somehow managed to just "get it” and instantly, in a flash of insight, come up with “the solution” for version control."
“… on Java, too many web frameworks – think JSF, or Struts 1.x – consider the Web something you work around using software patterns. The goal is get off the web, and back into middleware…”
You had me at “SSH”.
Nice. This is going to save me some serious time.
Oh wow. I’ve been trying to find a single page that has every unicode character on it with its hex counterpart but this is pretty fantastic.
Nifty combo.
About half of these will be well-known to the UNIX hacker but there’s a couple I’ve not seen elsewhere: lsbom, softwareupdate, screencapture, and lipo.
Perfectly done.
“In the remaining four templates, the translation from XSLT to Genshi markup is straightforward. And generally, the Genshi markup is both more compact and more powerful.”
Nice look at techniques for writing portable sh.
CHANGES
This is pretty darn close to my configuration but I used the mutt-devel port… Oh, and my ~/.procmailrc is pretty insane also :)
Recent presentation by Mr. Bram Moolenaar on how to be a bad-ass with Vim.
Best idea ever. EVER!
Love it! This is less of an article and more of a minute by minute account of hacker seeing something he doesn’t understand and following the trail (man, code, calculus) to understanding.
“Essentially, this add Vi command functionality (albeit a small subset) to any (and all) text editors that use the Cocoa text system; e.g., Safari, TeXShop, XCode, etc.”
Interesting concept. I’ll have to check this out once it comes out of “pre-pre-pre alpha” (which doesn’t really make sense, btw. There’s nothing more alpha than alpha).
Vim 7.0.188 Universal and PPC binaries are up.
“the version control system is a first order effect on software, along with two others – the build system and the bugtracker. Those choices impact absolutely everything else. Things like IDEs, by comparison, don’t matter at all.”
Put in a subversion URL and get back an RSS feed for tracking changes.
I’ve been meaning to spend some time in Restlet for some time now. Looks like it’s gaining traction with the EE crowd. Err, well, uhh, some of the EE crowd, anyway.
This is another thing that’s been driving me crazy for a while now. I’m going to try the bonjour technique mentioned in the comments.
OpenID solves the identity problem, not the trust problem. When a user authenticates with OpenID, what they are doing is stating “I have the ability to prove my ownership of this URL”.
“The demoroniser keeps you from looking dumber than a bag of dirt when your Web page is viewed by a user on a non-Microsoft platform.”
I’ve been using a fetchmail, procmail, and mutt setup on my Mac for a few months now in an attempt to get control over five different mailboxes and it’s working pretty well. If you’ve got some free time and lots of mail, consider playing around with one o
“strives to provide most of GNU grep’s common features, applying them to the network layer. ngrep is a pcap-aware tool that will allow you to specify extended regular or hexadecimal expressions”
Rock on.
Nice looking Newsreader for Mac OS X (F/OSS with an Apache 2.0 license and public subversion repository).
Whose going to get this running on OS X? I guess it doesn’t really matter. I can always X over to a Linux box…
Seamless window support for rdesktop (and perhaps Cocoa Remote Desktop). Similar to Parallel’s Coherence Mode for RDP.
A Cocoa port of rdesktop. Universal Binary, multiple concurrent sessions, no X11 makes it the best RDP client for Mac on paper.
Handsome Flash based color mixing tool and color theme sharing site.
Holy… This is big. Huge big.
If someone puts one of these together I’ll buy it for $50 USD.
The best attempt I’ve seen at splicing multiple API references together. This uses the external documentation but provides indexing and browsing features.
Best UNIX productivity article I’ve read in a long while.
Firefox extension with some promising script debugging/spying features.
haha!
Dumps graphic (PNG) representations of a webpage to disk using Apple Webkit. Similar to a screenshot but better because it can capture the entire height and width of a page even when they extend pass your screen size.
… and not just the usual suspects either.
Yep :)
Useful…
Oh wow, I just ripped all my iTunes DRM’d songs down to unprotected AAC in about 10 minutes. These guys did a great job.
This is probably the nicest color picker for choosing compliments off of a base color.
Let’s build an open / distributed build network.
could be useful…
Alright, it looks like I’m going to have to break down and learn how to package ports since none of this crap is working on Tiger.
Seriously.
This does look cool.
I’m going to see about moving my weblog to this..
This is too cool.
Need to move away from history | grep -i
One down, two to go…
Find locally owned alternatives to Starbucks in your neighborhood.
Came across this odd section in a “leaving Emacs for vi” document and it has a really interesting description of the history of FSF/GNU, Linux, and the evolution of Free Software. Seems out of place in this document but is worth reading.
Make firefox act like Emacs. How cool is that?
For christ sakes, man! I hope Hani doesn’t ever see this…
Information on setting up emacs for (X)HTML web development including nxml-mode, rng-validate-mode, etc.
Introduction to being a complete bad-ass.
An implementation of John Gruber’s markdown text to XHTML processor in Python.
del.icio.us/popular with nifty sparkline graphs for tracking popularity over time (via Simon Willison)
Vonage hacking..
New York Times covers the Wikinews project.
Track whether your MP is working for you in the UK Parliament.. Really cool looking piece of civic software.
Quick guide to loading a new project into subversion.
Generates non-expiring links to New York Times content. Bookmarklet included.
Title says it all..
Nice look at moving to subversion. Go into migrating from CVS, subversion idioms, gotchas, etc.
Entire subversion book on one page.
Demo of 100% free Java/Eclipse natively compiled with gcj. This is slated for Fedora Core 4.
Photo management software, free from Google. Find, edit, share photos.
Find out and track what’s going on in congress. We need more tools like this.
Export list of songs from iTunes, upload here, drag images to iTunes. Nice.
Cool. This is one of the most frequent requests on yum-devel. Not sure who’s behind this though because I don’t remember seeing it discussed on the mailing list.
Is it just me or are color pickers the only apps that are innovating on the web? You can never have too many of these.
All on one page :)
This seems to be a bit cleaner and more functional than the standard python unittest module.
Another great all-html color-picking app.
when you can’t afford a google appliance…
I can finally shelve my bash/curl framework :)
only takes 15 pages to explain.
A flickr desktop client.
perfect..
adobe reader is a tool of pirates. this will undoubtedly strangle the nascent graph paper market!
yeah whatever… I’ve been trying to learn emacs for years.
Hard to believe this isn’t part of the standard distribution.
Can be run in-process or client/server. Whole database stays in memory. Could be super useful in some situations.
A remote file editing package for Emacs. Uses ssh/scp.
Finally..
“share a single mouse and keyboard between multiple computers with different operating systems” via PhotoMatt.
Super useful tips on diving into Emacs.
ASCII to Binary converter. Does Hex and Octal too.
A bunch of extremely useful notes on hacking emacs. (Ftrain.com)
Generates per-site passwords based on a master password and the site’s domain name.
A distributed P2P web cache thingy that looks cool. Need a bookmarklet to generate the URLs.
After using Emacs for three years, I think I finally need to learn how to use it. This has some good pointers.
This could be really really really big.
A solution to paste flooding IRC channels. Paste code to this website. The paste stays for 24 hours. Neat. It’s kind of fun just browsing the Recent Pastes.
Modify the RGB values used for ANSI colors in Terminal.app.
Thinking about using this for my comment system. They have an XML-RPC API but it isn’t documented on the site.
This much sed will eat your brains!
Pythonic interface to the del.icio.us REST APIs.
Bunch of News Readers
I need to send this link to my mom..
Rockin color picker.