Inferior colliculus - Wikipedia, the free encyclopedia: "The inferior colliculi of the midbrain are located just below the visual processing centers known as the superior colliculi. The inferior colliculus is the first place where vertically orienting data from the fusiform cells in the dorsal cochlear nucleus can finally synapse with horizontally orienting data. This homecoming of the aural dimensions puts these dual mesencephalic bumps in the position to fully integrate all the sound location data."
Friday, July 29, 2011
LevelDB: A Fast Persistent Key-Value Store - Google Open Source Blog
LevelDB: A Fast Persistent Key-Value Store - Google Open Source Blog: "LevelDB is a fast key-value storage engine written at Google that provides an ordered mapping from string keys to string values. We are pleased to announce that we are open sourcing LevelDB under a BSD-style license.
LevelDB is a C++ library that can be used in many contexts. For example, LevelDB may be used by a web browser to store a cache of recently accessed web pages, or by an operating system to store the list of installed packages and package dependencies, or by an application to store user preference settings. We designed LevelDB to also be useful as a building block for higher-level storage systems. Upcoming versions of the Chrome browser include an implementation of the IndexedDB HTML5 API that is built on top of LevelDB. Google's Bigtable manages millions of tablets where the contents of a particular tablet are represented by a precursor to LevelDB. The Riak distributed database has added support for using LevelDB for its per-node storage."
LevelDB is a C++ library that can be used in many contexts. For example, LevelDB may be used by a web browser to store a cache of recently accessed web pages, or by an operating system to store the list of installed packages and package dependencies, or by an application to store user preference settings. We designed LevelDB to also be useful as a building block for higher-level storage systems. Upcoming versions of the Chrome browser include an implementation of the IndexedDB HTML5 API that is built on top of LevelDB. Google's Bigtable manages millions of tablets where the contents of a particular tablet are represented by a precursor to LevelDB. The Riak distributed database has added support for using LevelDB for its per-node storage."
Sound Professionals Low Noise In-Ear Binaural Microphone - Beige and
Sound Professionals Low Noise In-Ear Binaural Microphone - Beige and: "Why put a microphone here you ask? Pretty simple, really. Even earbud Binaurals have the mic element outside the Pinna. Because everyone's Pinna is unique, a recording made in your own ears will sound the most realistic. These mics put the mic element right next to the ear canal, well within the Pinna. This results in the most realistic recording possible, from the perspective of the person wearing them. While recording, your hearing is not impaired, so you can enjoy the sound of the performance while making a very realistic recording. The cables terminate in a stereo 1/8' (3.5mm) gold-plated miniplug."
Shell.js: v0.1
Shell.js: v0.1: "Shell.js is a JavaScript shell around Dropbox.
The goal of this is to provide a script-able method to access
and modify files in the cloud anywhere, without having to install
anything.
Other than read/write on files, we also included primitive versions
of basic utilities like ls, cd, cat, grep, pipe (for simulating |), etc."
The goal of this is to provide a script-able method to access
and modify files in the cloud anywhere, without having to install
anything.
Other than read/write on files, we also included primitive versions
of basic utilities like ls, cd, cat, grep, pipe (for simulating |), etc."
Peter Geoghegan's blog: Could Clang displace GCC generally? Part II: Performance of PostgreSQL binaries
Peter Geoghegan's blog: Could Clang displace GCC generally? Part II: Performance of PostgreSQL binaries: "So, is it ready for prime-time? Well, not quite. Even my bleeding edge Fedora 15 system only comes with Clang 2.8, and only Clang 2.9 is listed as supported in 9.1. These build time figures are only obtainable on very recent revisions of Clang. While I’m extremely encouraged by our pgbench benchmark results, I hesitate to recommend the use of Clang for building production PostgreSQL binaries just yet. The benchmark is quite synthetic, and may not be a great proxy for general performance, although it certainly wasn’t cherry-picked. I encourage others to independently reproduce my work here, and to suggest alernative benchmarks.
I can heartily recommend Clang for hacking on PostgreSQL today. I was also impressed with how accessible the Clang developers are if you have a problem. Sometimes you have to be a bit persistent, but in general the Clang community are quite responsive to end-users concerns."
I can heartily recommend Clang for hacking on PostgreSQL today. I was also impressed with how accessible the Clang developers are if you have a problem. Sometimes you have to be a bit persistent, but in general the Clang community are quite responsive to end-users concerns."
Thursday, July 28, 2011
Intellectual Ventures And The War Over Software Patents : Planet Money : NPR
Intellectual Ventures And The War Over Software Patents : Planet Money : NPR: "'We're at a point in the state of intellectual property where existing patents probably cover every behavior that's happening on the Internet or our mobile phones today,' says Chris Sacca, the venture capitalist. '[T]he average Silicon Valley start-up or even medium sized company, no matter how truly innovative they are, I have no doubt that aspects of what they're doing violate patents right now. And that's what's fundamentally broken about this system right now.'"
Large-Scale Cucumber Revisited — Kurt Schrader's Blog
Large-Scale Cucumber Revisited — Kurt Schrader's Blog: "At Intent Media we’ve been using Cucumber for 2.5 years to drive a large portion of our testing (on top of RSpec and JUnit). We’re finally getting around to upgrading to the newest version (from version 0.4.4, which is, to put it lightly, a bit rusty), so I’m going to throw out some anecdotes about our experiences using it, which will hopefully help others avoid some of the problems we’ve had."
Method of Action - You're already a pretty good designer
Method of Action - You're already a pretty good designer: "You are already a pretty good designer
If you have been programming for a number of years, you probably have very good design and architectural coding skills. These skills are connected to visual design at a high level of abstraction. The connections are so strong you can face off two masters of their own field and it will make sense to senior designers and programmers alike. In fact, I'm going to face Edsger Dijkstra against Charles Eames ."
If you have been programming for a number of years, you probably have very good design and architectural coding skills. These skills are connected to visual design at a high level of abstraction. The connections are so strong you can face off two masters of their own field and it will make sense to senior designers and programmers alike. In fact, I'm going to face Edsger Dijkstra against Charles Eames ."
Wednesday, July 27, 2011
Skilldrick » Easy functional programming in JavaScript with Underscore.js — part 1
Skilldrick » Easy functional programming in JavaScript with Underscore.js — part 1: "Functional programming (FP) is all about the idea of functions as a mapping from one value to another. An FP function just turns one value into another – it doesn’t have side effects. Side effects are anything that happens within the function that changes something outside of the function. For example, changing the value of a variable not defined in the function, or logging output, or showing an alert message … basically anything that happens in the function. The only thing an FP function does is takes in a value, and returns a new value.
Another interesting thing about FP is the use of higher-order functions. These are functions that either take or return functions as values (or both). I’m mainly going to be looking at functions that take other functions as parameters, because there are some interesting things you can do with that."
Another interesting thing about FP is the use of higher-order functions. These are functions that either take or return functions as values (or both). I’m mainly going to be looking at functions that take other functions as parameters, because there are some interesting things you can do with that."
Skilldrick » Easy functional programming in JavaScript with Underscore.js — part 1
Skilldrick » Easy functional programming in JavaScript with Underscore.js — part 1: "Mapping over an array
One of the most widely used Underscore functions is _.map. This takes an array and a transforming function, and creates a new array based on the return value of the transforming function. That’s a bit abstract so I’ll give you an example:
So, _.map is passed an array, and a function. That function is called on each element of the array in turn, and the return value of the function gives the corresponding element in the new array. Note that the original array is left intact. The _.map function takes an array, and returns another array – it’s a mapping from one value to another."
One of the most widely used Underscore functions is _.map. This takes an array and a transforming function, and creates a new array based on the return value of the transforming function. That’s a bit abstract so I’ll give you an example:
So, _.map is passed an array, and a function. That function is called on each element of the array in turn, and the return value of the function gives the corresponding element in the new array. Note that the original array is left intact. The _.map function takes an array, and returns another array – it’s a mapping from one value to another."
Tuesday, July 26, 2011
Massive database launched to help build the next generation of music apps - TNW Media
Massive database launched to help build the next generation of music apps - TNW Media: "Researchers looking to build technologies that will find their way into the next generation of music apps have received a huge leg up today with the launch of a vast database of information about one million songs by 44,745 artists.
The Million Song Dataset is a collaboration between Columbia University in the USA and music data service The Echo Nest that we previously covered here. Designed for non-commercial use only, the Dataset is an enormous 300GB download containing all sorts of incredibly detailed information about all one million songs."
The Million Song Dataset is a collaboration between Columbia University in the USA and music data service The Echo Nest that we previously covered here. Designed for non-commercial use only, the Dataset is an enormous 300GB download containing all sorts of incredibly detailed information about all one million songs."
Will Clio's AI music streaming software be a game-changer? - Apps
Will Clio's AI music streaming software be a game-changer? - Apps: "One of Brooklyn’s newest entrepreneurs to hit the scene is Greg Wilder, who along with his co-founder Alison Conard have launched Clio, a music-to-music search and discovery platform, which Wilder describes as “the next game-changing music technology”.
Wilder, a conservatory trained pianist and composer has been working at the intersection of computers and music for the past decade. While a music professor, he quickly became frustrated with the available tools and software, so with a firm understanding of music language, he decided to build his own. Wilder’s resulting artificially intelligent software pulls apart music, identifying harmonies, melodies and rhythmic grooves much like a food critic might savor a complex meal. Then the software generates similar songs based on those identifiers. To maintain ownership of the technology and focus on developing a viable business, Wilder quit teaching, sold all his earthly possessions and began to bootstrap a company in 2004. In 2007, he filed for patents and now, in 2011 he and co-founder Conard have officially launched Clio, which aims to power music streaming services like Last.FM, Pandora, Rhapsody or MOG."
Wilder, a conservatory trained pianist and composer has been working at the intersection of computers and music for the past decade. While a music professor, he quickly became frustrated with the available tools and software, so with a firm understanding of music language, he decided to build his own. Wilder’s resulting artificially intelligent software pulls apart music, identifying harmonies, melodies and rhythmic grooves much like a food critic might savor a complex meal. Then the software generates similar songs based on those identifiers. To maintain ownership of the technology and focus on developing a viable business, Wilder quit teaching, sold all his earthly possessions and began to bootstrap a company in 2004. In 2007, he filed for patents and now, in 2011 he and co-founder Conard have officially launched Clio, which aims to power music streaming services like Last.FM, Pandora, Rhapsody or MOG."
Shazam’s Search for Songs Creates New Music Jobs - NYTimes.com
Shazam’s Search for Songs Creates New Music Jobs - NYTimes.com: "Mr. Slomovitz was roaming the aisles of a record store here recently when he spotted a flame-haired clerk. It was Grace Cooper, one-third of the Sandwitches, which had just put out a single that was getting attention on music blogs.
“She’s got that sound that’s getting to be big,” he said as she handed him a copy of the song, “so I’ve got to have it.”
Mr. Slomovitz, a music industry veteran, spends his days tracking down hot new artists — but not for a big record label. Instead, he works for Shazam, maker of the application of the same name that can figure out what song is playing in a bar, a clothing boutique or a TV commercial."
“She’s got that sound that’s getting to be big,” he said as she handed him a copy of the song, “so I’ve got to have it.”
Mr. Slomovitz, a music industry veteran, spends his days tracking down hot new artists — but not for a big record label. Instead, he works for Shazam, maker of the application of the same name that can figure out what song is playing in a bar, a clothing boutique or a TV commercial."
How Music Hack Day Evolved – And Why the Music Industry Must Embrace the Chaos [INTERVIEW] - hypebot
How Music Hack Day Evolved – And Why the Music Industry Must Embrace the Chaos [INTERVIEW] - hypebot: "Fueled by caffeine and pizza, developers, designers, hackers and music geeks gathered together this past weekend at Manhattan's General Assembly for New York City's first Music Hack Day. Designed to bring New York's tech cognoscenti together to build the next generation of music applications, by the end of the weekend, 175 hackers built 72 hacks in just 24 hours. The rules were pretty simple: 'Web apps, mobile, software, hardware, art… anything goes as long as its music related.' NYC 2011 hacks included iPhone, Kinect and Midi instruments, a personalized music mashup generator, crowdsourced party playlists, and SMS song"
The Science Fiction Behind Search | Think Quarterly by Google
The Science Fiction Behind Search | Think Quarterly by Google: "Search_that_understands_me
We’ve started teaching computers how to translate languages, but teaching a computer to actually understand language remains one of our biggest challenges. Google knows that ‘GM’ refers to General Motors in the context of cars, but ‘genetically modified’ in the context of food, for example. But what about words with multiple meanings? How does Google know that when you’re looking to change the brightness of your laptop screen, you actually want to ‘adjust’ it? By contrast, if you want to change a PDF file into a Word document, Google can help you learn how to ‘convert’ that file."
We’ve started teaching computers how to translate languages, but teaching a computer to actually understand language remains one of our biggest challenges. Google knows that ‘GM’ refers to General Motors in the context of cars, but ‘genetically modified’ in the context of food, for example. But what about words with multiple meanings? How does Google know that when you’re looking to change the brightness of your laptop screen, you actually want to ‘adjust’ it? By contrast, if you want to change a PDF file into a Word document, Google can help you learn how to ‘convert’ that file."
» Map-based music visualizations considered harmful Augenmusik
» Map-based music visualizations considered harmful Augenmusik: "The most important rule (which is true for all map-based representations): If you absolutely have to use this abstraction MAKE SURE THAT THE MAP DOES NOT CHANGE! Humans are very good at remembering spatial relationships (you could probably tell me without looking how all these things in your apartment are arranged. See also Roman Room memorization technique) and user interfaces that tap into this ability should also support it. Once the map changes all of these intricately learned relationships are useless. Point in case: Aweditorium. I remembered hearing interesting Danish experimental pop there (it was Oh No Ono by the way) which was somewhere in the upper right corner of the map. But of course, once I restarted the app the whole map got reshuffled and I couldn’t find it. Why have a map if the spatial relationships are meaningless anyway? I have similar gripes with the actually pretty great Kindle app for the iPad, that re-calculates the layout of the text – no, not only every time the font size is changed – but every time the app is restarted! Again, remembering that some interesting tidbit of text is on the lower part of a page isn’t any use."
Monday, July 25, 2011
How to get started with functional programming — The Endeavour
How to get started with functional programming — The Endeavour: "Someone asked me this weekend how to get started with functional programming. My answer: Start by writing pure functions in the programming language you’re currently using.
The only input to a pure function is its argument list and the only output is its return value. If you haven’t seen this before, you might think all functions are pure. After all, any function takes in values and returns a value. But in conventional programming there are typically out-of-band ways for information to flow in or out of a function. For example, an impure function may depend on a global variable or class member data. In that case, it’s behavior is not entirely determined by its arguments. Similarly, an impure function might set a global variable or write to a database. In that case the function has a side effect in addition to its return value."
The only input to a pure function is its argument list and the only output is its return value. If you haven’t seen this before, you might think all functions are pure. After all, any function takes in values and returns a value. But in conventional programming there are typically out-of-band ways for information to flow in or out of a function. For example, an impure function may depend on a global variable or class member data. In that case, it’s behavior is not entirely determined by its arguments. Similarly, an impure function might set a global variable or write to a database. In that case the function has a side effect in addition to its return value."
Overview - Spotify - Developers' home
Overview - Spotify - Developers' home: "The libspotify C API package allows third party developers to write applications that utilize the Spotify music streaming service. Hopefully, this will enable and inspire you to build some really cool stuff. We’re looking forward to seeing what you can come up with."
NoSQL is a Premature Optimization « SmoothSpan Blog
NoSQL is a Premature Optimization « SmoothSpan Blog: "Point 2: There is no particular advantage to NoSQL until you reach scales that require it. In fact it is the opposite, given Point 1.
It’s harder to use. You wind up having to do more in your application layer to make up for what Relational does that NoSQL can’t that you may rely on. Take consistency, for example. As Anand says in his video, “Non-relational systems are not consistent. Some, like Cassandra, will heal the data. Some will not. If yours doesn’t, you will spend a lot of time writing consistency checkers to deal with it.” This is just one of many issues involved with being productive with NoSQL."
It’s harder to use. You wind up having to do more in your application layer to make up for what Relational does that NoSQL can’t that you may rely on. Take consistency, for example. As Anand says in his video, “Non-relational systems are not consistent. Some, like Cassandra, will heal the data. Some will not. If yours doesn’t, you will spend a lot of time writing consistency checkers to deal with it.” This is just one of many issues involved with being productive with NoSQL."
Saturday, July 23, 2011
Thursday, July 21, 2011
Wednesday, July 20, 2011
Chroma Feature Analysis and Synthesis
Chroma Feature Analysis and Synthesis: "Chroma features are an interesting and powerful representation for music audio in which the entire spectrum is projected onto 12 bins representing the 12 distinct semitones (or chroma) of the musical octave. Since, in music, notes exactly one octave apart are perceived as particularly similar, knowing the distribution of chroma even without the absolute frequency (i.e. the original octave) can give useful musical information about the audio -- and may even reveal perceived musical similarity that is not apparent in the original spectra.
We provide several routines for calculating chroma representations from audio, as well as functions to do the reverse -- to synthesize audio from a chroma representation. Although mapping spectra to chroma loses information (since all octaves are mapped onto one another), it is still interesting to convert chroma back into an audio signal to hear a representation of what information has been preserved. We use 'Shepard Tones', which consist of a mixture of all sinusoids carrying a particular chroma, for resynthesis."
We provide several routines for calculating chroma representations from audio, as well as functions to do the reverse -- to synthesize audio from a chroma representation. Although mapping spectra to chroma loses information (since all octaves are mapped onto one another), it is still interesting to convert chroma back into an audio signal to hear a representation of what information has been preserved. We use 'Shepard Tones', which consist of a mixture of all sinusoids carrying a particular chroma, for resynthesis."
Can Pipelining Help?
Can Pipelining Help?: "When using pipelining, a HTTP client sends idempotent HTTP requests (such as GET) without waiting for response of previous requests, and expects responses to arrive in the same order from the server. HTTP 1.1 says nothing about order of processing of requests on the server side – servers can process each request in sequence or in parallel. All that matters is the order of responses. However, in the real-world, pipelining is not often used due to a number of interoperability issues. Mark Nottingham recently captured some of these issues in an internet draft:"
Sylvester - Vector and Matrix math for JavaScript
Sylvester - Vector and Matrix math for JavaScript: "Sylvester is a JavaScript library designed to let you do mathematics with vectors and matrices without having to write lots of loops and throw piles of arrays around. It includes classes for modelling vectors and matrices in any number of dimensions, and for modelling infinite lines and planes in 3-dimensional space. It lets you write object-oriented easy-to-read code that mirrors the maths it represents. For example, it lets you multiply vectors together:"
Render text with canvas 2D | WebGL Factory
Render text with canvas 2D | WebGL Factory: "function writeTextToCanvas(text, idx){
context2D.save();
context2D.clearRect ( 0 , 0 , 300 , 300);
context2D.fillStyle = faceColors[idx];
context2D.fillRect(0,0, 300, 300);
context2D.fillStyle = 'rgba(255, 255, 255, 255)';
context2D.strokeText(text, 150, 150);
context2D.fillText(text, 150, 150);
setTextureFromCanvas(context2D.canvas, textures[idx], idx);
context2D.restore();"
context2D.save();
context2D.clearRect ( 0 , 0 , 300 , 300);
context2D.fillStyle = faceColors[idx];
context2D.fillRect(0,0, 300, 300);
context2D.fillStyle = 'rgba(255, 255, 255, 255)';
context2D.strokeText(text, 150, 150);
context2D.fillText(text, 150, 150);
setTextureFromCanvas(context2D.canvas, textures[idx], idx);
context2D.restore();"
javascript - How to clear the canvas for redrawing - Stack Overflow
javascript - How to clear the canvas for redrawing - Stack Overflow: "context.clearRect ( x , y , w , h );
or
canvas.width = canvas.width;"
or
canvas.width = canvas.width;"
jquery parse json multidimensional array - Stack Overflow
jquery parse json multidimensional array - Stack Overflow: "var json = {'forum':[{'id':'1','created':'2010-03-19 ','updated':'2010-03-19 ','user_id':'1','vanity':'gamers','displayname':'gamers','private':'0','description':'All things gaming','count_followers':'62','count_members':'0','count_messages':'5','count_badges':'0','top_badges':'','category_id':'5','logo':'gamers.jpeg','theme_id':'1'}]};
var forum = json.forum;
for (var i = 0; i < forum.length; i++) {
var object = forum[i];
for (property in object) {
alert(property + '=' + object[property]); // This alerts 'id=1', 'created=2010-03-19', etc..
}
}"
var forum = json.forum;
for (var i = 0; i < forum.length; i++) {
var object = forum[i];
for (property in object) {
alert(property + '=' + object[property]); // This alerts 'id=1', 'created=2010-03-19', etc..
}
}"
syntax - How do I convert a float to an int in Javascript? - Stack Overflow
syntax - How do I convert a float to an int in Javascript? - Stack Overflow: "var intvalue = Math.floor( floatvalue );
var intvalue = Math.ceil( floatvalue );
var intvalue = Math.round( floatvalue );"
var intvalue = Math.ceil( floatvalue );
var intvalue = Math.round( floatvalue );"
4.8.11 The canvas element — HTML Standard
4.8.11 The canvas element — HTML Standard: "// canvas is a reference to a element
var context = canvas.getContext('2d');
context.fillRect(0,0,50,50);
canvas.setAttribute('width', '300'); // clears the canvas
context.fillRect(0,100,50,50);
canvas.width = canvas.width; // clears the canvas
context.fillRect(100,0,50,50); // only this square remains"
var context = canvas.getContext('2d');
context.fillRect(0,0,50,50);
canvas.setAttribute('width', '300'); // clears the canvas
context.fillRect(0,100,50,50);
canvas.width = canvas.width; // clears the canvas
context.fillRect(100,0,50,50); // only this square remains"
Savannah Git Hosting - coreutils.git/commitdiff
Savannah Git Hosting - coreutils.git/commitdiff: " puts (dest_name);
/* If we created a file, but then failed to output the file
name, we should clean up the mess before failing. */
- if (!dry_run && (stdout_closed = true) && close_stream (stdout) != 0)
+ if (!dry_run && ((stdout_closed = true), close_stream (stdout) != 0))
{
int saved_errno = errno;
remove (dest_name);"
/* If we created a file, but then failed to output the file
name, we should clean up the mess before failing. */
- if (!dry_run && (stdout_closed = true) && close_stream (stdout) != 0)
+ if (!dry_run && ((stdout_closed = true), close_stream (stdout) != 0))
{
int saved_errno = errno;
remove (dest_name);"
MindTribe | Forgotten C: The comma operator
MindTribe | Forgotten C: The comma operator: "for (i = 0, j = 256; i < 256; i++, j--) { … }"
Tuesday, July 19, 2011
Can Pipelining Help?
Can Pipelining Help?: "HTTP pipelining is often suggested as a way to dramatically improve page load times, or to solve multi-GET use cases for RESTful applications. Whether pipelining can achieve the intended effect or not truly depends on what gets pipelined and how the server implements pipelining.
When using pipelining, a HTTP client sends idempotent HTTP requests (such as GET) without waiting for response of previous requests, and expects responses to arrive in the same order from the server. HTTP 1.1 says nothing about order of processing of requests on the server side – servers can process each request in sequence or in parallel. All that matters is the order of responses."
When using pipelining, a HTTP client sends idempotent HTTP requests (such as GET) without waiting for response of previous requests, and expects responses to arrive in the same order from the server. HTTP 1.1 says nothing about order of processing of requests on the server side – servers can process each request in sequence or in parallel. All that matters is the order of responses."
Google Identity Toolkit - Google Code
Google Identity Toolkit - Google Code: "What is the Google Identity Toolkit?
Google Identity Toolkit (GITkit) is a free toolkit for website operators who currently allow users to login with their email address and password, and would like to replace that password with federated login. More identity providers will be added in the future. Other companies that are members of the offer similar functionality including Janrain, Microsoft, and Ping Identity."
Google Identity Toolkit (GITkit) is a free toolkit for website operators who currently allow users to login with their email address and password, and would like to replace that password with federated login. More identity providers will be added in the future. Other companies that are members of the offer similar functionality including Janrain, Microsoft, and Ping Identity."
Now I Know: Star Fortress
Now I Know: Star Fortress: "Star Fortress
For centuries, the Republic of Venice and the Ottoman Turks were at war. Italy's present-day Fruili region -- in the country's northeast -- was a particular hotspot, often finding itself the theater of battles between these two nation-states. In the late 1500s, the Venetians came up with a new form of defense: a star-shaped fortress, one with significant advantages over its square-shaped predecessors.
Named Palmanova (pictured from above, right), the town/fortress has the standard accouterments of the era: a moat, reinforced defensive walls, towers, etc. But it has two significant innovations which were unique at the time. First, Palmanova was built with nine ramparts protruding outward in such a way that each of the nine were able to assist its two neighbors in case of attack. Meanwhile, central roadways allowed for troops to easily and quickly reach any of the three gates needing reinforcement. (A 17th century map of Palmanova can be found here.) "
For centuries, the Republic of Venice and the Ottoman Turks were at war. Italy's present-day Fruili region -- in the country's northeast -- was a particular hotspot, often finding itself the theater of battles between these two nation-states. In the late 1500s, the Venetians came up with a new form of defense: a star-shaped fortress, one with significant advantages over its square-shaped predecessors.
Named Palmanova (pictured from above, right), the town/fortress has the standard accouterments of the era: a moat, reinforced defensive walls, towers, etc. But it has two significant innovations which were unique at the time. First, Palmanova was built with nine ramparts protruding outward in such a way that each of the nine were able to assist its two neighbors in case of attack. Meanwhile, central roadways allowed for troops to easily and quickly reach any of the three gates needing reinforcement. (A 17th century map of Palmanova can be found here.) "
Monday, July 18, 2011
Elnode - an Emacs version of node.js
Elnode - an Emacs version of node.js: "Elnode is an asynchronous web server written in Emacs LISP.
Emacs has had asynchronous socket programming facilities for some time and a few years ago asynchronous TCP server sockets were introduced. I couldn't quite believe that no one had written an asynchronous webserver with EmacsLISP before. So now I have.
When I started looking at actually doing this I intended to knock up just a silly demo. But the more I got into it the more it seemed to me that this could be an important addition to Emacs and that, sometimes, an Emacs LISP async web server could actually be useful."
Emacs has had asynchronous socket programming facilities for some time and a few years ago asynchronous TCP server sockets were introduced. I couldn't quite believe that no one had written an asynchronous webserver with EmacsLISP before. So now I have.
When I started looking at actually doing this I intended to knock up just a silly demo. But the more I got into it the more it seemed to me that this could be an important addition to Emacs and that, sometimes, an Emacs LISP async web server could actually be useful."
Saturday, July 16, 2011
Friday, July 15, 2011
Graphics Research Group: Home Page
Graphics Research Group: Home Page: "John Anderson,
Senior Scientist
Contact: janders@pixar.com
John Anderson did his undergraduate work in physics at MIT, his masters degree from MIT, and his Ph.D. from Colorado State University, both in geophysical fluid dynamics. He taught for 3 years (1984-1987) at U. Ill. Urbana-Champaign and 12 years (1987-2000) at the U. of Wisconsin-Madison where he was a Professor of Atmospheric and Oceanic Sciences, Associate Director of the Space Science and Engineering Center, and principal instigator of the UW Computational Sciences program.
From 1997-2001 he worked in the R&D department at Industrial Light and Magic where he developed the ILM fluid dynamics and creature dynamics systems and worked on several films including Star Wars I and II, The Perfect Storm and Jurassic Park III. And, in 2001 he received an Academy Award for this work. Since 2001, John has been at Pixar where he has worked on projects ranging from fluid dynamics for Finding Nemo to character articulation technology for The Incredibles."
I'm working with some pretty amazing people here at Google...
Senior Scientist
Contact: janders@pixar.com
John Anderson did his undergraduate work in physics at MIT, his masters degree from MIT, and his Ph.D. from Colorado State University, both in geophysical fluid dynamics. He taught for 3 years (1984-1987) at U. Ill. Urbana-Champaign and 12 years (1987-2000) at the U. of Wisconsin-Madison where he was a Professor of Atmospheric and Oceanic Sciences, Associate Director of the Space Science and Engineering Center, and principal instigator of the UW Computational Sciences program.
From 1997-2001 he worked in the R&D department at Industrial Light and Magic where he developed the ILM fluid dynamics and creature dynamics systems and worked on several films including Star Wars I and II, The Perfect Storm and Jurassic Park III. And, in 2001 he received an Academy Award for this work. Since 2001, John has been at Pixar where he has worked on projects ranging from fluid dynamics for Finding Nemo to character articulation technology for The Incredibles."
I'm working with some pretty amazing people here at Google...
Liminality - Wikipedia, the free encyclopedia
Liminality - Wikipedia, the free encyclopedia: "Van Gennep considered rites of initiation to be the most typical rite.[18] To gain a better understanding of “tripartite structure” of liminal situations, one can look at a specific rite of initiation: the initiation of “youngsters into adulthood,” which Turner considered the most typical rite.[19] In such rites of passage, the experience is highly structured. The first phase (the rite of separation) requires the child to go through a separation from his family; this involves his/her “death” as a child, as childhood is effectively left behind.[20] In the second stage, initiands (between childhood and adulthood) must pass a “test” to prove they are ready for adulthood. If they succeed, the third stage (incorporation) involves a celebration of the “new birth” of the adult and a welcoming of that being back into society.[21]"
Liminality - Wikipedia, the free encyclopedia
Liminality - Wikipedia, the free encyclopedia: "Van Gennep, who invented the term liminality, published in 1909 his Rites de Passage, a work that is essential to the development of the concept of liminality in the context of rituals in small-scale societies."
Thursday, July 14, 2011
numpy.fromiter — NumPy v2.0.dev-861e227 Manual (DRAFT)
numpy.fromiter — NumPy v2.0.dev-861e227 Manual (DRAFT): ">>> iterable = (x*x for x in range(5))
>>> np.fromiter(iterable, np.float)
array([ 0., 1., 4., 9., 16.])"
>>> np.fromiter(iterable, np.float)
array([ 0., 1., 4., 9., 16.])"
High Scalability - High Scalability - Google+ is Built Using Tools You Can Use Too: Closure, Java Servlets, JavaScript, BigTable, Colossus, Quick Turnaround
High Scalability - High Scalability - Google+ is Built Using Tools You Can Use Too: Closure, Java Servlets, JavaScript, BigTable, Colossus, Quick Turnaround: "For Google+'s most innovative feature, video conferencing with Hangouts, GigaOM has a good article on that stack, which is based on Announcing Google+ Hangouts, written by Tech Lead Justin Uberti. Unlike Skype, which runs on a cost effective P2P model, Hangouts is completely hosted by Google. This must cost a staggering amount of money. You are on your own here. Nobody can replace the bandwidth being donated by the Google fairy."
High Scalability - High Scalability - Google+ is Built Using Tools You Can Use Too: Closure, Java Servlets, JavaScript, BigTable, Colossus, Quick Turnaround
High Scalability - High Scalability - Google+ is Built Using Tools You Can Use Too: Closure, Java Servlets, JavaScript, BigTable, Colossus, Quick Turnaround: "Our stack is pretty standard fare for Google apps these days: we use Java servlets for our server code and JavaScript for the browser-side of the UI, largely built with the (open-source) Closure framework, including Closure's JavaScript compiler and template system. A couple nifty tricks we do: we use the HTML5 History API to maintain pretty-looking URLs even though it's an AJAX app (falling back on hash-fragments for older browsers); and we often render our Closure templates server-side so the page renders before any JavaScript is loaded, then the JavaScript finds the right DOM nodes and hooks up event handlers, etc. to make it responsive (as a result, if you're on a slow connection and you click on stuff really fast, you may notice a lag before it does anything, but luckily most people don't run into this in practice). Our backends are built mostly on top of BigTable and Colossus/GFS, and we use a lot of other common Google technologies such as MapReduce (again, like many other Google apps do)."
Lindsey Bieda » The Importance of a Code Literate Culture
Lindsey Bieda » The Importance of a Code Literate Culture: "Programming provides an additional creative outlet for many people. Writing code is literally writing. You are creating sentences and the general flow of writing a program should be rather similar to that of writing anything else. From outlining the general flow prior to the writing process to the actual process of sitting down and fleshing out the entire piece where there is a point of entry, the central guts, and the end. Creating a program is simply an art with a different medium."
Wednesday, July 13, 2011
Robots ready to jam in KarmetiK Machine Orchestra
Robots ready to jam in KarmetiK Machine Orchestra: "In the not-too-distant future, they say, stadium concerts as we know them will be passe. In their place, humans will jam onstage with hipster robots that will perform previously unheard sounds during mind-blowing multimedia shows that are three-dimensional, interactive soundscapes. Seats will swivel; miniature bots will fly through the air; sound-activated animation will dance overhead and enormous, hanging fiberglass embryos will glow and change color with the music."
Tuesday, July 12, 2011
Monday, July 11, 2011
The Node Beginner Book » A comprehensive Node.js tutorial
The Node Beginner Book » A comprehensive Node.js tutorial: "Intended audience
This document will probably fit best for readers that have a background similar to my own: experienced with at least one object-oriented language like Ruby, Python, PHP or Java, only little experience with JavaScript, and completely new to Node.js.
Aiming at developers that already have experience with other programming languages means that this document won't cover really basic stuff like data types, variables, control structures and the likes. You already need to know about these to understand this document.
However, because functions and objects in JavaScript are different from their counterparts in most other languages, these will be explained in more detail."
This document will probably fit best for readers that have a background similar to my own: experienced with at least one object-oriented language like Ruby, Python, PHP or Java, only little experience with JavaScript, and completely new to Node.js.
Aiming at developers that already have experience with other programming languages means that this document won't cover really basic stuff like data types, variables, control structures and the likes. You already need to know about these to understand this document.
However, because functions and objects in JavaScript are different from their counterparts in most other languages, these will be explained in more detail."
Things that amuse me
Things that amuse me: "main = do
test
l <- varc [1, 2, 3]
print ('first and last:',)
print (first_elt(l),)
print (last_elt(l))"
test
l <- varc [1, 2, 3]
print ('first and last:',)
print (first_elt(l),)
print (last_elt(l))"
Sunday, July 10, 2011
Saturday, July 09, 2011
Friday, July 08, 2011
Thursday, July 07, 2011
Lessons I learned from a design meeting with Jason Fried. - The HealthFinch Blog
Lessons I learned from a design meeting with Jason Fried. - The HealthFinch Blog: "Jason's thoughts: Most of the 'best' applications could be run using technology from 10 years ago."
Formatting under ostream
Formatting under ostream: "double x[10], y[10];
cout.precision(4); // Set 4 digits past the decimal
cout.flags(ios::right+ios::fixed); // Fixed point, right justified"
cout.precision(4); // Set 4 digits past the decimal
cout.flags(ios::right+ios::fixed); // Fixed point, right justified"
setprecision - C++ Reference
setprecision - C++ Reference: "// setprecision example
#include
#include
using namespace std;
int main () {
double f =3.14159;
cout << setprecision (5) << f << endl;
cout << setprecision (9) << f << endl;
cout << fixed;
cout << setprecision (5) << f << endl;
cout << setprecision (9) << f << endl;
return 0;
}"
#include
#include
using namespace std;
int main () {
double f =3.14159;
cout << setprecision (5) << f << endl;
cout << setprecision (9) << f << endl;
cout << fixed;
cout << setprecision (5) << f << endl;
cout << setprecision (9) << f << endl;
return 0;
}"
JavascriptTips - jslibs - JavaScript language advanced tips and tricks - standalone JavaScript development runtime environment with general purpose native libraries - Google Project Hosting
JavascriptTips - jslibs - JavaScript language advanced tips and tricks - standalone JavaScript development runtime environment with general purpose native libraries - Google Project Hosting: "Optional named function arguments
function foo({ name:name, project:project}) {
Print( project );
Print( name );
}
foo({ name:'soubok', project:'jslibs' })
foo({ project:'jslibs', name:'soubok'})"
function foo({ name:name, project:project}) {
Print( project );
Print( name );
}
foo({ name:'soubok', project:'jslibs' })
foo({ project:'jslibs', name:'soubok'})"
Wednesday, July 06, 2011
A Philosopher Every Programmer Should Know: Susanne K. Langer | daddymodern
A Philosopher Every Programmer Should Know: Susanne K. Langer | daddymodern: "Only a part – howbeit a very important part – of our behavior is practical… The remainder serve simply to express ideas that the organism yearns to express, i.e. to act upon without practical purpose, without any view to satisfying other needs than the need of completing in overt action the brain’s symbolic process. (emphasis mine)"
Friday, July 01, 2011
My SysAd Blog -- Unix: Z Shell for loop -- UNIX zsh
My SysAd Blog -- Unix: Z Shell for loop -- UNIX zsh: "Now using brace expansion for the Z shell for loop
# zsh
# for i in {1..12}
do
rcp -p /etc/hosts esoftclient$i:/etc
done
# zsh
# for i in {1..100}
do
rcp -p /etc/hosts esoftclient$i:/etc
done"
# zsh
# for i in {1..12}
do
rcp -p /etc/hosts esoftclient$i:/etc
done
# zsh
# for i in {1..100}
do
rcp -p /etc/hosts esoftclient$i:/etc
done"
Subscribe to:
Posts (Atom)