Friday, August 12, 2011

MMX, SSE, and SSE2 Intrinsics

MMX, SSE, and SSE2 Intrinsics: "An intrinsic is a function known by the compiler that directly maps to a sequence of one or more assembly language instructions. Intrinsic functions are inherently more efficient than called functions because no calling linkage is required."

Forward Why Would Anyone Learn This Stuff?

Forward Why Would Anyone Learn This Stuff?: "WHAT'S WRONG WITH ASSEMBLY LANGUAGE
Top

Assembly language has a pretty bad reputation. The common impression about assembly language programmers today is that they are all hackers or misguided individuals who need enlightenment. Here are the reasons people give for not using assembly:
Assembly is hard to learn.
Assembly is hard to read and understand.
Assembly is hard to debug.
Assembly is hard to maintain.
Assembly is hard to write.
Assembly language programming is time consuming.
Improved compiler technology has eliminated the need for assembly language.
Today, machines are so fast that we no longer need to use assembly.
If you need more speed, you should use a better algorithm rather than switch to assembly language.
Machines have so much memory today, saving space using assembly is not important.
Assembly language is not portable."

Facebook Wins “Worst API” in Developer Survey | TechCrunch

Facebook Wins “Worst API” in Developer Survey | TechCrunch: "A survey of over 100 developers, previously posted here on Hacker News, aimed to determine which external APIs were the most difficult to integrate into developers’ projects. The winner…or rather, the loser? Facebook. Developers mentioned the Facebook API the most in terms having bugs, poor documentation, never-ending API changes, slow response times, and other headaches"

The Shapes of CSS

The Shapes of CSS: "#star-six {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
position: relative;
}
#star-six:after {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 100px solid red;
position: absolute;
content: '';
top: 30px;
left: -50px;
}"

Thursday, August 11, 2011

Parkinson's Law of Triviality - Wikipedia, the free encyclopedia

Parkinson's Law of Triviality - Wikipedia, the free encyclopedia: "Parkinson's Law of Triviality, also known as bikeshedding or the bicycle-shed example, is C. Northcote Parkinson's 1957 argument that organisations give disproportionate weight to trivial issues. Parkinson demonstrated this by contrasting the triviality of a bike shed to a nuclear reactor. Later, Poul-Henning Kamp applied the law to software development and introduced the colour of the bike shed as the proverbial trivial detail receiving disproportionate attention."

NATO phonetic alphabet - Wikipedia, the free encyclopedia

NATO phonetic alphabet - Wikipedia, the free encyclopedia

The Bamboo bicycle trailer

The Bamboo bicycle trailer: "Bamboo bicycle trailer
Build a DIY bicycle trailer from these free plans.
There is no welding to be done, and no tube bending.
Make it any size, from any material, even bamboo."

Vectored I/O - Wikipedia, the free encyclopedia

Vectored I/O - Wikipedia, the free encyclopedia: "In computing, vectored I/O, also known as scatter/gather I/O, is a method of input and output by which a single procedure-call sequentially writes data from multiple buffers to a single data stream or reads data from a data stream to multiple buffers. The buffers are given in a vector of buffers. Scatter/gather refers to the process of gathering data from, or scattering data into, the given set of buffers. Vectored I/O can operate synchronously or asynchronously. The main reasons for using vectored I/O are efficiency and convenience."

Web Audio API

Web Audio API: "The interfaces defined are:

An AudioContext interface, which contains an audio signal graph representing connections betweens AudioNodes.
An AudioNode interface, which represents audio sources, audio outputs, and intermediate processing modules. AudioNodes can be dynamically connected together in a modular fashion. AudioNodes exist in the context of an AudioContext
An AudioSourceNode interface, an abstract AudioNode subclass representing a node which generates audio.
An AudioDestinationNode interface, an AudioNode subclass representing the final destination for all rendered audio.
An AudioBuffer interface, for working with memory-resident audio assets. These can represent one-shot sounds, or longer audio clips.
An AudioBufferSourceNode interface, an AudioNode which generates audio from an AudioBuffer.
A MediaElementAudioSourceNode interface, an AudioNode which is the audio source from an audio, video, or other media element.
A JavaScriptAudioNode interface, an AudioNode for generating or processing audio directly in JavaScript.
An AudioProcessingEvent interface, which is an event type used with JavaScriptAudioNode objects."

FIT Forms - Facebook Authenticated Forms: Shorten Your Forms Using Facebook Profile Info

FIT Forms - Facebook Authenticated Forms: Shorten Your Forms Using Facebook Profile Info: "Make your forms lean using Facebook!
Use Facebook to save time, shorten your forms and validate people."

Learn Bash: Remove Commands from your History - Raw Syntax

Learn Bash: Remove Commands from your History - Raw Syntax: "# entry 3 will be removed entirely from your command history
bash-3.2$ history
1 history
2 sudo rm -i some_file
    3 history
4 history -d 3
    5 history -w
    6 history"

haineault.com / Home

haineault.com / HomeJust noticed that Google Code now have online code editing

And since January apparently..

MySpace Symbols (hearts, stars, skulls, backwards characters, etc) - CoolChaser Forum

MySpace Symbols (hearts, stars, skulls, backwards characters, etc) - CoolChaser Forum: "☠ ☮ ☯ ♠ Ω ♤ ♣ ♧ ♥ ♡ ♦ ♢ ♔ ♕ ♚ ♛ ⚜ ★ ☆ ✮ ✯ ☄ ☾ ☽ ☼ ☀ ☁ ☂ ☃ ☻ ☺ ☹ ۞ ۩"

Wednesday, August 10, 2011

Set breakpoints for debugging - MATLAB

