MicroGems: five minute RubyGems - Jeff Kreeftmeijer
The great thing about Gists is that they’re full Git repositories in disguise, so I can just clone my library, work on it and push a new “release” without having to fiddle around in Gist’s web interface.

https://gist.github.com/1232884
ruby  github  gists 
9 days ago
Help! My Stylesheets are a Mess! // Speaker Deck
This talk covers the architecture and process we use @ caring.com to manage our stylesheets and front-end design.
sass  css 
27 days ago
AliceJS Demos
AliceJS - (A Lightweight Independent CSS Engine) is a micro JavaScript library focused on using hardware-accelerated capabilities (in particular CSS3 features) in modern browsers for generating high-quality, high-end visual effects.
javascript  animation 
28 days ago
Memory Management - MDN
Low-level languages, like C, have low-level memory management primitives like malloc() and free(). On the other hand, JavaScript values are allocated when things (objects, strings, etc.) are created and "automatically" free'd when they are not used anymore. The latter process is called garbage collection. This "automatically" is a source of confusion and gives JavaScript (and high-level languages) developers the impression they can decide not to care about memory management. This is a mistake.
javascript  memory  performance 
4 weeks ago
requestAnimationFrame | CreativeJS
The smoothness of your animation depends on the frame rate of your animation. Frame rate is measured in frames per second (fps). Film usually runs at 24fps, video at 30fps. The higher this number is, the smoother your animation will look…to a point. More frames, means more processing, which can often cause stuttering and skipping. This is what is meant by the term dropping frames. Because most screens have a refresh rate of 60Hz, the fastest frame rate you should aim for is 60fps. Time for some math!
javascript  animation 
4 weeks ago
Chrome Developer Tools: Heap Profiling - Chrome Developer Tools — Google Developers
This tutorial explains how to use the Heap Profiler for uncovering memory leaks in your applications.
javascript  memory  chrome  performance 
5 weeks ago
Fastersite: Optimizing with the timeline panel
"I know I should look at Chrome's Timeline panel, but what do I do with it?"
chrome  javascript  performance 
5 weeks ago
The 10 Most Underused ActiveRecord::Relation Methods - Mitch Crowe
Knee-deep in ActiveRecord::Relation code yesterday, I was reminded of some interesting nuggets that I’ve seen used far too rarely. Here, I’ve gathered my top ten most underused relation methods from that list for your reading delight.
rails  ruby  tips 
5 weeks ago
Developing Solaris (Community Group on.dev_solaris) - XWiki
 So you're new to Sun, or you're new to Solaris. Maybe you have lots of experience developing mission-critical software, maybe you have none. But if you haven't already figured it out, we take quality very seriously around here. Developing Solaris is very hard, and it's very important. This is good news, not bad news -- solving easy problems is boring and solving irrelevant problems is, well, irrelevant. But you should be prepared that you will need to push yourself to deliver highest quality software.
development  programming  codequality 
6 weeks ago
Socialite.js
Socialite provides a very easy way to implement and activate a plethora of social sharing buttons — any time you wish. On document load, on article hover, on any event!

