In his keynote at JVM Languages Summit 2009, Rich Hickey advocated for the reexamination of basic principles like state, identity, value, time, types, genericity, complexity, as they are used by OOP today, to be able to create the new constructs and languages to deal with the massive parallelism and concurrency of the future.
6/24/2014
Are We There Yet?
Are We There Yet?
6/17/2014
Merrick Christensen - JavaScript Dependency Injection
Merrick Christensen - JavaScript Dependency Injection
var WelcomeController = function (Greeter) {
document.write(Greeter.greet());
};
var Injector = {
dependencies: {},
process: function(target) {
console.log('target:', target)
var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m;
var text = target.toString();
console.log('target.toString():',text)
var args = text.match(FN_ARGS)[1].split(',');
console.log('args:', args);
console.log('this.getDependencies(args):', this.getDependencies(args));
target.apply(target, this.getDependencies(args));
},
getDependencies: function(arr) {
console.log('fn: getDependencies', arr);
var self = this;
return arr.map(function(value) {
return self.dependencies[value];
});
},
register: function(name, dependency) {
this.dependencies[name] = dependency;
console.log('fn:register', this.dependencies)
}
};
var RobotGreeter = {
greet: function() {
return 'Domo Arigato';
}
};
var OtherGreeter = {
greet: function() {
return 'That will do pig.';
}
};
// Randomly register a different greeter to show that WelcomeController is truly dynamic.
Injector.register('Greeter', Math.random() > 0.5 ? RobotGreeter : OtherGreeter);
Injector.process(WelcomeController);
6/16/2014
Project Parfait (Beta) from adobe
Project Parfait (Beta)
Extract everything you need from PSD comps - in your browser - PSD CSS Extraction, Measurements and Image Optimization Service for the WebAvocode – Preview and inspect PSDs
Get CSS, SVG, image assets, fonts, colors. All without Photoshop.
6/12/2014
dc.js - Dimensional Charting Javascript Library
dc.js - Dimensional Charting Javascript Library
dc.js is a javascript charting library with native crossfilter support and allowing highly efficient exploration on large multi-dimensional dataset (inspired by crossfilter's demo). It leverages d3 engine to render charts in css friendly svg format. Charts rendered using dc.js are naturally data driven and reactive therefore providing instant feedback on user's interaction. The main objective of this project is to provide an easy yet powerful javascript library which can be utilized to perform data visualization and analysis in browser as well as on mobile device.
6/10/2014
Card — make your credit card better in one line of code
6/09/2014
Engineering Culture at Airbnb - Airbnb Engineering
Engineering Culture at Airbnb - Airbnb Engineering
Engineers own their impact At the core our philosophy is this: engineers own their own impact. Each engineer is individually responsible for creating as much value for our users and for the company as possible. We hire primarily for problem-solving. When you have a team of strong problem-solvers, the most efficient way to move the company forward is to leave decision-making up to individual engineers. Our culture, tools, and processes all revolve around giving individual contributors accurate and timely information that they can use to make great decisions. This helps us iterate, experiment, and learn faster. Making this environment possible requires a few things. Engineers are involved in goal-setting, planning and brainstorming for all projects, and they have the freedom to select which projects they work on. They also have the flexibility to balance long and short term work, creating business impact while managing technical debt. Does this mean engineers just do whatever they want? No. They work to define and prioritize impactful work with the rest of their team including product managers, designers, data scientists and others. Just as importantly, engineers have transparent access to information. We default to information sharing. The more information engineers have, the more autonomously they can work. Everything is shared unless there’s an explicit reason not to (which is rare). That includes access to the analytics data warehouse, weekly project updates, CEO staff meeting notes, and a lot more. This environment can be scary, especially for new engineers. No one is going to tell you exactly how to have impact. That’s why one of our values is that helping others takes priority. In our team, no one is ever too busy to help. In particular, our new grad hires are paired with a team that can help them find leveraged problems. Whether it’s a technical question or a strategic one, engineers always prioritize helping each other first.