Set breakpoints for debugging - MATLAB: "dbstop in file
dbstop in file at location
dbstop in file if expression
dbstop in file at location if expression
dbstop if condition
dbstop(s)"

SAI :: University of Southampton

SAI :: University of Southampton

Stig Database

Stig Database: "Stig is a new open source, non-relational, distributed graph database being developed here at Tagged.
Our goal is to make it easy for programmers to store and access large amounts of connected data in a way that keeps consistency, while still being fast and scalable. Designed for planetary-scale, with real-time social applications and web developers in mind, Stig is the ideal database for large social networks, real-time services, and cloud applications."

High Scalability - High Scalability - Tagged Architecture - Scaling to 100 Million Users, 1000 Servers, and 5 Billion Page Views

High Scalability - High Scalability - Tagged Architecture - Scaling to 100 Million Users, 1000 Servers, and 5 Billion Page Views: "Having many databases means having many database connections. Especially as we added more 'social discovery' functions like Meet Me, our first dating feature, sharding would have overwhelmed PHP, which lacked Oracle connection pooling. To cope, we built a Java application that exposes a web service for running queries, one which also continues to provide a very convenient monitoring point and allows graceful handling database failures."

Applying styles and colors - MDN Docs

Applying styles and colors - MDN Docs: "Obtaining crisp lines requires understanding how paths are stroked. In the images below, the grid represents the canvas coordinate grid. The squares between gridlines are actual on-screen pixels. In the first grid image below, a rectangle from (2,1) to (5,5) is filled. The entire area between them (light red) falls on pixel boundaries, so the resulting filled rectangle will have crisp edges."

Tuesday, August 09, 2011

Justin Timberlake - Culture - Hollywood - Idea Lab - New York Times

Justin Timberlake - Culture - Hollywood - Idea Lab - New York Times: "ecent research, however, suggests that reliable hit prediction is impossible no matter how much you know — a result that has implications not only for our understanding of best-seller lists but for business and politics as well."

Signal Patterns | Psychology-based Personality and Music Preference Surveys, Tests and Quizzes

Signal Patterns | Psychology-based Personality and Music Preference Surveys, Tests and Quizzes

Canadian Poetry Online | University of Toronto Libraries | bill bissett

Canadian Poetry Online | University of Toronto Libraries | bill bissett

greenlet: Lightweight concurrent programming

greenlet: Lightweight concurrent programming: "A 'greenlet', on the other hand, is a still more primitive notion of micro-thread with no implicit scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. You can build custom scheduled micro-threads on top of greenlet; however, it seems that greenlets are useful on their own as a way to make advanced control flow structures. For example, we can recreate generators; the difference with Python's own generators is that our generators can call nested functions and the nested functions can yield values too. (Additionally, you don't need a 'yield' keyword. See the example in test/test_generator.py)."

Meet the Lockers [LWN.net]

Meet the Lockers [LWN.net]: "That younger generation are the twins - RCU and his sister Seqlock. They both grew up in the shadow of Sir Spinlock's dominance of multiprocessing and each reacted in their own way. They have both learned the importance of stability but were culturally more focused on the appearance than the reality, and technologically more inventive in how to provide it."

:jasonrudolph => :blog >> Programming Achievements: How to Level Up as a Developer

:jasonrudolph => :blog >> Programming Achievements: How to Level Up as a Developer: "Present a lightning talk
Present at a local user group
Present at a conference
Deliver a training course
Publish a tutorial
Publish a constructive code review of an open source project
Write a programming book"

Call Me Fishmeal.

Call Me Fishmeal.: "Now, you’ve probably figured out I’m not actually talking about mining or farming: this is a metaphor for running a software company. You can either see founding a company as something you’re doing because you want to produce good software, or you can see it as something you do so you can sell your stock and make a killing and move on."

SIGUSR2 > Code Blogging: Call With Current Continuation for Python

SIGUSR2 > Code Blogging: Call With Current Continuation for Python: "Continuations are a snapshot of the programs control state at a given time. The concept exists in every language, but only some allow a programmer to bundle it up into an actual object to manipulate in some way.

That bundled, first-class, version of a continuation is applyable, like a function, and depending on the language is either invokable once (one-shot) or multiple times (multi-shot). In the case of multi-shot continuations, one can imagine a great number of use cases such as building coroutines, efficient backtracking and stateful web-servers."

Shtetl-Optimized » Blog Archive » Why Philosophers Should Care About Computational Complexity

Shtetl-Optimized » Blog Archive » Why Philosophers Should Care About Computational Complexity: "One might think that, once we know something is computable, how efficiently it can be computed is a practical question with little further philosophical importance.  In this essay, I offer a detailed case that one would be wrong.  In particular, I argue that computational complexity theory—the field that studies the resources (such as time, space, and randomness) needed to solve computational problems—leads to new perspectives on the nature of mathematical knowledge, the strong AI debate, computationalism, the problem of logical omniscience, Hume’s problem of induction and Goodman’s grue riddle, the foundations of quantum mechanics, economic rationality, closed timelike curves, and several other topics of philosophical interest.  I end by discussing aspects of complexity theory itself that could benefit from philosophical analysis."

Hustle and Code

Hustle and Code: "In Teach Yourself Programming in Ten Years, author Peter Norvig posits the quintessential question in this knowledge arms race, 'Why is everyone in such a rush?'

To bring the point home, Norvig did an Amazon search to see how many book titles promised to teach you something in X amount of days. He received 248 hits. Later he swapped days with hours with similar results at 253 hits. Norvig goes on to note that 96% of the titles returned were computer and programming related. That was 2001."

Hacker News | How to Level Up as a Developer