If you're selling your soul, you may as well do it asynchronously. Socialite won't cause document rendering to hang while waiting for 500kb of social media.
javascript 
6 weeks ago
An Ajax-Include Pattern for Modular Content | Filament Group, Inc., Boston, MA
While developing the front-end of the BostonGlobe.com site last fall, one of the toughest challenges we faced was delivering roughly the same content to all devices (and connection speeds) while ensuring the most important content on a page was usable as soon as possible. We approached this challenge with a variety of techniques, such as only loading the most essential JavaScript up-front (weighing roughly 4-6kb tops) and lazy loading the rest, dynamically injecting advertisements, and loading "nice-to-have" content via JavaScript—all after the initial content was delivered and usable.
responsive  javascript 
7 weeks ago
Touch · bebraw/jswiki Wiki
Javascript libraries for dealing with touch events, multitouch, normalizing across the Webkit/IE touch models, and all that jazz.
javascript  touch 
7 weeks ago
adamdbradley/foresight.js
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 is 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. — Read more
javascript  responsive 
8 weeks ago
Startups, This Is How Design Works – by Wells Riley
Companies like Apple are making design impossible for startups to ignore. Startups like Path, Airbnb, Square, and Massive Health have design at the core of their business, and they're doing phenomenal work. But what is ‘design’ actually? Is it a logo? A Wordpress theme? An innovative UI?
design  inspiration 
8 weeks ago
» The EMs have it: Proportional Media Queries FTW! Cloud Four Blog
Font units aren’t pixels or points anymore, they’re percentages (typically for top-level baseline reset) or, more often, ems. And yet the vast majority of us still write width-based media queries in pixels
responsive  ems  css  media-queries 
8 weeks ago
The UX of Language - Alex Sexton
Shortly after releasing Jed, I released messageformat.js. It’s a much less sexy name, but perhaps I’ll fix that soon.
javascript  internationalization 
9 weeks ago
JavaScript’s two zeros
JavaScript has two zeros: −0 and +0. This post explains why that is and where it matters in practice.
javascript 
9 weeks ago
Gazler/githug
Githug is designed to give you a practical way of learning git. It has a series of levels, each utilizing git commands to ensure a correct answer.
github  learning  git 
9 weeks ago
Content Folding | CSS-Tricks
There's probably a number of ways to do this. With JavaScript, you could measure the window width and shuffle things around in the DOM. That seems heavy to me, but the browser support would be good. I'd rather lean on CSS for this kind of thing. That's what CSS is (supposed to be) for. The grid layout may hold some possibilities for us, but for this tutorial, let's use the hot-off-the-presses CSS Regions, a contribution by Adobe.
css  responsive  cssregions 
9 weeks ago
About HTML semantics and front-end architecture – Nicolas Gallagher
A collection of thoughts, experiences, ideas that I like, and ideas that I have been experimenting with over the last year. It covers HTML semantics, components and approaches to front-end architecture, class naming patterns, and HTTP compression.
css  bestpractices 
9 weeks ago
“Boring Things First” by John Barnette
Yeah, yeah. You’re agile. You always test first, you work in tight iterations, you have YAGNI tattooed on your forehead. Good for you. Guess what? You’re building on sand. Do this stuff first:
development  bestpractices 
9 weeks ago
Image Sequences: Let Me Count The Ways « Thomas Reynolds
Enter the Image Sequence. An Image Sequence is exactly what it sounds like, a series of images, each representing a single frame of an animation. Usually these will be exported from a high-level application like Adobe After Effects. For memory and performance reasons, these images are usually combined into a single Sprite Sheet. You may have heard of this technique, because we've been using it for decades.
css  animation 
10 weeks ago
A fresh look at JavaScript Mixins « JavaScript, JavaScript…
In this article I’ll explore JavaScript mixins in detail, and introduce a less conventional, but to my mind more natural mixin strategy that I hope you’ll find useful.
javascript  mixins 
10 weeks ago
CSS px is an Angular Measurement
The “px” unit in CSS doesn't really have anything to do with screen pixels, despite the poorly chosen name. It's actually an non-linear angular measurement. The formulæ to convert between radians and px are as follows:
css  measurement  units  pixels 
11 weeks ago
Introduction · Intro to CSS 3D transforms › Docs
Like a beautiful jewel, 3D transform can be dazzling, a true spectacle to behold. But before we start tacking 3D diamonds and rubies to our compositions like Liberace’s tailor, we owe it to our users to ask what can they benefit from this awesome feature.
css3 
11 weeks ago
On coding defensively
When writing code that will be used by others (and we do that 100% of the time, even if the other user is ourselves in a few weeks time), there’s a tricky balance to strike between being generous to the users of our code, and ensuring that they get the information they want to ensure they’re calling our code correctly. There are two coding maxims: “Be generous on input, and strict on output”, and “fail fast”, which we need to hold in tension. This post explores the trade-offs between the two.
programming  bestpractices  ruby 
11 weeks ago
Responsive News - Cutting the mustard
One of the immediate challenges we discovered when we first started the responsive news prototype was the large range of devices that we would have to support. It terrified us. This article is about a solution we use to alleviate this problem.
responsive  javascript  bbc 
11 weeks ago
The Psychologist’s View of UX Design | UX Magazine
I'm a psychologist by training and education. So the part of the elephant I experience applies what we know about people and how we apply that to UX design. I take research and knowledge about the brain, the visual system, memory, and motivation and extrapolate UX design principles from that.
ux  psychology 
12 weeks ago
How I built the Hacker News mobile web app - cheeaunblog
Last month, I tweeted about one of my recent projects, the Hacker News mobile web app. It's a simple little app to read Hacker News' stories and comments in Mobile Safari. It started out as an experiment for me to try one of the new CSS extensions introduced in Mobile Safari in iOS5, -webkit-overflow-scrolling: touch which uses native-style scrolling in an overflow: scroll element.
mobile  html5 
12 weeks ago
Animate.css - a bunch of plug-and-play CSS animations
animate.css is a bunch of cool, fun, and cross-browser animations for you to use in your projects. Great for emphasis, home pages, sliders, and general just-add-water-awesomeness.
animation  css  css3 
march 2012
4 awesome slides showing how page speed correlates to business metrics at Walmart.com
File this presentation under “I wish I’d been there in person.” Cliff Crocker, Aaron Kulick, and Balaji Ram joined forces at February’s SF Web Performance Meetup to tell a RUM (real user monitoring) story through the lens of three job functions at Walmart.com: the performance data analyst, the developer, and the business analyst.
performance  metrics 
february 2012
Why French Parents Are Superior
It’s not link bait, but the title itself is misleading. I’d suggest that the author has some good observations, but her conclusions are a bit off. It’s not that French parents are better than their American (or Canadian — I’ll lump the US and Canada together here, as our cultures are so similar) counterparts. Not all anyways. France probably has some great parents. So does Germany, South Africa, and Papa New Guinea. As does the US.
parenting 
february 2012
What Happens to the Coke in Coca-Cola? - Business - GOOD
In fact, the United States (and most other nations) expressly prohibits the sale and trade of coca leaves. In order for Coca-Cola to continue to exist in its current form, the company has a special arrangement with the Drug Enforcement Administration, allowing it to import dried coca leaves from Peru (and to a lesser degree, from Bolivia) in huge quantities.
food  coke 
february 2012
Coding Horror: Should All Web Traffic Be Encrypted?
The prevalence of free, open WiFi has made it rather easy for a WiFi eavesdropper to steal your identity cookie for the websites you visit while you're connected to that WiFi access point. This is something I talked about in Breaking the Web's Cookie Jar. It's difficult to fix without making major changes to the web's infrastructure.
ssl  https  security 
february 2012
Cocktail 101: What Is the Difference Between Single Malt and Blended Whisky? | Serious Eats: Drinks
Next week in this space, I'll be looking in some depth at the world of Scotch whisky, but first, I want to clarify a point of some confusion: the distinction between single malt and blended whisky.
alcohol  whiskey  adultbeverages 
february 2012
Eternal Copyright: a modest proposal – Telegraph Blogs
Yet now, as we've instituted decade-long jail terms and unlimited fines for copyright infringers, it's time to take the next step in extending copyright terms even further.
satire  humor  law 
february 2012
McSweeney’s Internet Tendency: Monologue: An Abstinence Coach Struggles with Analogy.
So let’s talk about virginity. Virginity is fine. There’s absolutely nothing wrong with virginity. Virginity is just something you haven’t done yet, and there are a lot of things we never get to do, right?
humor  mcsweeneys 
february 2012
ImageAlpha — lossy compression for 24-bit PNG images
ImageAlpha converts 24-bit PNG to paletted 8-bit with full alpha channel. This greately reduces file sizes with only minor loss of quality. Such images are compatible with all browsers, and even degrade well in IE6.
png  development  software  mac 
february 2012
Dave Herman: The Future of JavaScript - YouTube
Mozilla Labs engineer and TC39 representative Dave Herman joined us at YUIConf 2011 to give this keynote talk on the future of JavaScript, covering many of the new features currently under consideration for ES6, the next edition of the ECMAScript standard.
javascript  video 
february 2012
On naming - Quietly amused by the world
The software we write is divided into parts: modules, classes, functions, variables. As we write each part, we must name it. This article takes concepts from linguistics, in particular from first and second language learning, and relates them to our everyday use of language in code.
programming  code 
february 2012
the Performance Golden Rule | High Performance Web Sites
80-90% of the end-user response time is spent on the frontend.
performance  speed 
february 2012
HTML5 Rocks - How Browsers Work: Behind the scenes of modern web browsers
As a web developer, learning the internals of browser operations helps you make better decisions and know the justifications behind development best practices. While this is a rather lengthy document, we recommend you spend some time digging in; we guarantee you'll be glad you did.
html5  browsers 
february 2012
PragDave: Smart constants
But it occurred to me that we could use Ruby's singleton methods to give AIR and WATER a little smarts:
ruby 
february 2012
Misdirection | Infrequently Noted
As the over-heated CSS vendor prefix debate rages, I can’t help but note the mounting pile of logical fallacies and downright poor reasoning being deployed. Some context is in order.
css  w3c 
february 2012
Easily Test jQuery Pre-Release Versions - Bocoup
It’s always exciting when a new major jQuery version (x.x.0) full of bug fixes, new features and performance improvements is released. But that fresh, out of the box excitement can get replaced with anxiety if you find bugs or performance issues with the latest version. This post will cover a way to include jQuery while provide a way to test pre-release versions of jQuery.
javascript  jquery 
february 2012
SSH tricks
This article covers less common SSH use cases, such as:

