Menial » Base
2 days ago
Base is an application for creating, designing, editing and browsing SQLite 3 database files. It's a proper Mac OS X application. Fast to launch, quick to get in to and get the data you need.
database
mac
osx
software
sqlite
2 days ago
brianleroux/css-slap-chop
6 days ago
Findin' unused css selectors in your html, slappin' them around, and choppin' em out.
css
tool
html
coverage
6 days ago
Anthony Eden - Build and Test APIs with Ruby and Cucumber on Vimeo
15 days ago
Anthony Eden is the founder of DNSimple and has been developing software for 15 years. Anthony spends the majority of his time writing Ruby code but also dabbles in other languages like JavaScript, Clojure and even wrote a bit of Java in his past (ok, a lot of Java).
Build and Test APIs with Ruby and Cucumber
Web apps are hot, web apps with APIs are even hotter. These days popular sites are opening up more and more of their functionality via web APIs and you should too. This talk will cover how to develop web APIs with Ruby, either using Rails or Sinatra. It will also cover how to test those APIs with Cucumber.
talk
ruby
api
design
testing
cucumber
software
architecture
Build and Test APIs with Ruby and Cucumber
Web apps are hot, web apps with APIs are even hotter. These days popular sites are opening up more and more of their functionality via web APIs and you should too. This talk will cover how to develop web APIs with Ruby, either using Rails or Sinatra. It will also cover how to test those APIs with Cucumber.
15 days ago
API Design Matters - Anthony Eden - Rocky Mountain Ruby 2011
15 days ago
The effects of API design will likely live with your project for a long time, often beyond your tenure with the project. Yet good API design is very rarely discussed and often leads developers to the conclusion that good APIs are something that "we know when we see them."
This talk will attempt to layout a set of fundamentals for good API design so that we can begin to really understand the difference between well-designed APIs and those that are mediocre. It will also explain about various trade-offs that are made when designing APIs and some of the pros and cons that come with each trade-off. Finally we'll take a look at some good APIs and bad APIs in Ruby.
rockymtnruby2011
api
design
talk
ruby
software
architecture
This talk will attempt to layout a set of fundamentals for good API design so that we can begin to really understand the difference between well-designed APIs and those that are mediocre. It will also explain about various trade-offs that are made when designing APIs and some of the pros and cons that come with each trade-off. Finally we'll take a look at some good APIs and bad APIs in Ruby.
15 days ago
Advanced API design: how an awesome API can attract friends... by Jonathan Dahl - YouTube
15 days ago
Advanced API design: how an awesome API can attract friends, make you rich, and change the world by Jonathan Dahl.
APIs are becoming ubiquitous, but they are really hard to design well. In this talk, we'll discuss how to design and implement an API that isn't just functional, but makes people stand up and cheer. We'll also cover tips for integrating with other people's APIs. But an awesome API isn't just a feature. APIs are currently transforming the world, just like open source software has changed the world for the last decade. We'll talk about how this transformation impacts developers and changes the rules.
rubyconf2011
ruby
api
design
software
architecture
talk
APIs are becoming ubiquitous, but they are really hard to design well. In this talk, we'll discuss how to design and implement an API that isn't just functional, but makes people stand up and cheer. We'll also cover tips for integrating with other people's APIs. But an awesome API isn't just a feature. APIs are currently transforming the world, just like open source software has changed the world for the last decade. We'll talk about how this transformation impacts developers and changes the rules.
15 days ago
Developing Backbone.js Applications
15 days ago
Open book by Addy Osmani.
Welcome to my (in-progress) book about the Backbone.js framework for structuring JavaScript applications. It's released under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license meaning you can both grab a copy of the book for free or help to further improve it.
I'm very pleased to announce that this book will be out in physical form in a few months time via O'Reilly Media. Readers will have the option of purchasing the latest version in either print or a number of digital formats then or can grab a recent version from this repository.
Corrections to existing material are always welcome and I hope that together we can provide the community with an up-to-date resource that is of help. My extended thanks go out to Jeremy Ashkenas for creating Backbone.js and these members of the community for their assistance tweaking this project.
javascript
clientside
mvc
book
backbone
web
application
Welcome to my (in-progress) book about the Backbone.js framework for structuring JavaScript applications. It's released under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license meaning you can both grab a copy of the book for free or help to further improve it.
I'm very pleased to announce that this book will be out in physical form in a few months time via O'Reilly Media. Readers will have the option of purchasing the latest version in either print or a number of digital formats then or can grab a recent version from this repository.
Corrections to existing material are always welcome and I hope that together we can provide the community with an up-to-date resource that is of help. My extended thanks go out to Jeremy Ashkenas for creating Backbone.js and these members of the community for their assistance tweaking this project.
15 days ago
Automated Analysis of CSS Rules to Support Style Maintenance
15 days ago
Paper by Ali Mesbah and Shabnam Mirshokraie of the University of British Columbia, Canada.
CSS is a widely used language for describing the presentation semantics of HTML elements on the web. The language has a number of characteristics, such as inheritance and cascading order, which makes maintaining CSS code a challenging task for web developers. As a result, it is common for unused rules to be accumulated over time. Despite these challenges, CSS analysis has not received much attention from the research community. We propose an automated technique to support styling code maintenance, which (1) analyzes the runtime relationship between the CSS rules and DOM elements of a given web application (2) detects unmatched and ineffective selectors, overridden declaration properties, and undefined class values. Our technique, implemented in an open source tool called CILLA, has a high precision and recall rate. The results of our case study, conducted on fifteen open source and industrial web-based systems, show an average of 60% unused CSS selectors in deployed applications, which points to the ubiquity of the problem.
stylesheet
css
dynamic
analysis
software
maintenance
web
application
unused
selector
detection
CSS is a widely used language for describing the presentation semantics of HTML elements on the web. The language has a number of characteristics, such as inheritance and cascading order, which makes maintaining CSS code a challenging task for web developers. As a result, it is common for unused rules to be accumulated over time. Despite these challenges, CSS analysis has not received much attention from the research community. We propose an automated technique to support styling code maintenance, which (1) analyzes the runtime relationship between the CSS rules and DOM elements of a given web application (2) detects unmatched and ineffective selectors, overridden declaration properties, and undefined class values. Our technique, implemented in an open source tool called CILLA, has a high precision and recall rate. The results of our case study, conducted on fifteen open source and industrial web-based systems, show an average of 60% unused CSS selectors in deployed applications, which points to the ubiquity of the problem.
15 days ago
ignore the code: EdgeCase
15 days ago
EdgeCase is a nifty new utility for the Mac. Tons of features on the Mac rely on Fitts’s law. Notably, the Mac makes good use of the «infinite width» provided by screen edges. These «infinite width» edges allow you to quickly access the menubar, reveal a hidden Dock, or slam your mouse into a screen corner to activate Mission Control, Exposé, or another feature.
This stops working reliably once you have more than one monitor. Now, the edge between the two screens disappears. Instead of hitting the edge, the mouse moves to the other screen. EdgeCase solves this problem. With EdgeCase, the edge returns, and works as if you only had one monitor.
To move your mouse to the other monitor, hold down ctrl or ⌘, wait for half a second, or «bounce» the cursor on the edge.1
Recommended.
mac
app
screen
corner
utility
tool
This stops working reliably once you have more than one monitor. Now, the edge between the two screens disappears. Instead of hitting the edge, the mouse moves to the other screen. EdgeCase solves this problem. With EdgeCase, the edge returns, and works as if you only had one monitor.
To move your mouse to the other monitor, hold down ctrl or ⌘, wait for half a second, or «bounce» the cursor on the edge.1
Recommended.
15 days ago
Cross-browser kerning-pairs & ligatures
20 days ago
Improved handling of kerning pairs and ligatures in modern browsers using the text-rendering: optimizeLegibility; declaration. The declaration is currently supported by:
Safari 5, The Webkit Nightlies & Chrome. Firefox already uses optimizeLegibility by default for text sizes above 20px.
css
typography
css3k
kerning
ligature
Safari 5, The Webkit Nightlies & Chrome. Firefox already uses optimizeLegibility by default for text sizes above 20px.
20 days ago
Meaningful CSS // Speaker Deck
28 days ago
CSS is becoming more powerful and more complex every year. Our designs are the best they have ever been, but the code to build them is out of control: a minefield of browser inconsistencies and secret workarounds, repetitive and inefficient declarations, and hidden meanings.
That's no way to write maintainable code.
It's time to move front-end development into the present with DRY, modular code. What if you could write CSS that made sense, everyone could read, and you could share it across projects, all without repeating yourself throughout the document? What if you could call a column a column and leave it at that?
You can. With the abstractions available in pre-processors, you can create and share simple tools that make CSS more specific, simple, and concrete than ever before. I'll show you how tools like Sass, Compass, and Susy can make your CSS workflow, maintenance, and learning-curve easier for developers at every level.
presentation
css
sass
compass
stylesheet
organization
That's no way to write maintainable code.
It's time to move front-end development into the present with DRY, modular code. What if you could write CSS that made sense, everyone could read, and you could share it across projects, all without repeating yourself throughout the document? What if you could call a column a column and leave it at that?
You can. With the abstractions available in pre-processors, you can create and share simple tools that make CSS more specific, simple, and concrete than ever before. I'll show you how tools like Sass, Compass, and Susy can make your CSS workflow, maintenance, and learning-curve easier for developers at every level.
28 days ago
Fire.app: Dead Easy HTML Prototyping
28 days ago
Mac, Linux, and Windows standalone application that watches directories and is able to compile Sass, Compass, and CoffeeScript.
app
mac
sass
compass
coffeescript
watch
compile
28 days ago
tbaggery - Effortless Ctags with Git
29 days ago
How to automatically index source code files with ctags on repository checkouts using Git commit hooks.
git
hook
ctags
vim
29 days ago
Rails Sustainable Productivity - Xavier Shay - LA Ruby Conference 2012
5 weeks ago
I've been writing Rails for near on five years, and there are some things that really grind my goat. Rails is great, but there are so many things we get wrong, both as a framework and a community. In particular, for applications that have grown beyond an initial prototype (if you earn a salary writing Rails, this is probably you), many Rails Best Practices are actively harmful to creating solid, robust, and enjoyable applications. I'll talk about testing, data modelling, code organisation, build systems, and more, drawing from a large pool of things I have seen done wrong and also personally failed at over the last half decade. Of course I'll be providing suggestions for fixing things, also.
It's more of a freight train, see.
rails
talk
database
simplicity
easiness
architecture
It's more of a freight train, see.
5 weeks ago
Coding Horror: A Visual Explanation of SQL Joins
5 weeks ago
SQL Joins explained with the help of Venn diagrams.
Also see: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg
database
join
explanation
venn
diagram
sql
Also see: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg
5 weeks ago
adamdbradley/foresight.js · GitHub
5 weeks ago
Foresight.js gives webpages the ability to tell if the user's device is capable of viewing high-resolution images (such as the 3rd generation iPad) before the image has been requested from the server. Additionally, it judges if the user's device currently has a fast enough network connection for high-resolution images. Depending on device display and network connectivity, foresight.js will request the appropriate image for the webpage. By customizing the img src attribute using methods such as URI templates, or finding and replacing values within the URI, it is able to form requests built for your image's resolution variants. Media queries however, could be used when dealing with CSS background-images, while foresight.js is used to handle inline img elements (or until current web standards are improved).
javascript
responsive
mobile
high
resolution
detection
images
library
5 weeks ago
plataformatec/simple_form
6 weeks ago
SimpleForm aims to be as flexible as possible while helping you with powerful components to create your forms. The basic goal of SimpleForm is to not touch your way of defining the layout, letting you find the better design for your eyes. Most of the DSL was inherited from Formtastic, which we are thankful for and should make you feel right at home.
rails
ruby
gem
form
dsl
6 weeks ago
Geocomplete - jQuery Geocoding and Places Autocomplete Plugin
6 weeks ago
An advanced jQuery plugin that wraps the Google Maps API's Geocoding and Places Autocomplete services. You simply provide an input that lets you search for locations with a nice autocomplete dropdown. Optionally add a container to show an interactive map and a form that will be populated with the address details.
javascript
jquery
plugin
geocoding
autocomplete
6 weeks ago
Vim Plugins · joyent/node Wiki
7 weeks ago
A list of Vim plugins useful for working with Node.js/JavaScript.
javascript
node.js
vim
plugin
list
7 weeks ago
opscode/chef-fundamentals
8 weeks ago
Opscode Chef Fundamentals training materials.
chef
devops
learning
tutorial
ruby
provisioniung
8 weeks ago
Movie Poster of the Week: “Ivan’s Childhood” and the films of Andrei Tarkovsky on Notebook | MUBI
8 weeks ago
Great Movie Posters of Andrei Tarkovsky films. WANT!
movie
film
poster
from twitter_favs
8 weeks ago
cujojs/curl
8 weeks ago
curl.js is a small and very fast AMD-compliant asynchronous loader. Size: 5KB (2.5KB gzipped) using Google's Closure Compiler.
If you'd like to use curl.js for non-AMD modules (ordinary javascript files), you'll want to use a version with the js! plugin built in. You may also want to build-in the domReady module. The combined curl+js+domReady loader is still only 6.5KB (3KB gzipped).
* Loads CommonJS AMD-formatted javascript modules in parallel (fast!)
* Loads CommonJS Modules (v1.1 when wrapped in a define()) (fast!)
* Loads CommonJS Packages (v1.1 modules wrapped in a define()) (fast!)
* Loads non-AMD javascript files in parallel, too (fast! via js! plugin)
* Loads CSS files and text files in parallel (fast! via plugins)
* Waits for dependencies (js, css, text, etc) before executing javascript
* Waits for domReady, if/when desired
* Allows for virtually limitless combinations of files and dependencies
* Tested with Chrome, FF3+, Safari 3.2+, IE6-8, Opera 9.5+
javascript
amd
loader
If you'd like to use curl.js for non-AMD modules (ordinary javascript files), you'll want to use a version with the js! plugin built in. You may also want to build-in the domReady module. The combined curl+js+domReady loader is still only 6.5KB (3KB gzipped).
* Loads CommonJS AMD-formatted javascript modules in parallel (fast!)
* Loads CommonJS Modules (v1.1 when wrapped in a define()) (fast!)
* Loads CommonJS Packages (v1.1 modules wrapped in a define()) (fast!)
* Loads non-AMD javascript files in parallel, too (fast! via js! plugin)
* Loads CSS files and text files in parallel (fast! via plugins)
* Waits for dependencies (js, css, text, etc) before executing javascript
* Waits for domReady, if/when desired
* Allows for virtually limitless combinations of files and dependencies
* Tested with Chrome, FF3+, Safari 3.2+, IE6-8, Opera 9.5+
8 weeks ago
Git for Computer Scientists
9 weeks ago
Git boiled down and explained without any useless abstractions.
git
guide
9 weeks ago
curl.js AMD Loader
9 weeks ago
Introduction to the curl JavaScript ADM loader.
javascript
amd
loader
article
blog
post
from instapaper
9 weeks ago
Style Guide
10 weeks ago
Living CSS/Frontend Styleguid of starbucks.com.
css
design
styleguide
responsive
frontend
OOCSS
10 weeks ago
Fu
10 weeks ago
Commandlinefu.com is an online repository for recording commandline gems, that you return to again and again. 'fu' is a commandline interface that allows you to harvest the power of internets commandline wisdom. Now you can search this trove of online treasures from the comfort of your commandline.
cli
commandline
repository
tool
tips
tricks
10 weeks ago
Add Syntax Highlighting To Your Blog With VIM
10 weeks ago
VIM includes a plugin called TOhtml. Calling this will convert the current file into HTML, complete with coloring if syntax highlighting is enabled. This works on hightlighted text too.
vim
copy
color
text
syntax
highlighting
html
10 weeks ago
InfiniteLooper - Loop YouTube Videos
11 weeks ago
Easily loop your videos. Search for your favorite video or enter the YouTube URL (or Video ID) of the video you wish to loop.
video
youtube
loop
web
service
creation
11 weeks ago
Boundary — Home
11 weeks ago
A cloud-based application that uses big data analytics to monitor distributed applications in real-time. Boundary's real-time view of distributed application behavior provides previously unobtainable insights that allow for maximum quality of service delivery.
monitoring
distributed
system
realtime
service
network
visualization
11 weeks ago
Blade Runner Deckard Whiskey Glass
12 weeks ago
Here you can buy the whisky glass used by Rick Deckard in BLADE RUNNER.
design
movies
whisky
glass
shop
12 weeks ago
volojs/volo
12 weeks ago
A command line JavaScript tool for JavaScript-based projects. It likes GitHub.
The basic tool is a generic command completion tool -- you can create new commands for volo, and you can use commands others have created.
By default, volo knows how to:
* create a new web project
* add scripts for a web project from the command line
* acquire new commands for volo
* update volo
* convert some scripts to AMD format
It is still very early in development. Lots may change and it has some sharp corners, but it is already fun to use. It is just one file, so it is easy to try out and discard.
javascript
script
management
github
amd
module
The basic tool is a generic command completion tool -- you can create new commands for volo, and you can use commands others have created.
By default, volo knows how to:
* create a new web project
* add scripts for a web project from the command line
* acquire new commands for volo
* update volo
* convert some scripts to AMD format
It is still very early in development. Lots may change and it has some sharp corners, but it is already fun to use. It is just one file, so it is easy to try out and discard.
12 weeks ago
EpicEditor - An embeddable JavaScript Markdown editor
12 weeks ago
EpicEditor is an embeddable JavaScript Markdown editor with some minor Markdown enhancements such as automatic link creation and code fencing.
editor
javascript
markdown
12 weeks ago
Induction ⚡ A Polyglot Database Client For Mac OS X
12 weeks ago
Focus on the data, not the database. Induction is a new kind of tool designed for understanding and communicating relationships in data. Explore rows and columns, query to get exactly what you want, and visualize that data in powerful ways.
SQL? NoSQL? It Don't Matter
Data is just data, after all. Induction supports PostgreSQL, MySQL, SQLite, Redis, and MongoDB out-of-the-box, and has an extensible architecture that makes it easy to write adapters for anything else you can think of. CouchDB? Oracle? Facebook Graph? Excel? Make it so!
mac
database
editor
viewer
postgres
mysql
nosql
couchdb
sqlite
redis
mongodb
from twitter_favs
SQL? NoSQL? It Don't Matter
Data is just data, after all. Induction supports PostgreSQL, MySQL, SQLite, Redis, and MongoDB out-of-the-box, and has an extensible architecture that makes it easy to write adapters for anything else you can think of. CouchDB? Oracle? Facebook Graph? Excel? Make it so!
12 weeks ago
Mastering Emacs
march 2012
The blog will cover all facets of Emacs and will be suitable for beginners and — I hope — experts alike.
emacs
blog
tips
from instapaper
march 2012
“Structure and Interpretation of Computer Programs” in Texinfo Format
february 2012
MIT Press now distributes the second edition of the book Structure and Interpretation of Computer Programs (SICP) in HTML format. Lytha Ayth converted the book to Texinfo format, so that the book can be viewed in Emacs. S/he apparently redrew all the figures using ASCII text characters, which is rather perverse.
I've made very minor modifications to a version of sicp.texi that was circulating informally at MIT, and distribute my modified version (and a compiled sicp.info of it) via this Web page.
emacs
lisp
programming
book
interactive
I've made very minor modifications to a version of sicp.texi that was circulating informally at MIT, and distribute my modified version (and a compiled sicp.info of it) via this Web page.
february 2012
Node.js Manual
february 2012
This manual consists of three different sections:
The Node.js API Reference documents the core Node.js modules
The Node.js Guide contains articles and code samples on coding in Node.js
The Javascript Reference contains doucmentation about the Javascript language
node.js
documentation
javascript
The Node.js API Reference documents the core Node.js modules
The Node.js Guide contains articles and code samples on coding in Node.js
The Javascript Reference contains doucmentation about the Javascript language
february 2012
The Julia Language
february 2012
Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, mostly written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, FFTs, and string processing. More libraries continue to be added over time. Julia programs are organized around defining functions, and overloading them for different combinations of argument types (which can also be user-defined).
programming
language
mathematics
computer-science
computing
february 2012
Taking advantage of RSpec's "let" in before blocks - makandropedia
february 2012
Inside before :each blocks you can refer to variables that you introduce via let later on. They do not need to be defined ahead of your before block and can be different for individual sections.
ruby
rspec
testing
february 2012
CSS Power Tools
february 2012
Let’s admit it, the tools for writing CSS aren’t very advanced. For the most part, the people who write tools don’t know about CSS and the people who know about CSS don’t write tools. Quite a conundrum!
In this session, you’ll learn about good tools that can make development faster and maintenance easier. We’ll also talk a bit about where we can go from here.
What tools do we need as sites are becoming more and more complex? We need to get beyond tools whose primary goal is to avoid hand-coding and realize that, as our techniques for writing CSS become more powerful, our tools can too! Session will include:
* Validators
* Preprocessors
* Finding dead rules
* Linting
* CSS3 gradient tools
* Performance measurement tools
* Unit testing
css
presentation
tool
overview
In this session, you’ll learn about good tools that can make development faster and maintenance easier. We’ll also talk a bit about where we can go from here.
What tools do we need as sites are becoming more and more complex? We need to get beyond tools whose primary goal is to avoid hand-coding and realize that, as our techniques for writing CSS become more powerful, our tools can too! Session will include:
* Validators
* Preprocessors
* Finding dead rules
* Linting
* CSS3 gradient tools
* Performance measurement tools
* Unit testing
february 2012
Tools For jQuery Application Architecture (Extended Slides)
february 2012
Hey guys. I just wrapped up my talk on Tools for jQuery Application Architecture over at Web Directions in London and wanted to make sure everyone interested had access to the slides. Some of the topics I cover include:
MVC & MVVM architecture patterns for client-side development
JavaScriptMVC, Backbone, Spine, SproutCore, Sammy.js
Design patterns for JavaScript applications
Dependency management
JavaScript templating
Cross-browser persistent storage
Feature detection
Widgets & Component libraries
Unit Testing & testing environments
Build Processes, concatenation and minification.
and more!
javascript
mvc
jquery
architecture
tool
overview
presentation
MVC & MVVM architecture patterns for client-side development
JavaScriptMVC, Backbone, Spine, SproutCore, Sammy.js
Design patterns for JavaScript applications
Dependency management
JavaScript templating
Cross-browser persistent storage
Feature detection
Widgets & Component libraries
Unit Testing & testing environments
Build Processes, concatenation and minification.
and more!
february 2012
geddesign/wrapjs - GitHub
february 2012
A RequireJS plugin for wrapping regular scripts as AMD modules. This is useful for cases where regular scripts have dependencies.
javascript
requirejs
dependency
management
amd
module
wrapper
february 2012
trevmex/EnvJasmine-Rails3-Example - GitHub
february 2012
This is an example Ruby on Rails 3 app that uses EnvJasmine to test JavaScript. You can use it as a basis for your own app.
javascript
testing
headless
jasmine
rails
example
february 2012
trevmex/EnvJasmine - GitHub
february 2012
EnvJasmine allows you to run headless JavaScript tests.
javascript
testing
headless
jasmine
tdd
february 2012
AfterColors.vim - Provides support for after/colors/ scripts : vim online
february 2012
Allows you to create an after/colors/ script for customizing any colorscheme.
vim
plugin
color
customize
february 2012
jQuery Toggle Widget By Example
february 2012
Lots of people learn better by example, than by lecture. Here is a heavily commented piece of widget code that can get you headed in the right direction. Think of this post as the homework worksheet that goes with my post from yesterday about jQuery widgets.
jquery
ui
example
code
documentation
widget
pattern
factory
february 2012
Scaling Your JavaScript Applications (Videos)
february 2012
Developers creating JavaScript applications these days usually use a combination of patterns like MVC/MV*, modules, widgets and plugins for their architecture.Whilst this works great for apps that are built at a smaller-scale, what happens when your project starts to grow?
In this talk, I present an effective set of design patterns for small, medium and large-scale JavaScript applications. You’ll learn how to separate concerns, keep your application logic decoupled, build modules that can exist on their own or be dropped into other projects and scale your applications to minimize any breakage in the user experience.
javascript
mvc
presentation
pattern
scaling
architecture
from instapaper
In this talk, I present an effective set of design patterns for small, medium and large-scale JavaScript applications. You’ll learn how to separate concerns, keep your application logic decoupled, build modules that can exist on their own or be dropped into other projects and scale your applications to minimize any breakage in the user experience.
february 2012
Dirpy - Internet DVR - YouTube to Mp3 Converter and YouTube Video Downloader
january 2012
New to Dirpy? Dirpy is an advanced DVR for your favorite online media. For example, use Dirpy to record your favorite YouTube videos to mp3s
youtube
video
mp3
converter
web
service
january 2012
douglascrockford/JSDev - GitHub
january 2012
JSDev is a filter that activates selected comments, making them executable. This makes it possible to put development, performance, and testing scaffolding into a source file. The scaffolding is removed by minification, but is activated by JSDev.
JavaScript is a difficult language to test with. Unit testing wants to pull each function out to be tested individually, but that extraction can break the amazing implicit structures that nesting can produce. We know how to use closure to obtain privacy, but some advocate the refusal of privacy to favor testability. That is a terrible tradeoff.
So I'm thinking that I want to insert some testing infrastructure directly into my program, delivering direct, explicit access to the private material. But I don't want to have to strip that stuff out when we go into production.
So I want to code that stuff as tagged comments (similar to the /*jslint*/ comments) and have a tool that converts the comments into executable forms automatically at development time. At production time, JSMin removes them along with the other fluff.
The program that does this is a companion to JSMin called JSDev. You give it a list of the tags you want activated. It reads stdin, looking for those tags, and produces on stdout the activated development-mode program.
javascript
testing
comment
parser
JavaScript is a difficult language to test with. Unit testing wants to pull each function out to be tested individually, but that extraction can break the amazing implicit structures that nesting can produce. We know how to use closure to obtain privacy, but some advocate the refusal of privacy to favor testability. That is a terrible tradeoff.
So I'm thinking that I want to insert some testing infrastructure directly into my program, delivering direct, explicit access to the private material. But I don't want to have to strip that stuff out when we go into production.
So I want to code that stuff as tagged comments (similar to the /*jslint*/ comments) and have a tool that converts the comments into executable forms automatically at development time. At production time, JSMin removes them along with the other fluff.
The program that does this is a companion to JSMin called JSDev. You give it a list of the tags you want activated. It reads stdin, looking for those tags, and produces on stdout the activated development-mode program.
january 2012
tomtom/tmru_vim - GitHub
january 2012
Vim plugin that provides a simple most recently files facility.
vim
plugin
mru
file
navigation
january 2012
SenchaCon 2011 on Vimeo
january 2012
Collection of videos from SenchaCon 2011. SenchaCon, the official conference for the Sencha community, took place October 23-26 in Austin, Texas, USA.
javascript
SenchaCon
senchatouch
sencha
video
collection
january 2012
MDK : Quicklook for markdown
january 2012
Quicklook plugin to preview rendered Markdown text.
markdown
osx
quicklook
plugin
january 2012
JavaScript pattern and antipattern collection
january 2012
A JavaScript pattern and antipattern code collection that covers function patterns, jQuery patterns, design patterns, general patterns, literals and constructor patterns (upcoming), object creation patterns (upcoming), code reuse patterns (upcoming), DOM and browser patterns (upcoming).
javascript
pattern
library
collection
january 2012
showell/CoffeeScriptLineMatcher - GitHub
january 2012
This project lets you see CS and JS code side by side, with lines matched up.
javascript
coffeescript
debugging
tool
linematcher
january 2012
ClojureScript One Guide
january 2012
ClojureScript One shows you how to use ClojureScript to build single-page, single-language applications in a productive, effective and fun way.
clojure
ClojureScript
guide
programming
tutorial
january 2012
Some Thoughts on Classes After 18 Months of Clojure on Vimeo
january 2012
Brian Marick talks about the different strengths of functional and object-oriented programming and why our reading culture affects the way we prefer to write down chains of functionality. He also gives advice how to make a class system more flexible without loosing its documentation character.
clojure
ruby
video
presentation
talk
january 2012
Machine Learning Lecture Notes by Andrew Ng
december 2011
Don't let the "notes" part fool you... this is really a free mini e-book on Machine Learning. :) The notes are more mathematically heavy, IMO, than many of the previous books I've mentioned. However, since math is really at the heart of Machine Learning you have to learn it sometime and these notes provide a nice concise introduction.
stanford
machine
learning
mathematics
book
december 2011
dochub | Instant Documentation Search
december 2011
Better styled and more usable version of Mozilla Developer Network’s CSS, HTML, JavaScript, and DOM documentation.
css
html
html5
javascript
dom
reference
documentation
december 2011
Multi-Firefox Fixer: Run multiple versions of Firefox simultaneously! (note: doesn't work on Windows) — Gist
december 2011
Multi-Firefox Fixer: Run multiple versions of Firefox simultaneously! (note: doesn't work on Windows).
firefox
script
multiple
profile
version
development
bash
december 2011
CodeKit — THE Mac App For Web Developers
december 2011
"CodeKit automatically compiles Less, Sass, Stylus & CoffeeScript. It effortlessly combines, minifies & errorchecks js"
mac
sass
css
javascript
coffeescript
app
watch
compile
from twitter_favs
december 2011
kriskowal/es5-shim - GitHub
december 2011
ECMAScript 5 compatibility shims for legacy JavaScript engines. Provides compatibility shims so that legacy JavaScript engines behave as closely as possible to ES5.
This package requires quite a bit more attention and testing. It is not likely to behave as advertised in a large cross-section of browsers.
"As closely as possible to ES5" is not very close. Many of these shims are intended only to allow code to be written to ES5 without causing run-time errors in older engines. In many cases, this means that these shims cause many ES5 methods to silently fail. Decide carefully whether this is what you want.
javascript
ECMAScript5
compatibilty
library
This package requires quite a bit more attention and testing. It is not likely to behave as advertised in a large cross-section of browsers.
"As closely as possible to ES5" is not very close. Many of these shims are intended only to allow code to be written to ES5 without causing run-time errors in older engines. In many cases, this means that these shims cause many ES5 methods to silently fail. Decide carefully whether this is what you want.
december 2011
Mailgun: Programmable Email Servers and Mailbox API
november 2011
Real Email Servers for your App. Send, track and analyze. Receive, parse and store. Using Mailgun APIs.
api
email
mail
web
service
push
november 2011
MockSMTP.app
november 2011
MockSMTP is a native Mac application that embeds its own SMTP server. It also features an e-mail client browser, enabling instant viewing of both raw content and HTML rendering, so you can see how your mail looks when delivered.
Configuration couldn't be simpler: just run the application and everything's set up. You don't even need an internet connection for it to work!
mac
email
osx
testing
smtp
server
Configuration couldn't be simpler: just run the application and everything's set up. You don't even need an internet connection for it to work!
november 2011
Codersdojo
november 2011
Codersdojo is a webapplication where you can perform code katas.
CodersDojo provides two ways to perform a code kata:
1. With the CodersDojo WebClient the kata can be performed in directly in the web (using Ruby as the programming language). Watch the screencast or read the tutorial.
2. With the CodersDojo Command Line Client the kata can be performed on the local PC using the programming language and IDE of your choice. Watch the screencast.
After performing the kata it can be evaluated by the author and reviewed by others. See some example katas in CodersDojo.
programming
learning
tdd
testing
dojo
CodersDojo provides two ways to perform a code kata:
1. With the CodersDojo WebClient the kata can be performed in directly in the web (using Ruby as the programming language). Watch the screencast or read the tutorial.
2. With the CodersDojo Command Line Client the kata can be performed on the local PC using the programming language and IDE of your choice. Watch the screencast.
After performing the kata it can be evaluated by the author and reviewed by others. See some example katas in CodersDojo.
november 2011
Byword • A Simple Text Editor for Mac
november 2011
Markdown editor for the Mac.
mac
osx
markdown
writing
editor
november 2011
xdissent/ievms - GitHub
november 2011
Complete and free VirtualBox images for testing IE7, IE8, IE9.
Microsoft provides virtual machine disk images to facilitate website testing in multiple versions of IE, regardless of the host operating system. Unfortunately, setting these virtual machines up without Microsoft's VirtualPC can be extremely difficult. The ievms scripts aim to facilitate that process using VirtualBox on Linux or OS X. With a single command, you can have IE7, IE8 and IE9 running in separate virtual machines.
ie
testing
virtualbox
ie9
virtualization
Microsoft provides virtual machine disk images to facilitate website testing in multiple versions of IE, regardless of the host operating system. Unfortunately, setting these virtual machines up without Microsoft's VirtualPC can be extremely difficult. The ievms scripts aim to facilitate that process using VirtualBox on Linux or OS X. With a single command, you can have IE7, IE8 and IE9 running in separate virtual machines.
november 2011
The Little Book on CoffeeScript
november 2011
This book is designed to help you learn CoffeeScript, understand best practices and start building awesome client side applications. The book is little, only five chapters, but that's rather apt as CoffeeScript is a little language too.
This book is completely open source, and was written by Alex MacCaw (or @maccman) with great contributions from David Griffiths, Satoshi Murakami, and Jeremy Ashkenas.
coffeescript
javascript
book
documentation
from instapaper
This book is completely open source, and was written by Alex MacCaw (or @maccman) with great contributions from David Griffiths, Satoshi Murakami, and Jeremy Ashkenas.
november 2011
schacon/showoff - GitHub
november 2011
ShowOff is a Sinatra web app that reads simple configuration files for a presentation. It is sort of like a Keynote web app engine - think S5 + Slidedown.
github
presentation
ruby
keynote
alternative
html
s5
november 2011
gurgeous/teleport - GitHub
november 2011
Teleport is a lightweight way to set up Ubuntu machines. The name derives from the mechanism that teleport uses to setup the target machine - it copies itself onto the target machine via ssh and then runs itself there. In effect, it "teleports" to the target. This design makes it possible for teleport to bootstrap itself onto a fresh machine. There's no need to install ruby or anything else by hand.
Teleport strives to be idempotent - you can run it repeatedly without changing the result. In other words, as you build up your teleport config file you can generally run it over and over again without fear of breaking the target machine.
Teleport is great for managing a small number of hosted machines, either dedicated or in the cloud. Due to it's opinionated nature and limited scope you may find that it works better for you than other, more complicated tools.
At the moment Teleport supports Ubuntu 10.04/10.10/11.04 with Ruby 1.8.7, 1.9.2, 1.9.3, or REE.
ruby
gem
server
provisioniung
chef
alternative
ubuntu
Teleport strives to be idempotent - you can run it repeatedly without changing the result. In other words, as you build up your teleport config file you can generally run it over and over again without fear of breaking the target machine.
Teleport is great for managing a small number of hosted machines, either dedicated or in the cloud. Due to it's opinionated nature and limited scope you may find that it works better for you than other, more complicated tools.
At the moment Teleport supports Ubuntu 10.04/10.10/11.04 with Ruby 1.8.7, 1.9.2, 1.9.3, or REE.
november 2011
Simple Hickey
october 2011
Robert Martin’s discussion of Rich Hickey’s talk “Simple Made Easy”.
simplicity
easiness
comparison
article
tdd
testing
discussion
craftsmanship
from instapaper
october 2011
Rich Hickey: Simple Made Easy
october 2011
Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.
Talk from the Strange Loop Conference 2011.
software
development
complexity
management
architecture
simplicity
talk
strangeloop2011
easiness
comparison
tdd
testing
craftsmanship
from instapaper
Talk from the Strange Loop Conference 2011.
october 2011
Ryan Dy: Ruby/JavaScript and the mobile web
october 2011
Talk from Golden Gate Ruby Conference 2011.
Demand for richer, more interactive mobile web applications requires tools and frameworks that are as intuitive and simple to use as Rails. These new applications are built with JavaScript but still require server backends. While there are many new JavaScript frameworks, only a few are suited to mobile web applications, and integrating them can be challenging. Development on iOS or Android may leverage Objective-C or Java code to take advantage of features on these native platforms. Ruby is an excellent tool for quickly building this new generation of applications: either as a JSON translation service between a client application and database, or as a stateful web service using websockets. Ruby complements these emerging technologies well, letting you rapidly mock up, develop, and deploy modern applications.
The purpose of this talk is to illustrate how these new technologies and frameworks can be combined to make interactive applications, focusing on mobile devices. In JavaScript, I will illustrate how to use Backbone.js and Persistence.js to build a client that communicates with a rails backend without a persistent Internet connection. In Ruby, I will focus on how to take advantage of caching techniques to make mobile clients interact better with server-side APIs. I will also discuss how to integrate JavaScript on native platforms to take advantage of iOS or Android features that are not available in the Webkit browser. Lastly, I'll discuss how WebSockets and WebGL can be used to take interaction to the next level.
gogaruco2011
talk
ruby
mobile
javascript
from twitter_favs
Demand for richer, more interactive mobile web applications requires tools and frameworks that are as intuitive and simple to use as Rails. These new applications are built with JavaScript but still require server backends. While there are many new JavaScript frameworks, only a few are suited to mobile web applications, and integrating them can be challenging. Development on iOS or Android may leverage Objective-C or Java code to take advantage of features on these native platforms. Ruby is an excellent tool for quickly building this new generation of applications: either as a JSON translation service between a client application and database, or as a stateful web service using websockets. Ruby complements these emerging technologies well, letting you rapidly mock up, develop, and deploy modern applications.
The purpose of this talk is to illustrate how these new technologies and frameworks can be combined to make interactive applications, focusing on mobile devices. In JavaScript, I will illustrate how to use Backbone.js and Persistence.js to build a client that communicates with a rails backend without a persistent Internet connection. In Ruby, I will focus on how to take advantage of caching techniques to make mobile clients interact better with server-side APIs. I will also discuss how to integrate JavaScript on native platforms to take advantage of iOS or Android features that are not available in the Webkit browser. Lastly, I'll discuss how WebSockets and WebGL can be used to take interaction to the next level.
october 2011
Linux Network Administrator's Guide, 2nd Edition
october 2011
Open book by O’Reilly.
linux
networking
guide
book
october 2011
Mock Roles, not Objects
october 2011
Mock Objects is an extension to Test-Driven Development that supports good Object-Oriented design by guiding the discovery of a coherent system of types within a code base. It turns out to be less interesting as a technique for isolating tests from third-party libraries than is widely thought. This paper describes the process of using Mock Objects with an extended example and reports best and worst practices gained from experience of applying the process. It also introduces jMock, a Java framework that embodies our collective experience.
Paper by Steve Freeman, Nat Pryce, Tim Mackinnon, Joe Walnes of ThoughtWorks UK.
paper
tdd
bdd
testing
mock
oop
Paper by Steve Freeman, Nat Pryce, Tim Mackinnon, Joe Walnes of ThoughtWorks UK.
october 2011
bbatsov/ruby-style-guide - GitHub
october 2011
This Ruby style guide recommends best practices so that real-world Ruby programmers can write code that can be maintained by other real-world Ruby programmers.
ruby
styleguide
style
october 2011
jcasimir/draper - GitHub
october 2011
This gem makes it easy to apply the decorator pattern to domain models in a Rails application.
ruby
rails
plugin
decorator
pattern
helper
alternative
view
october 2011
HashtagPedia - Homepage
october 2011
HashtagPedia helps you to find the meaning of hashtags (What is a hashtag?) used by many Twitter users. Anytime you see a unfamiliar hashtag in a tweet we are here to help you out.
hashtag
twitter
explanation
directory
october 2011
2010
2011
@font-face
aggregator
agile
ajax
algorithm
alternative
animation
apache
api
app
apple
application
architecture
art
article
audio
autocomplete
automation
background
bdd
berlin
bestpractice
blog
book
bookmarklet
broadcast
browser
browserspecific
bug
bundle
bundler
button
canvas
charting
cheatsheet
clojure
closures
cms
cocoa
code
coffeescript
collaboration
collection
color
commandline
communication
comparison
compass
compile
compressor
computer-science
conditionalcomments
conference
configuration
converter
cross-browser
cross-site
css
css3
culture
data
database
datamining
debugging
demo
dependency
design
desktop
detection
development
diplomarbeit
discussion
documentation
dom
dsl
dynamic
editor
effect
element
emacs
email
embed
event-scripting
example
explanation
extension
file
film
firebug
firefox
fix
flash
floating
font
form
formatting
forum
framework
free
fun
gallery
gem
generator
git
github
google
graphics
grid
guide
hack
help
helper
highlighting
hint
hosting
howto
html
html5
icon
ie
ie6
image
inspiration
integration
interface
iphone
jasmine
java
javascript
jquery
jsconf
json
keyboard
language
layout
learning
library
lightbox
link
linux
list
loader
loading
locationbased
mac
mail
management
maps
markdown
markup
mathematics
mobile
movies
mozilla
multiple
multitouch
music
mvc
mysql
myth
node.js
notifier
online
oop
opensource
optimization
organization
osx
overlay
overview
paper
password
pattern
pdf
performance
photoshop
php
plugin
png
portal
portland
presentation
preview
productivity
profeature
programming
project
prototype
python
rails
recording
reference
resource
rest
rspec
rss
ruby
rubygem
safari
sass
screencast
screenshot
script
search
searchengine
security
select
selector
seo
server
service
sharing
shell
shortcut
slideshow
social
software
sprite
sql
standards
strategy
support
svg
syntax
table
tagging
talk
tdd
template
terminal
testing
textmate
tip
tips
tool
toolkit
transparency
trick
tutorial
twitter
typography
ui
unix
unobstrusive
usability
userexperience
version
versioncontrolling
versioning
vertical
video
vim
visualization
web
web2.0
webapp
webdev
webkit
website
widget
wiki
windows
xml