Hacker News | How to Level Up as a Developer: "A note with regards to specs: you may be tempted to dump all your points into the Programming tree. Don't. It gets nerfed every few years anyhow, and respec costs will be murderous. Instead, spread some points into Soft Skills and Domain Expertise. Get the ult in Domain Expertise and you'll melt your competitors' faces regardless of their programming ability on virtually any raid except Next Google. (P.S. Expected rewards per hour on that raid are terrible, since everyone wipes. If you're good enough to do it you could AFK your way through any number of raids, pick one of them instead.)"

4chan BBS - The C Paradox

4chan BBS - The C Paradox: "I don't think C gets enough credit. Sure, C doesn't love you. C isn't about love--C is about thrills. C hangs around in the bad part of town. C knows all the gang signs. C has a motorcycle, and wears the leathers everywhere, and never wears a helmet, because that would mess up C's punked-out hair. C likes to give cops the finger and grin and speed away. Mention that you'd like something, and C will pretend to ignore you; the next day, C will bring you one, no questions asked, and toss it to you with a you-know-you-want-me smirk that makes your heart race."

4chan BBS - The C Paradox

4chan BBS - The C Paradox: "I don't think C gets enough credit. Sure, C doesn't love you. C isn't about love--C is about thrills. C hangs around in the bad part of town. C knows all the gang signs. C has a motorcycle, and wears the leathers everywhere, and never wears a helmet, because that would mess up C's punked-out hair. C likes to give cops the finger and grin and speed away. Mention that you'd like something, and C will pretend to ignore you; the next day, C will bring you one, no questions asked, and toss it to you with a you-know-you-want-me smirk that makes your heart race."

Monday, August 08, 2011

The Virtual Barber: Binaural Recordings

The Virtual Barber: Binaural Recordings: "Binaural recordings are not exactly audio illusions in the sense that they do not ‘trick’ us into hearing sounds which are impossible or non existent. They are, however, extremely cool as the recordings make it sound like you are actually there, in presence of what is making the sound.

Binaural recordings are simply recordings of sounds using a special microphone setup which factors in the natural crossfeed and sonic shaping of the head and ear. This is what happens naturally when we hear a sound which is the reason why binaural recordings sound so realistic and immersive."

‪Virtual Barber Shop (Audio...use headphones, close ur eyes)‬‏ - YouTube

‪Virtual Barber Shop (Audio...use headphones, close ur eyes)‬‏ - YouTube

Layer 8: NASA Mars rover will roll into its ultimate crater destination this week

Layer 8: NASA Mars rover will roll into its ultimate crater destination this week: "NASA's Mars rover Opportunity will likely peer over the rim of its ultimate destination this week, the huge Endeavour crater.

According to a NASA post late last week, Opportunity was only about 120 meters (394 feet) from 'Spirit Point,' the first landfall on the rim of Endeavour crater."


Web Audio API

Web Audio API: "interface RealtimeAnalyserNode : AudioNode {

// Real-time frequency-domain data
void getFloatFrequencyData(in Float32Array array);
void getByteFrequencyData(in Uint8Array array);

// Real-time waveform data
void getByteTimeDomainData(in Uint8Array array);

attribute unsigned long fftSize;
readonly attribute unsigned long frequencyBinCount;

attribute float minDecibels;
attribute float maxDecibels;

attribute float smoothingTimeConstant;

};"

Web Audio API

Web Audio API: "This specification describes a high-level JavaScript API for processing and synthesizing audio in web applications. The primary paradigm is of an audio routing graph, where a number of AudioNode objects are connected together to define the overall audio rendering. The actual processing will primarily take place in the underlying implementation (typically optimized Assembly / C / C++ code), but direct JavaScript processing and synthesis is also supported."

Web Audio

Web Audio: "Web Audio Examples
The Web Audio API introduces a variety of new audio features to the web platform. It can be used with the canvas 2D and WebGL 3D graphics APIs for creating a new generation of games and interactive applications. The API is capable of dynamically positioning/spatializing and mixing multiple sound sources in three-dimensional space. It has a powerful modular routing system, supporting effects, a convolution engine for room simulation, multiple sends, submixes, etc. Scheduled sound playback is provided for musical applications requiring a high degree of rhythmic precision. Realtime analysis / visualizer support and direct JavaScript processing is also supported.
These APIs are currently under development and are described in this specification document."

Title

Title spectrogram viewer in HTML5

Web Audio

Web Audio: "The Web Audio API introduces a variety of new audio features to the web platform. It can be used with the canvas 2D and WebGL 3D graphics APIs for creating a new generation of games and interactive applications. The API is capable of dynamically positioning/spatializing and mixing multiple sound sources in three-dimensional space. It has a powerful modular routing system, supporting effects, a convolution engine for room simulation, multiple sends, submixes, etc. Scheduled sound playback is provided for musical applications requiring a high degree of rhythmic precision. Realtime analysis / visualizer support and direct JavaScript processing is also supported."

Ben Northrop - A Room Full of Techies

Ben Northrop - A Room Full of Techies: "What actually happens, however, is the exact opposite. Instead of ideas being pushed toward some average, they get pushed to the extreme. Cutting edge technologies, patterns, and approaches are chosen over relatively stable ones, and before you know it, you're programming the system in Clojure using a NoSQL database built using Gant, none of which anyone has any experience with. Two months into development the team realizes that it spent most of its time learning the new technologies, and very little has been actually produced. At this point the 'window' has been missed, and everyone goes back to their old lives."

The demise of the low level Programmer. « #AltDevBlogADay

The demise of the low level Programmer. « #AltDevBlogADay: "So here goes… a list of things I believe all console programmers (and recommend to all programmers as good reading) should fully understand with links to educate where possible. (feel free to suggest more/better links)"

On Functors - good coders code, great reuse