using passwordless, key-based login;
setting up local per-host configurations;
exporting a local service through a firewall;
accessing a remote service through a firewall;
executing commands remotely from scripts;
transfering files to/from remote machines;
mounting a filesystem through SSH; and
triggering admin scripts from a phone.
ssh  unix 
february 2012
Understanding “Prototypes” in JavaScript « Katz Got Your Tongue?
In essence, a JavaScript “class” is just a Function object that serves as a constructor plus an attached prototype object. I mentioned before that earlier versions of JavaScript did not have Object.create. Since it is so useful, people often created something like it using the new operator:
javascript  prototype 
january 2012
Letters of Note: To My Old Master
In August of 1865, a Colonel P.H. Anderson of Big Spring, Tennessee, wrote to his former slave, Jourdan Anderson, and requested that he come back to work on his farm. Jourdan — who, since being emancipated, had moved to Ohio, found paid work, and was now supporting his family — responded spectacularly by way of the letter seen below (a letter which, according to newspapers at the time, he dictated).
justice  slavery 
january 2012
Server-Sent Events | HTML5 Doctor
We’ve already had a glimpse at Server-Sent Events (also known as EventSource†, and I’ll switch between the two to keep you on your toes) in my Methods of Communication article from last year. In this article, I want to delve in to more detail about the SSE API, demonstrate its features, and even show you how to polyfill browsers that lack EventSource support.
javascript 
january 2012
2012 Annual Letter From Bill Gates | Bill & Melinda Gates Foundation
hroughout my careers in software and philanthropy—and in each of my annual letters—a recurring theme has been that innovation is the key to improving the world. When innovators work on urgent problems and deliver solutions to people in need, the results can be magical.
poverty  future 
january 2012
The Five Stages of Hosting (Pinboard Blog)
As a proud VPS survivor, I thought it might be fun to write up five common options for hosting a web business, ranked in decreasing order of 'cloudiness'. People who aren't interested in this kind of minutia would be wise to pull the rip cord right here.
hosting 
january 2012
Cars Kill Cities « Progressive Transit
Cars do not belong in cities.  A standard American sedan can comfortably hold 4+ adults w/ luggage, can travel in excess of 100 miles per hour, and can travel 300+ miles at a time without stopping to refuel.  These are all great things if you are traveling long distances between cities.  If you are going by yourself to pickup your dry cleaning, then cars are insanely over-engineered for the task.  It’s like hammering in a nail with a diesel-powered pile driver.   To achieve all these feats (high capacity, high speed, and long range driving), cars must be large and powered by fossil fuels.  So when you get a few hundred (or thousand) cars squeezed onto narrow city streets, you are left with snarled traffic and stifling smog.
cities  urban-planning  cars 
january 2012
BenjaminKeen.com
This was inspired by, and based on @lensco's excellent Simple Responsive Design Test Page. It lets you view any webpage in multiple screen sizes, simulating the viewport of different devices. After getting such a positive response to my original post, I thought I'd expand on it a little. Since people are obviously targeting different device screen sizes with their projects, the form below now lets you generate a custom bookmarklet that displays only those device sizes you're interested in.
responsive  webdesign  css 
january 2012
The Right Way to Code DCI in Ruby :: Mike Pack Development
Many articles found in the Ruby community largely oversimplify the use of DCI. These articles, including my own, highlight how DCI injects Roles into objects at runtime, the essence of the DCI architecture. Many posts regard DCI in the following way:
ruby  rails  dci 
january 2012
Dan Shapiro » Companies that would do best without venture capital
For someone who lives in the startup world, this looks pretty silly.  But I’m sure I’d say a lot of silly things if I were getting in to the taxi business, too.  So I figured I’d point him to a simple explanation of why taxi companies (actually, services companies in general) aren’t appropriate for VC.  I did the Google thing for a bit to find a good article.  And no luck.
startups  investing  business 
january 2012
Auto-detecting Credit Card Type - Web Standards Sherpa
Recently, I’ve come across several sites who have done away with the credit card type field. Both Amazon and GitHub don’t require you to select a credit card type in their form. As you fill in the credit card number, the user interface changes to show the type of credit card being used.
javascript  ux 
january 2012
Perfection kills » Profiling CSS for fun and profit. Optimization notes.
I’ve been recently working on optimizing performance of a so-called one-page web app. The application was highly dynamic, interactive, and was heavily stuffed with new CSS3 goodness. I’m not talking just border-radius and gradients. It was a full stack of shadows, gradients, transforms, sprinkled with transitions, smooth half-transparent colors, clever pseudo-element -based CSS tricks, and experimental CSS features.
css  performance 
january 2012
Multi-Safari
Safari normally uses the Web Kit framework found inside Mac OS X to render web pages and execute javascript. This means that if you preserve an old version of Safari to run it on a newer version of Mac OS, it will use the newer Web Kit found in the system and you will get the same results as with the newer version. Thus, you would normally need a separate installation of Mac OS X for each version of Safari you want to test a website into.
testing 
january 2012
Performance Calendar » Advice on Trusting Advice
But using SSL, just for the fun of it, is not a good idea. SSL impacts web performance negatively in several ways:
performance  ssl 
january 2012
A String is not an Error | Guillermo Rauch's Devthought
In both cases, passing a string instead of an error results in reduced interoperability between modules. It breaks contracts with APIs that might be performing instanceof Error checks, or that want to know more about the error.
javascript 
january 2012
URI.js - URLs in Javascript
URI.js is a javascript library for working with URLs. It offers a "jQuery-style" API (Fluent Interface, Method Chaining) to read and write all regular components and a number of convenience methods like .directory() and .authority().
javascript  urls 
january 2012
Focus on building 10x teams, not on hiring 10x developers « Avichal's Blog
There are a lot of posts out there about identifying and hiring 10x engineers. And a lot of discussion about whether or not these people even exist. At Spool, we’ve taken a very different approach. We focused on building a 10x team.
startups  management  hiring 
december 2011
JavaScript Semicolon Insertion
Even if you use semicolons at the end of every statement, some constructs parse in non-obvious ways. Regardless of your preferences in semicolon usage, you must know the rules to write JavaScript professionally. If you remember a few simple rules, all of which are explained here, you will be able to understand how any program you might encounter will be parsed, and will be an expert on JavaScript automatic semicolon insertion, or ASI.
javascript 
december 2011
selectors selectoring
This article is my attempt at explaining what is going on at a high-level when you do $(). The code samples below are largely simplified from the actual jQuery/Sizzle source. If you find any inaccuracies or a point you would like further clarified, please let me know on twitter! Thanks!
javascript  performance  jquery 
december 2011
oli.jp style guide ❧ Oli.jp (@boblet)
This is a personal style guide for oli.jp. I’m publishing it to share and for feedback, and also because I <strong>ly believe you should build a style guide for every site you make. Hopefully this one will give you a head start.
styleguide 
december 2011
Styleguide — Paul Robert Lloyd
This document is a guide to the mark-up styles used throughout the site.
styleguide 
december 2011
KeyboardJS Demo
KeyboardJS is a library for binding to keys or key combos. Its available as an AMD module or a global library.
javascript  plugin  keyboard 
december 2011
rwldrn/idiomatic.js - GitHub
The following list outlines the practices that I use in all code that I am the original author of; contributions to projects that I have created should follow these guidelines.
javascript  style  programming 
december 2011
The Fantastic and Inglourious Mr. Fox
A trailer for Wes Anderson's Fantastic Mr. Fox using dialogue from Quentin Tarantino's Inglourious Basterds.
video  film 
november 2011
Collection: Design Patterns
This collection captures findings of consistent, unique or interesting interfaces and design flows from across the web.
design  patterns  ui 
november 2011
« earlier      
37signals 3d 404 abtesting accents accessibility actions admin adultbeverages advent advice africa airlines airplay ajax alcohol alone amazon animation anywhere app apple application applications appstore architecture arminianism article audi automotive autosuggest average awesomeux back-button backbone background ballmer baseball bash baudrillard bbc beauty bestof bestpractices beta blogging bobulate bookcovers boost boring branding branson brevity british browsers bugs building buildings business buttons buy canvas caring cars celebrity chairs character characters charitywater cheatsheet cheatsheetcs children chile choices christianity christmas chrome church cities clarendon cliché closure clown code codeigniter codequality coke cold color colortheory comedy comicsans commandline comments commuting comparison complaint compression computing concept constructivism content contracts copying copywriting corporations creativity critics cron cronjob cronjobs crossdomain css css3 cssanimation cssregions cummings customer-service daniel datauri dataviz dci death debugger decoration delight demo democracy design design-patterns designhistory desktops details development devtools discipline discrimination div diversity dns documentary documentready dojo dropbox ebay ecommerce economics education email ems english examples excellence excuses exercise experience experiment expressionengine facebook facts failure faith fakesteve fallacies family fatherhood feminism film finances fitness fleurons flexbox floats fluid font-face font-pairing fonts fontstack food forms foursquare freedom freelancing freemium freezing friendship fun functions fundamentalism funding future galleries gallery gender geolocation gists git github gmail goodfriday google gowalla gradientmesh grammar graphs gripes grocery grooveshark groundhogday groupon gzip halftone happiness hashchange health healthcare hfj hiring homelessness homonym hospice hosting Housekeeping hover htaccess html html5 htmlemail http https humor hybrid icons ie ie6 illustator illustration illustrator image industrial-design inflation infographic informationdesign inspector inspiration interesting interface internationalization interviews introduction introvert investing ios iPad iphone iphone4 iphonedev javascript journalism jqtouch jquery js1k json justice keyboard kindness language laverslaw law laws leadership learning lessn lettering life lightbox linguistics links lists localstorage lock logic login logos love mac malice management manliness maps marketing master math mcsweeneys measurement media-queries meetings megachurches memory metaphor metrics microsoft middleeast midlife minecraft miners minimalism miracles mixins mobile mobiledesign modrewrite mootools motion motivation movies music nasa navigation neologisms nerdery netflix news newsletter newspaper newyorker nodejs nonprofit nonprofits nosql nostalgia npr nyt obama obesity obfuscation offensive oocss oop openid os packagejson packaging parenting passion passwords patents patterns pennies performance philosophy photography photoshop php piracy pixels plist plugin png podcast politics ponzi population pork portland posessions posters postmodernism poverty prediction predictions prefab presentation presentations pricing primes principles privacy problems process productivity products profanity professionalism programming pronunciation prototype psychology python questions quine quotes race racism rails ransom rdio reading realism reason recession redesign reflection regex relationships rendering resources responsive rest retirement retro returnfalse rmurphey ruby saddleback safari sass satire scheme science scrolling search section security selectors senses seo server seth-godin settings shipping shortcuts signage signal singapore sitting sketching slavery smashing-magazine snippets social-media social-network socializing sociology software solutions space spam spec-work speed spelling sports sprites ssh ssl stackoverflow standards standing startups statistics stock stories story strategy style styleguide success suicide suits survival sustainabiity swashes swipely symbols tabbar tabs tailoring target taxes tdd technology tennis terminal testing textures theology thesis thought thoughts time-travel timelapse tips touch traderjoes tufte tutorials twitter typekit typography ui units unix urban-planning urls usability usertesting ux validation vendor-prefixes versioning video videos vintage virgin virtue vocabulary w3c wallpapers walmart war warren-buffett washingtonpost watercolor webapp webdesign webfonts webkit WebStats whiskey wifi wikipedia wireframe women words work working worry writing xkcd xml youtube zimbabwe

Copy this bookmark:



description:


tags: