jQuery live events can only bind once
Unlike .bind(), only a single event can be bound in each call to the .live() method.
Unlike .bind(), only a single event can be bound in each call to the .live() method.
Because in 1960, the Bureau International des Poids et Mesures decided that the SI prefix G- meant 10^9.
But it means 2^30, really!
No it doesn't. Let's look at some examples:
Just a quick thought. It's pretty basic, but this was the first time I had a front-row seat demonstration of basic design principles and why they're suggested.
You can't really see it in the quotes, but if you follow the link, you'll see that the headings and text are the same size. Not only that, but the spacing between paragraphs is the same between headings and paragraphs.
That confused me and I had thought that the bolded statements was part of the text, and hence it was something the author was saying, rather than as intentioned, something we are readers would be saying as headings of different sections.
We differentiate importance and grouping by weight, size, color, and spacing. It takes a combination of these to discern what we're reading.
Comments [6]
It's a "well known" that relational databases are bad at multi-column "slice and dice" calculations. So when you have data that you'd like to represent as an aggregated trend, it's easy to reach for that OLAP. Chances are, you don't need it. Here's an example of something where you want a count of the number of comments from an author by day.
select DATE(created_at) as DateOnly, count(*)
from comments
where author_id = 877081418
group by DateOnly
order by DateOnly
Comments [0]
Put simply, we enteredBigComputervianew, sothismeant “the new object.” On the other hand, we enteredthe_questionviadeep_thought, so while we’re executing that method,thismeans “whateverdeep_thoughtrefers to”.thisis not read from the scope chain as other variables are, but instead is reset on a context by context basis.
Javascript's scoping has been one of most confusing things about it, just as Ruby's metaclass and object model is the most confusing things about it. If you're looking to expand the horizon of what you understand about programming languages, it's worth it to figure out javascript scoping.
The paragraph gave a good way to think about it: this changes based on the object that calls the method. It only gets confusing when you start passing around functions and using callbacks, which is most of the power of functional programming.
As an example, here, I was using an anonymous function as a callback in the request() method. But it doesn't work!
So that's just one way to solve it. If you're using Prototype, you can also try using the bind() method. jQuery doesn't have an equivalent bind method, as hard as I looked for it at one time. I was just about to write it myself (as it's not too hard), but according to the a list apart article on Getting out of binding situations in javascript:
jQuery does not provide such a binding facility. The library’s philosophy favors closures over binding and forces users to jump through hoops (that is, manually combine lexical closures and
applyorcall, much as other libraries do internally) when they actually need to pass along a piece of code referring to “instance members.”
So while I use closures extensively in Ruby, I haven't had to explicitly think about the scope until I was using closures in Javascript. Huzzah. Hopefully, it'll prompt you to take a deeper look at Javascript.
Comments [0]
Here's another tidbit that I hadn't noticed in the rails docs before. I was looking at validations for uniqueness and I saw this:
Using this validation method in conjunction with ActiveRecord::Base#save does not guarantee the absence of duplicate record insertions, because uniqueness checks on the application level are inherently prone to race conditions.
This could even happen if you use transactions with the ‘serializable’ isolation level. There are several ways to get around this problem:
By locking the database table before validating, and unlocking it after saving. However, table locking is very expensive, and thus not recommended.
By locking a lock file before validating, and unlocking it after saving. This does not work if you‘ve scaled your Rails application across multiple web servers (because they cannot share lock files, or cannot do that efficiently), and thus not recommended.
Creating a unique index on the field, by using ActiveRecord::ConnectionAdapters::SchemaStatements#add_index. In the rare case that a race condition occurs, the database will guarantee the field‘s uniqueness.
Comments [0]
Even after reading all the documentation, paperclip still has its quirks. I've been pretty busy, but here's a short tip to tide you over. When using paperclip with S3, make sure that you have the :path option set when using has_attached_file.
"MethodNotAllowed: The specified method is not allowed against this resource." Error.
Comments [0]
"If only I had ____ I would succeed."
These simple words will kill your dreams faster than anything else you could say or think. There are so many self-defeating thoughts that an entrepreneur can have, and they often take this very simple form.
Posted 3 hours ago
While Garry takes it in the direction of getting your hands dirty and building, and the recent HN discussion talking about whether one should sell or not, reading these compels me to take it in a different direction this morning before work--I'd like to speak a little about mental blocks.
There were many reasons why you'd want to sell your company. Your business deals with fads and the market will go away. You're done with this thing and want to move on. But there is a bad reason I want to focus on: "it'll give me freedom to do what I want". I think when people say this, they mean two different things: 1) if I have lots of money to take care of life's annoyances like bills and college tuition, then my mind will be free to work on anything 2) if I have lots of money, I can fund whatever I want to work on. The latter, I find to be an unconvincing reason.
My dad is retired. He talks about starting a foundation to help education in Taiwan, and seems rather passionate about it. He spends a lot of time watching and reading Taiwanese news. Given a chance, he'll talk your ear off about it. However, he says, "if only I had a million dollars", he could start his foundation. And the way he usually thinks of getting the million dollars is through the lotto. Now, my dad is no fool. He knows the odds. And I don't know if it's a generation gap in the way jokes are told, but if he's serious, it's a mental block that I see in some friends also. It's an excuse to do nothing because of the preceived notion that the external world hasn't given you permission.
By contrast, a couple years back Oprah had some special on TV about a new school she was building in South Africa. Though she put in a hefty sum, I was surprised to find out that she didn't put in all the money herself. She had other people help her with donations. That's why she had Nelson Mendela, Maria Carey, and others visit the school--to help donate. Even when she could pay for it all herself, she enlisted other people to help. In a more recent example, Breadpig and xkcd joined forces to put a school in Laos. They're putting in the work, yes, but as far as I can tell, it's none of their personal money.
Just because something takes a million dollars to do, doesn't mean it has to be your million.
Perhaps this is obvious to some of you, but I was a little bit surprised when I realized this. Growing up, I never thought about it too much, because in movies like Batman, Bruce Wayne funded his own crazy toys. So I naturally assumed that if you want to do huge things, you do it all with your own money. As a kid, I thought: If I wanted to build a Mechwarrior, I'd have to do it with my own money. If I wanted to build a loop-de-loop highway, I'd have to do it with my own money. If I wanted to build a giant chicken slingshot, I'd have to do with with my own money.
Of course, this comes with some amount of responsibility and constraint. Pissing away other peoples' millions is a sure way to get your legs broken, especially with money from a loan shark (or its million dollar equivalent). But I believe constraint in business and philantropy, as constraint in design, is a good thing to focus your efforts. Sometimes, personal money projects fail because they're not as readily subjected to market forces. A bad idea is kept afloat because there's a huge chunk of personal money that keeps getting dumped into it.
In the end, I just want to say, you have a choice. Don't let a little thing like not having a couple million stop you from doing what you want to do, as there's always more than one way to skin a cat. But if you want to build a pyramid for your burial site, then yes, please do that with your own money.
Comments [0]
Of course csh is evil! That's nothing new.
http://ooblick.com/text/CshProgrammingConsideredHarmful.html
This works just fine with bash:
rab://tmp $ cat Rakefile
namespace :foo do
desc 'lol'
task :bar, :num do |t, args|
puts "num = #{args.num}"
end
end
rab://tmp $ rake foo:bar[123]
(in /private/tmp)
num = 123
Hey look. Arguments in Rake. I've been looking for this for a while now. No more using env variables.
Comments [0]
(click image to enlarge)
This is one of the worst data visualizations I've seen. Problem is it looks pretty, so people send it around, but it's not very informational. Nor does it allow easy comparison of the data. First, it's not apparent that the light green and the dark green sections are the same thing until you realize it's an "O" from "Google", and actually adds no information. Second, what do the size of the circles represent? Is it combined daily spending or average daily spending per advertiser? It takes a while to find the circumferencial text, which you'd guess that it represents the amount of revenue from top N advertisers. Then the chart also mixes terminology. While spending by advertiser and revenue by google are the same thing, you need to do extra work to figure that out. Then, what the heck, the list of logos on the side is distracting. It's suppose to be the advertisers in the blue circle--the top 10 advertisers--but it sits firmly in the red section, which is the long tail of advertisers. Even more confusing, the $59,184,783 is red, but points to the blue list of logos. Lastly, the average daily spending is colored with the same position and weight as the combined daily spending, but it doesn't represent the size of the circles, which adds even more confusion.
The only thing they did right was to match the size of the circles with the amount of combined daily spending. Often times, people will draw these sorts of graphs using the diameter as the basis for comparison, which is misleading.
Comments [0]
Sometimes, you need to iterate over a number of jQuery elements. You pull something like this:
$.each($(".hello"), function() {
alert(this);
});
In this context, the "this" variable is actually not the jQuery objects. According to the docs:
Whenever you use jQuery's each-method, the context of your callback is set to a DOM element. That is also the case for event handlers.
This is helpful when you want all the attributes of a particular DOM element. You can call attributes property on the "this" variable (this.attributes) inside of the each() method to get all attributes of each element with the class hello.
Lastly, if you have a jQuery element, you can get all attributes by:
$("#some_dom")[0].attributes
Comments [0]
Comments [0]