On Functors - good coders code, great reuse: "It's interesting how the term 'functor' means completely different things in various programming languages. Take C++ for example. Everyone who has mastered C++ knows that you call a class that implements operator() a functor. Now take Standard ML. In ML functors are mappings from structures to structures. Now Haskell. In Haskell functors are just homomorphisms over containers. And in Prolog functor means the atom at the start of a structure. They all are different. Let's take a closer look at each one."

Why I love Smalltalk | Pablo's blog

Why I love Smalltalk | Pablo's blog: "10 timesRepeat: [
Transcript show: 'Hello world'
]
There you can start to see how Smalltalk is special. I’m sending the message timesRepeat: to the object 10, an Integer. Doing something N times repeatedly is handled by the Integer class, which if you think about it, makes sense."

Coping With Inconsistent Databases

Coping With Inconsistent Databases: "First, let me state the obvious again : eventually consistent databases almost never remain inconsistent long enough for users to notice and, even if they do notice, they usually don’t care — through the prevalence of cache-powered websites, our users are used to seeing stale data every so often and know to hit the refresh button to deal with it. Aside from a few critical edge cases like online payment processing, the problem with eventual consistency is not the user."

Programming and Scaling | Lambda the Ultimate

Programming and Scaling | Lambda the Ultimate: "The biggest problem we have as human beings is that we confuse our beliefs with reality.'
'We could imagine taking the internet as a model for doing software modules. Why don't people do it?' (~00:17)
'One of the mistakes that we made years ago is that we made objects too small.' (~00:26)
'Knowledge in many cases trumps IQ. [Henry] Ford was powerful because Isaac Newton changed the way we think.' (~00:28)
'Knowledge is silver. Outlook is gold. IQ is a lead weight.' (~00:30)
'Whatever we [in computing] do is more like what the Egyptians did. Building pyramids, piling things on top of each other.'
'The ability to make science and engineering harmonize with each other - there's no greater music.' (~00:47)"

Sunday, August 07, 2011

Music of Sound » Detritus 114

Music of Sound » Detritus 114

nonesuch things

nonesuch things: "MT Tape is a fantastic Japanese decorative tape made from 'Washi' (rice) paper. People are going crazy for it all over the world and I've managed to order some for Nonesuchthings to feed my addiction. It is removable and can be used for all manner of things - sticking things and writing messages on walls, fancy/thrifty/quirky gift wrapping and card making, fixing the broken remote control back, and the list goes on and on but it really does allow you to be creative and add little personal touches to wrapping and other things. Check-out this link for ideas on how to use it - http://www.masking-tape.jp and click on 'mt Gallery'. They come in packs of two and measure 15mm wide and 10m long. Choose from 'Red with dots/white lace' or Red/Grey deco. £5.50 per pack of two."

Chase No Face / BELL on Vimeo

Chase No Face / BELL on Vimeo

Chase No Face / BELL from zach lieberman on Vimeo.

all shopping carts should have these | The Best Article Every day

all shopping carts should have these | The Best Article Every day

STEVE McQUEEN & The Power of Hubris | The Better Man

STEVE McQUEEN & The Power of Hubris | The Better Man

Pied Piper Bar - San Francisco - Pied Piper at the Palace Hotel

Pied Piper Bar - San Francisco - Pied Piper at the Palace Hotel

CHS Charts - Canadian Hydrographic Charts 2011 edition

CHS Charts - Canadian Hydrographic Charts 2011 edition

List of spells in Harry Potter - Wikipedia, the free encyclopedia

List of spells in Harry Potter - Wikipedia, the free encyclopedia: "Legilimens
Pronunciation: /lɛˈdʒɪlɨmɛnz/ le-jil-i-menz
Description: Allows the caster to delve into the mind of the victim, allowing the caster to see the memories, thoughts, and emotions of the victim.
Seen/mentioned: Used by Snape on Harry during Occlumency lessons in Order of the Phoenix and by Dumbledore on Kreacher. Also used nonverbally by Snape on Harry in Half-Blood Prince to allow him to see where Harry had learned the Sectumsempra spell. Used by Lord Voldemort multiple times to see Harry's thoughts.
Suggested etymology: Latin legere meaning 'to read' and Latin mens meaning 'mind'.[12]
Notes: See also Legilimency for more information."

Phoenix Rising Designs: Ace Britches Brown

Phoenix Rising Designs: Ace Britches Brown

San Francisco Museum of Modern Art, San Francisco, CA 94105, USA to 2 New Montgomery St, San Francisco, CA 94105, USA - Google Maps

San Francisco Museum of Modern Art, San Francisco, CA 94105, USA to 2 New Montgomery St, San Francisco, CA 94105, USA - Google Maps: "hotel vitale"

Zplet: Zork I: The Great Underground Empire

Zplet: Zork I: The Great Underground Empire

CHS - Nautical Charts and Services

CHS - Nautical Charts and Services

Friday, August 05, 2011

Personal names around the world

Personal names around the world: "People who create web forms, databases, or ontologies are often unaware how different people’s names can be in other countries. They build their forms or databases in a way that assumes too much on the part of foreign users. This article will first introduce you to some of the different styles used for personal names, and then some of the possible implications for handling those on the Web.

This article doesn't provide all the answers - indeed in some cases it may not be clear what the best answer is. It attempts to mostly sensitize you to some of the key issues by way of an introduction."

Russ Cox - Google+

Russ Cox - Google+: "Floating Point to Decimal Conversion is Easy
Floating point to decimal conversions have a reputation for being difficult. At heart, they're really very simple and straightforward. To prove it, I'll explain a working implementation. It only formats positive numbers, but expanding it to negative numbers, zero, infinities and NaNs would be very easy.

An IEEE 64-bit binary floating point number is an integer v in the range [252, 253) times a power of two: f = v × 2e. Constraining the fractional part of the unpacked float64 to the range [252, 253) makes the representation unique. We could have used any range that spans a multiplicative factor of two, but that range is the first one in which all the values are integers."

Man with No Name - Wikipedia, the free encyclopedia

Man with No Name - Wikipedia, the free encyclopedia

Falsehoods Programmers Believe About Names | Kalzumeus Software

Falsehoods Programmers Believe About Names | Kalzumeus Software

CompressiveDistortion.1 - CNBH Acoustic Scale Wiki

CompressiveDistortion.1 - CNBH Acoustic Scale Wiki

Protocol Buffers, Avro, Thrift & MessagePack - igvita.com

Protocol Buffers, Avro, Thrift & MessagePack - igvita.com: "When Protocol Buffers was first being developed (early 2000's), the preferred language at Google was C++ (nowadays, Java is on par). Hence it should not be surprising that PB is strongly typed, has a separate schema file, and also requires a compilation step to output the language-specific boilerplate to read and serialize messages. To achieve this, Google defined their own language (IDL) for specifying the proto files, and limited PB's design scope to efficient serialization of common types and attributes found in Java, C++ and Python. Hence, PB was designed to be layered over an (existing) RPC mechanism."

Web Intents

Web Intents: "The Web Intent API is simple to use. Service developers define the intent they intend to support, and what to do with the data they recieve. Client applications simply initate a new action with the given parameters.

Intent Registration


action
Required. A verb describing the action to be performed
type
Optional. Types are a filter
href
Optional. If specified it will point to the action that is loaded when the user chooses the service. If undefined, use the current page."

DailyJS: Let's Make a Framework: jsdom

DailyJS: Let's Make a Framework: jsdom: "jsdom by Elijah Insua is a CommonJS implementation of the DOM. This isn’t a trivial module, and thankfully is extremely easy to use thanks to the recently introduced jsdom.env() method."

Somewhere between "use re 'eval'" and "no re 'eval'" | Abigail [blogs.perl.org]

Somewhere between "use re 'eval'" and "no re 'eval'" | Abigail [blogs.perl.org]: "So, we need an additional stringification:

sub example {
my ($str, $pattern) = @_;
no re 'eval';
$pattern = '$pattern';
$pattern = qr /$pattern/;
use re 'eval';
$str =~ /$pattern(?{ 1; })/;
}
This does what I want it to do: run the code block, but die if $pattern contains a code block, regardless whether it's passed as a string or a compiled regexp.

But I wonder, is there a less cluncky way?"

Revolutions: How Google uses R to make online advertising more effective

Revolutions: How Google uses R to make online advertising more effective: "Bill Heavlin from Google kicked off the session with a talk about conditional regression models, a statistical technique at Google used to evaluate the factors that lead to user satisfaction of Google products, such as when users are surveyed on satisfaction with search reports, or when users are asked to rate YouTube videos. Google has graciously shared the fruits of Bill's research by publishing an open-source R package for conditional regression."

Correct Decimal To Floating-Point Using Big Integers - Exploring Binary

Correct Decimal To Floating-Point Using Big Integers - Exploring Binary


Producing correctly rounded decimal to floating-point conversions is hard, but only because it is made to be done efficiently. There is a simple algorithm that produces correct conversions, but it’s too slow — it’s based entirely on arbitrary-precision integer arithmetic. Nonetheless, you should know this algorithm, because it will help you understand the highly-optimized conversion routines used in practice, like David Gay’s strtod() function. I will outline the algorithm, which is easily implemented in a language like C, using a “big integer” library like GMP.

ORCA LIVE | COMMUNITY

ORCA LIVE | COMMUNITY

Orcas near mics.

Close A4 (A24) and A5(A23) calls at the eastern end of the Ecological Reserve as the groups make their way back to the west. We last heard calls at 1:45am as the groups moved east from Robson Bight.
Helena

APOD: 2011 August 5 - A Summer Night s Dream

APOD: 2011 August 5 - A Summer Night s Dream: "The concentric arcs traced by the stars as planet Earth rotates on its axis often produce dreamlike scenes in otherwise familiar situations. Fall asleep, though, and the results might surprise you. Setting up on a summer night, photographer Mike Rosinski began his exposures, initially planning to capture about 45-55 minutes worth of star trails from his yard in Hartland, Michigan, USA. But he dozed, only to awaken some 3 hours later to find his camera had continued to run until the battery died. Composing the resulting images, the graceful concentric star trails were expected, along with light from a late rising Moon glinting on windows. Still, as he slept on the warm night a blizzard of yellow streaks flooded the scene, not left by fairies but fireflies."

Thursday, August 04, 2011

Robust speech recognition from binary masks

Arun Narayanana)
Department of Computer Science and Engineering, The Ohio State University, Columbus, Ohio 43210
narayaar@cse.ohio-state.edu
DeLiang Wang
Department of Computer Science and Engineering, and Center for Cognitive Science, The Ohio State University,
Columbus, Ohio 43210
dwang@cse.ohio-state.edu
Abstract: Inspired by recent evidence that a binary pattern may provide
sufficient information for human speech recognition, this letter proposes a
fundamentally different approach to robust automatic speech recognition.
Specifically, recognition is performed by classifying binary masks corresponding
to a word utterance. The proposed method is evaluated using a subset
of the TIDigits corpus to perform isolated digit recognition. Despite dramatic
reduction of speech information encoded in a binary mask, the
proposed system performs surprisingly well. The system is compared with a
traditional HMM based approach and is shown to perform well under low
SNR conditions.
© 2010 Acoustical Society of America
PACS numbers: 43.72.Ne, 43.72.Bs [DOS]
Date Received: August 16, 2010 Date Accepted: September 15, 2010

DeLiang Wang at OSU Department of Computer Science & Engineering

DeLiang Wang at OSU Department of Computer Science & Engineering: "DeLiang Wang

Professor

I am with the Department of Computer Science and Engineering (CSE) and the Center for Cognitive Science at The Ohio State University (OSU). I am also a faculty member of the OSU Laboratory for AI Research (LAIR) and a participating faculty member of the Biomedical Engineering Department and the Biophysics Program.

I direct the OSU Perception and Neurodynamics Lab (PNL).

As of Jan. 1, 2011, I am Co-Editor-In-Chief of Neural Networks, which is a premier journal published by Elsevier. See the related Press Release by Elsevier.
On audition, Guy Brown and I edited a 10-chapter book: 'Computational Auditory Scene Analysis: Principles, Algorithms, and Applications' published by Wiley/IEEE Press in 2006. More information about this book can be found at its companion website."

start [siliconretina]

start [siliconretina]

Home Page for Shih-Chii Liu

Home Page for Shih-Chii Liu: "he objectives of the neuromorphic group at INI are to explore computational principles of natural systems by developing implementations of insect and vertebrate sensory systems models; to develop sensori-motor control for robotics using aVLSI preprocessors, to develop technology for long-term adaptation and learning in spiking neuronal hardware, to understand computation in hybrid systems that compute with analog signals and spikes, and to develop proto-products. The senior members of the group include Tobi Delbrück and Giacomo Indiveri .

My research interests are in developing computational models of sensory and cortical processing including spike-based models suitable for implementation in hybrid silicon analog-digital systems."

1.7 — Forward declarations « Learn C++

1.7 — Forward declarations « Learn C++


« 1.6 — Whitespace and basic formatting 1.8 — Programs with multiple files »



1.7 — Forward declarations
BY ALEX, ON JUNE 2ND, 2007
Take a look at this seemingly innocent sample program called add.cpp:

01
#include
02

03
int main()
04
{
05
using namespace std;
06
cout << "The sum of 3 and 4 is: " << add(3, 4) << endl;
07
return 0;
08
}
09

10
int add(int x, int y)
11
{
12
return x + y;
13
}
You would expect this program to produce the result:

The sum of 3 and 4 is: 7
But in fact, it doesn’t compile at all! Visual Studio 2005 Express produces the following compile errors:

add.cpp(10) : error C3861: 'add': identifier not found
add.cpp(15) : error C2365: 'add' : redefinition; previous definition was 'formerly unknown identifier'
The reason this program doesn’t compile is because the compiler reads files sequentially. When it reaches the function call to add() inside of main(), it doesn’t know what add is, because we haven’t defined add() until later! That produces the error on line 10. Then when it gets to the actual declaration of add(), it complains about add being redefined (which seems slightly misleading, given that it wasn’t ever defined in the first place). Often times, a single error in your code will end up producing multiple warnings.

Rule: When addressing compile errors in your programs, always resolve the first error produced first.

In this case, that means we need to address the fact that the compiler doesn’t know what add is. There are three ways to fix this problem.

The first way is to reorder our function calls so add is defined before main:

01
#include
02

03
int add(int x, int y)
04
{
05
return x + y;
06
}
07

08
int main()
09
{
10
using namespace std;
11
cout << "The sum of 3 and 4 is: " << add(3, 4) << endl;
12
return 0;
13
}
That way, by the time main() calls add(), it will already know what add is. Because this is such a simple program, this change is relatively easy to do. However, in a large program, it would be extremely tedious trying to decipher which functions called which other functions so they could be declared in the correct order.

Furthermore, this option is not always available. Let’s say we’re writing a program that has two functions A and B. If function A calls function B, and function B calls function A, then there’s no way to order the functions in a way that they will both be happy. If you define A first, the compiler will complain it doesn’t know what B is. If you define B first, the compiler will complain that it doesn’t know what A is.

Consequently, a better solution is to use a forward declaration. In a forward declaration, we declare (but do not define) our function in advance of where we use it, typically at the top of the file. This way, the compiler will understand what our function looks like when it encounters a call to it later. We do this by writing a declaration statement known as a function prototype. A function prototype is a declaration of a function that includes the function’s name, parameters, and return type, but does not implement the function.

C++ tip : Use forward declaration when possible

C++ tip : Use forward declaration when possible: "C++ INCLUDE Rule : Use forward declaration when possible

Suppose you want to define a new class B that uses objects of class A.
B only uses references or pointers to A. Use forward declaration then : you don't need to include . This will in turn speed a little bit the compilation.
class A ;

class B {
private:
A* fPtrA ;
public:
void mymethod(const& A) const ;
} ;

B derives from A or B explicitely (or implicitely) uses objects of class A. You then need to include
#include

class B : public A {

} ;

class C {
private:
A fA ;
public:
void mymethod(A par) ;
}"

F# for game development: The forgotten control flow construct

F# for game development: The forgotten control flow construct: "The fantastic control flow construct that many have forgotten is simply the procedure call. Every programmer uses it a countless number of times every working day, but fear of recursion and stack overflows have kept many from using it in situations where it fits well."

Core Dump: Scripting Tmux Layouts

Core Dump: Scripting Tmux Layouts: "Tmux is an awesome replacement for Screen. I have a couple of standard terminal layouts for programming. One of them is show below.
Vim editor on the left.
Top right pane has the bpython interpreter.
Bottom right pane has the bash prompt."

Ms Pac-Man vs Ghosts - Submission site

Ms Pac-Man vs Ghosts - Submission site: "Welcome to the CIG 2011 Ms Pac-Man vs Ghost Team Submission Site. From now on you may submit your controllers for testing. Once submitted, your controller will be matched against the default controllers as well as those submitted by others. This will allow you to improve your code. You may view the intermediate results by clicking on the tabs above; the resuts will be updated as new controllers are submitted (please note that it will take some time to generate results for new controllers). Once the competition deadline has been reached, this submission site will be closed and your most recent controller will be used to determine the final scores."

Mélange Fashion Show 2011 - Eventbrite

Mélange Fashion Show 2011 - Eventbrite

Looking for a new experience? Come and be a part of the Mélange Fashion Show 2011 on August 6, 2011 at the San Francisco Design Center. This isn't your typical fashion show, as Mélange blends fashion, music, theater and dance into a magnificent blend of entertainment. Designers and spectators are flying out from Croatia, Australia and more to attend the Mélange Fashion Show 2011, and confirmed sponsors for the event include Nicole Miller, Sephora, Gordon Biersch, popchips, and more.

Check out the event's promo video here: http://www.youtube.com/watch?v=leLMkcA12Pg

The main purpose of the Mélange Fashion Show is to celebrate diversity in the fashion industry. Mélange aims to empower our community members to participate in the changing perception of health and beauty by embracing models of all ethnicities, shapes and sizes, as well as designers from diverse backgrounds. . The show is divided into three scenes (Genesis, Annihilation & Resurrection). It features an original love narrative of two female protagonists, Angelica and Soledad, who bring each other to the near point of destruction, but are subsequently united through love and harmony. The two characters represent different energies of the universe—this allegory serves to support Mélange’s mission of understanding individuals from diverse backgrounds. Throughout the story, Korean drumming, Bhangra, Hip Hop, and more will be showcased. Over 15 designers will be featured from around the world, ranging from international designers to local talent in San Francisco. This story line and medley of artistic mediums flawlessly tie together and transition into runway segments of incredible clothing, creating a new genre of entertainment, coined the “Cirque du Soleil of Fashion.”

Wednesday, August 03, 2011

Chapter 4. Using MayaVi from Python

Chapter 4. Using MayaVi from Python: "import mayavi
v = mayavi.mayavi()
v.load_visualization('heart.mv')
# Do whatever you please with the MayaVi window.

# To make the MayaVi window interact with the user and wait
# till it is closed to proceed, do the following:
v.master.wait_window()

# Now once the previous window is closed if you need
# to open another do this:
v = mayavi.mayavi()
d = v.open_vtk('file.vtk')
# etc.
v.master.wait_window()

# Once the MayaVi window is closed the program will exit."

What students get wrong when building computational physics models in Python: Cabellero thesis part 2 « Computing Education Blog

What students get wrong when building computational physics models in Python: Cabellero thesis part 2 « Computing Education Blog: "Danny suggests that these were physics mistakes.  I disagree.  I think that these are computation, or at best, computational modeling errors.  Many students don’t understand how to map from a situation to a set of constants in a program.  (Given that we know how much difficulty students have understanding variables in programs, I wouldn’t be surprised if they don’t really understand what the constants mean or what they do in the program.)  They don’t understand Python’s error messages, which were about types not about Physics."

Flax HTML5 Game Engine

Flax HTML5 Game Engine

Flax HTML5 Game Engine Development Diary Part 11 | Flax Project

Flax HTML5 Game Engine Development Diary Part 11 | Flax Project: "Well it’s that time again, it’s been just about three weeks since the first iteration of the Flax HTML5 Game Engine 0.1 and as promised we have tried really hard to stick to our time-boxed release system and putting the Agile practices that we learned about in software engineering on our college course at IT Carlow into practice."

Javascript MVC – Cascading Events | Planbox Blog

Javascript MVC – Cascading Events | Planbox Blog: "As I mentioned previously, a lot of Javascript frameworks implement the observer design pattern on their data models. That post was sparked by a conversation with Artur Adib on his lightweight Javascript MVC framework Agility JS. Not long ago, he mentioned to me that he’s had many requests for the ability to bind multiple views on one model. This reminded me how complex cascades of events can be implemented easily with a well designed Javascript framework.  Here’s one use case in Planbox (we use Backbone JS)."

ORCA LIVE | COMMUNITY

ORCA LIVE | COMMUNITY

It's been a busy day on the water already. Sometime around 8am members of the A24s were spotted off Telegraph Cove where they turned back east. Meanwhile, the A23s were slower to come up from the Reserve and were heard through the mist westing half an hour later. The two groups met up at Blinkhorn, where the A24s are now resting and slowly heading east. The A23s are quite a bit further ahead travelling towards the Bight.
Elizabeth
03 Aug 2011 09:50:10 PDT

Tuesday, August 02, 2011

Cannot find python include path - Ubuntu Forums

Cannot find python include path - Ubuntu Forums:


"Re: Cannot find python include path
The path is for python header files (files ending in .h). The desklet you
are building apparently wants these files. They are contained in the
package python2.4-dev, which is not installed by default. You
would need to install it with Synaptic (or Adept if you are using Kubuntu/KDE).

Unfortunately, it does not install the directory as /usr/include/python, but as
/usr/include/python2.4. There may be a command line option for configure,
to specify the path (read the file, there should be some comments in there
about it), or you could edit configure directly to change the path
name, or you could make a link in /usr/include to satisfy the requirement:

In a terminal
Code:
sudo ln -s /usr/include/python2.4 /usr/include/python
I suspect that since the configure file expects /usr/include/python to exist,
there may be other path name failures, too.
__________________
Dell Inspiron 2650 w/RT2500 wifi
and a Really Old Desktop machine"




I found that I needed to do:

sudo ln -s /usr/include/python2.7 /usr/include/python


However, this was in CMake for Marsyas, so I actually found that I just needed to manually set the PYTHON_INCLUDE_PATH to /usr/include/phython2.7, because there were two versions of python on my system.

glBegin

glBegin: "GL_LINES
Treats each pair of vertices as an independent line segment. Vertices 2 n - 1 and 2 n define line n . N / 2 lines are drawn."

3. OpenGL Keyboard Interaction (Version 2.0) | Swiftless Tutorials

3. OpenGL Keyboard Interaction (Version 2.0) | Swiftless Tutorials: "To get started with the keyboard, just like we created display and reshape methods for GLUT to use, we are going to need to create another method. The first method we are going to deal with is the key pressed method; this method will tell us which keys are currently pressed.

I am going to name this method keyPressed and GLUT states that it has 3 parameters, one for the key that is currently pressed, and two more that give us the location of the mouse when the key was pressed."

Frames Per Second » Lighthouse3d.com

Frames Per Second » Lighthouse3d.com: "time = glutGet(GLUT_ELAPSED_TIME);"

zsh script loop (does not work in bash) « Yogsototh

zsh script loop (does not work in bash) « Yogsototh: "for i in '$(ls)'; do echo $i end; done"

Your First Computer - install dos game at age 10 career trajec..

Your First Computer - install dos game at age 10 career trajec..

Quantified Self Silicon Valley Inaugural Meet-Up - Health Focus - Quantified Self Silicon Valley (Mountain View, CA) - Meetup

Quantified Self Silicon Valley Inaugural Meet-Up - Health Focus - Quantified Self Silicon Valley (Mountain View, CA) - Meetup: "Please join us on Aug 11th for the first meeting of QS Silicon Valley!  This is the place to share self-tracking presentations, lessons learned, and to show the tools you use."

The Most Expensive One-byte Mistake - ACM Queue

The Most Expensive One-byte Mistake - ACM Queue: "To a lot of people, C is a dead language, and ${lang} is the language of the future, for ever-changing transient values of ${lang}. The reality of the situation is that all other languages today directly or indirectly sit on top of the Posix API and the NUL-terminated string of C.

When your Java, Python, Ruby, or Haskell program opens a file, its runtime environment passes the filename as a NUL-terminated string to open(3), and when it resolves queue.acm.org to an IP number, it passes the host name as a NUL-terminated string to getaddrinfo(3). As long as you keep doing that, you retain all the advantages when running your programs on a PDP/11, and all of the disadvantages if you run them on anything else."

Protocol Buffers, Avro, Thrift & MessagePack - igvita.com

Protocol Buffers, Avro, Thrift & MessagePack - igvita.com: "erhaps one of the first inescapable observations that a new Google developer (Noogler) makes once they dive into the code is that Protocol Buffers (PB) is the 'language of data' at Google. Put simply, Protocol Buffers are used for serialization, RPC, and about everything in between.

Initially developed in early 2000's as an optimized server request/response protocol (hence the name), they have become the de-facto data persistence format and RPC protocol. Later, following a major (v2) rewrite in 2008, Protocol Buffers was open sourced by Google and now, through a number of third party extensions, can be used across dozens of languages - including Ruby, of course.

But, Protocol Buffers for everything? Well, it appears to work for Google, but more importantly I think this is a great example of where understanding the historical context in which each was developed is just as instrumental as comparing features and benchmarking speed."

Flexible Nav jQuery library

Flexible Nav jQuery library: "Flexible Nav is a small jQuery library which add a smart navigation bar on the right of the page. It improves a web page navigation and helps to visualize different sections of a document, an article,.. any web page.

Nav links are distributed proportionally to the page sections. See how your scrollbar 'weds' these links :)

You can easily use it on any website with the Bookmarklet.

Save this bookmark by drag and dropping it in your bar...

FlexibleNav bookmarklet

...and click on it in any website!"

Monday, August 01, 2011

visualization - How to display a 3D plot of a 3D array isosurface in matplotlib mplot3D or similar? - Stack Overflow

visualization - How to display a 3D plot of a 3D array isosurface in matplotlib mplot3D or similar? - Stack Overflow: "mlab.show()"

Tuning and Temperament

Tuning and Temperament: "Note A #/b B C #/b D #/b E F #/b G #/b
Equal Temperament 0 0 0 0 0 0 0 0 0 0 0 0
Werkmeister lll 0 +8 +4 +12 +2 +4 +6 +2 +10 0 +8 +4
Kirnberger lll 0 +6 -2 +10 +1 +3 +4 -3 +8 +1 +7 +2
Vallotti & Young 0 +6 -4 +6 0 +2 +4 -2 +8 -2 +4 +2"

Topspin vs Bandcamp vs Both: One User’s Thoughts on DIY Web Music Platforms

Topspin vs Bandcamp vs Both: One User’s Thoughts on DIY Web Music Platforms: "With direct-from-the-artist sales catching on and some superb tools, the question for the independent artist or label is, which tool is worth your time? We’ve seen plenty of discussion revolving around Topspin Media and Bandcamp. Bandcamp earned interest early with a dead-simple DIY digital store for artists; Topspin has become widely available more recently, but had as an early draw merch stores and free download email capture as major features, among many others."

Release Notes - Native Client SDK - Google Code

Release Notes - Native Client SDK - Google Code: "Starting with Chrome 14, Native Client has a stable application binary interface (ABI). That means there is no longer a need to match versions of Chrome with versions of the SDK. Applications compiled with version 0.5 of the SDK will work in Chrome 14 and future versions of Chrome. Applications compiled with version 0.5 of the SDK will not work in Chrome 13 or earlier versions of Chrome.
Applications compiled with earlier versions of the SDK will not work in Chrome 14 or future versions of Chrome.
The Native Client documentation on this site has not yet been updated to reflect the changes for version 0.5 of the SDK."