HN user

johnnygood

149 karma
Posts1
Comments31
View on HN

There are two things here: business and technology.

AT&T and Verizon are both using "700MHz" spectrum. However, Verizon is using the upper-700MHz band and AT&T is using the lower 700MHz band. It is possible (clearly) to support multiple frequency bands, but it isn't free. Plus, AT&T is shipping 700/AWS devices. While Verizon has AWS spectrum, their current crop of devices are 700-only. So, it would mean AT&T supporting three bands 700L, 700U, and AWS.

Beyond that, carriers generally don't do roaming where they have service already. AT&T already has data service everywhere Verizon has LTE. It's slower data service, but it's still service. Voice works the same way. A company might have very low signal in an area, but as long as the phone can get any signal, it will prefer its home carrier. If they had the same policy with LTE, it wouldn't help customers. Heck, Sprint users are allowed to roam onto Verizon for data, but are restricted to 1xRTT (2G) when roaming on Verizon (save for legacy Alltel areas). It might be that Verizon's data roaming rates are so high for newer technologies that it would be unreasonable to offer roaming like that.

That's quite an accusation. It's incredibly unlikely that PC Magazine is risking the FTC going after it by publishing something paid for by AT&T without disclosing it. Frankly, that was an unjustified attack to discredit without providing a compelling counter-argument or other evidence.

Moreover, 40Mbps isn't unrealistic on an empty network for an absolute maximum. Average speeds of 22Mbps seem realistic given Verizon's 16Mbps performance and the fact that Verizon probably has a couple million customers on its LTE network. Likewise, Verizon's absolute maximum is 50% more than their average speed. On an empty network, I'd expect more divergence in speed from average to maximum making AT&T's ~85% difference believable. Likewise, if you visit wireless forums, you'll find plenty of Verizon users posting their maximum rates over LTE and seeing similar speeds.

And these tests were being done using Speedtest.net run by Ookla and endorsed by the FCC. While I don't know the specifics of how it works, it is the standard in testing broadband speed. Without evidence that it can be tampered with, I'd listen to the FCC.

The real question is how AT&T and Verizon's networks will hold up as more customers come on board. Last quarter, Verizon sold only 1.2M LTE devices. AT&T has just started selling LTE devices. We might see the speeds of both networks lowered as the number of customers on the networks increases.

Many people dislike AT&T. PC Magazine is testing an unloaded AT&T LTE network and a mostly unloaded Verizon LTE network. These numbers seem very reasonable given those conditions. It doesn't mean that AT&T will remain at these speeds or remain "better" than Verizon (if your purpose is to defend a cherished carrier). It's simply an initial test of an unloaded network that shows promise for the network. Whether that promise will be realized or not we'll have to wait and see.

In Rackspace's defense, this might be more of an issue of lack of community. Sometimes it's hard to get other people involved and excited about an open source project. It's a lot easier for them to go to NASA, Dell, CloudKick and others and get them to attach their name/logo to a participants page than to get real participants. OpenStack isn't something most web people will be interested in. It's infrastructure. Many, many companies need programmers and tools for them. Very few companies out there are saying, "you know, I'd like to build a server farm of 200 machines to give me a petabyte of distributed object storage with replication policies, failover, the works". Most people would rather just farm that out to S3 since, well, very few companies store that much. Like, OpenStack's Object Storage is a lot of work if you're just going to be storing 100GB. There's no way you could do it cheaper than the $15 S3 is going to charge for that storage since you'd need at least two machines.

How many of us could justify spending a lot of time on running our own object store rather than using S3? It makes sense that Rackspace is a lot more interested in it. I'd say that you'd need to be in the several terrabyte range before it makes sense to think about it. Clearly sites like Facebook, Flickr, and imgur want to run their own storage - they store a lot. But how many web firms do? I'm not saying it isn't an awesome project and I was excited when it came out. However, I'd have to be working on a site that stored a lot to justify building my own cloud storage cluster.

For what it's worth, it would be awesome for everyone if this engineer went on to create a Cloud Files and Cloud Storage competitor using Open Stack and worked with Rackspace without any grudge. Sometimes that's how openness happens. However, there tend to be fewer infrastructure vendors than web apps and so an infrastructure project like this can't be expected to garner the same attention as something like Apache or nginx which lots of people will be running rather than mostly a few infrastructure vendors. For most web operations, it doesn't make sense to pay a lot of money to build this infrastructure when you can get it for cheaper from Amazon, Rackspace, and others.

It might not be that Rackspace is being closed. It might just be that there are few operations that want to help develop these tools and most of them already have their own tools. Flickr and Facebook aren't going to drop their storage engine for OpenStack. Amazon isn't going to replace S3's software with OpenStack. SoftLayer does have their own cloud storage solution, but it isn't as widely used so there's a possibility there, if not a large one.

It's great that it's open source and if Rackspace keeps up the development and it's of high-quality it might start getting used by the next Facebook and Flickr style companies that need that type of storage. But it will happen slowly compared to the adoption of nginx, Django, MongoDB, etc.

The one issue with T-Mobile is it uses the fairly nonstandard 1870 MHz frequency

Actually, T-Mobile uses the AWS spectrum (in addition to PCS/1900MHz spectrum) which has the uplink around 1700MHz and the downlink around 2100MHz. AT&T and Verizon both have AWS holdings as well as Cricket, MetroPCS, and others. It's standard spectrum and MetroPCS and Cricket are actively using it for service today. AT&T and Verizon seem to be holding it to use for LTE in the future when increased capacity becomes necessary.

If you'd like to learn more about AWS spectrum and see some nice maps of who bought what, Phone Scoop has a great article: http://www.phonescoop.com/articles/article.php?a=99&p=14...

It doesn't break them. Safari doesn't accept cookies from across domains (by default). Safari still sends cookies to iframes across domains.

Even if Safari blocked sending cookies to other domains, it would still be possible for both commenting and the like buttons to work. On a low-tech level, rather than working by Ajax (which is how I assume they work - I haven't actually used them), they would work as a standard link or form to Facebook's site. Once not in the iframe and on Facebook's site, it would realize that you were logged in and rather than asking you for your email and password would record the like or comment. In fact, when you try to press a like button not logged in, a small window pops up asking for your email/pass so that it can log you in and do just that. It's easy to imagine that the window would pop up, offer a little "thank you for your comment" confirmation with a close button.

Facebook could also decide that it wanted to use Flash cookies which would work if Safari blocked sending cookies to other domains. Safari isn't in control of whether Flash is loaded in an iframe and a Flash cookie is requested from another domain. This is part of the reason why it's more significant on the iOS platform. Advertisers do use Flash a lot and that usage can be used to set a Flash cookie that the browser doesn't control and Flash doesn't have a setting to disallow Flash cookies from sites you don't visit.

The big deal is that many people see Yahoo as a company that time has passed by. There was a time when its properties were the tops. Everyone used Yahoo Mail or AOL, Flickr was the tops if you wanted to share photos, Yahoo.com was the home page of so many more and they used Yahoo search. Today, a lot of our community looks at Yahoo and sees a search engine they wouldn't want to use, a bloated homepage more about flash than utility, a Yahoo Mail that doesn't hold a candle to Gmail, etc. EXCEPT: Flickr. Flickr's still pretty good. Facebook has overtaken Flickr, but Flickr still offers more high-res options, decent topical search, a clean interface that's been spared a lot of the nonsense Yahoo is pushing, etc. But it hasn't progressed lately.

If Yahoo is to make a comeback, they need the types that have been in charge of Flickr (or so the community's reasoning goes). Flickr is the one thing we like that Yahoo's doing (well, maybe add Delicious in there too). And yet Yahoo is letting those properties languish and the talent that works on those properties leave. Sure, Google loses talent, but generally speaking I don't find certain Google properties to have an interface that is so markedly terrible compared to other Google properties. Our community looks at Google's ventures and while they might not understand social, we see that there's a decent consistency of engineering. However, we do look at Yahoo's different properties and many feel like they came from a different company - partly because Yahoo bought their way into Delicious, Flickr, and Upcoming (yea, I added another that I've almost never used).

Imagine that Google had bought YouTube and YouTube's interface and engineering was just so markedly better (to you) than the rest of Google's properties. Then the employees who created this, in your view, superior product started leaving constantly. You'd think: c'mon Google, you bought yourself into the good stuff and we want to those engineers bring that good stuff to the rest of your line, not leave with their products languishing!

People move around, but I think many of us feel that Yahoo has markedly varying quality depending on the division of the company. It might not have any actual significance and engineers might not be leaving those divisions more often than other divisions, but it does have an emotional significance for our community. Many thought that Flickr heralded a new Yahoo. It makes it feel like Yahoo doesn't get where it's gone wrong (in our ultra-hip, we know what's best not some CEO the investors have hired, why isn't the world listening to me as I type away at my keyboard on the internets way).

/Apologies for speaking for everyone; it's more just a theory.

The signature database is where they'll get more money from. However, this is still bad for them. It gives people the chance to look through the code for vulnerabilities and it allows competitors to look at any techniques they're using. But the worst part is that they're a computer security company that couldn't keep their source code secure. Clearly, accidents happen even when one has the best policies and such in place. Sometimes it's merely chance as opposed to an indicator of something in a statistically valid way. However, it's still embarrassing. I don't find that there's a lot of testing of the efficacy of anti-virus software out there and so purchases are partially made on faith (would love to know if I'm wrong here since I'd be interested in the results). Anyway, as a purchase made partially on instinct, this makes purchasers feel less happy in their gut (so to speak).

I guess I don't see how BankSimple can be truly better. First, there are already no-branch banks like ING-Direct. Second, Credit Unions exist.

BankSimple seems to be a no-branch bank like ING-Direct. They're presenting themselves as being better. How are they different? Well, they're pushing the idea of no-fees, better customer service, and better mobile banking. In order to achieve that, they'll have to be more efficient or accept a lower profit margin. Banks have healthy margins so there is some room there, but there are other industries with higher margins.

The second piece is that there are already not-for-profit banks. They're called Credit Unions. They exist to give their customers (who are their owners) the best deal they can. In order to be better than credit unions, they'll have to be significantly more efficient rather than simply relying on lower margins.

Part of what makes me skeptical is that they aren't creating a bank. They're partnering with currently chartered banks. This is probably because it's very difficult to create a bank and there's a lot of regulation to deal with. However, this somewhat limits what they can do to give me a better deal than a bank (since they're just reselling the product of another bank). Now, banks vary in how good of a deal they give you so part of their product might simply be getting you a good account under their brand. But part of this means that BankSimple won't be doing what banks normally do with deposits. Banks normally lend it out or invest it. BankSimple will be parking it in another account. So, if they aren't charging fees, how will they make their money? Maybe they've found an account that will give them 1% interest and they'll pass on 0.5% interest to me. However, why shouldn't I just bypass them? If they're doing things like refunding ATM fees, covering overdraft fees, etc. will the interest difference cover that?

I'm not saying that it can't be done. They stress no-fees and earning more interest. If they aren't lending the money out themselves, that will be hard to do - especially considering that they're claiming the best customer service, best software, etc. Where are they making their money? Not off fees and they aren't lending it out, but rather relying on other banks.

I'd really love to see their business plan since I assume they've addressed these things. Maybe wholesale banking exists and offers them a lot more. Maybe credit unions are woefully inefficient. I'm excited for their launch, but I'm not unhappy with my credit union.

ATT isn't saying that your iPhone is 4G. Your iPhone supports HSPA 7.2. ATT's network is HSPA+ but they don't have any HSPA+ phones yet. HSPA+ is what ATT and T-mobile are calling 4G.

This is something that has bothered me about my Ruby usage. A lot of the time, I feel like I'm writing "dynamic" code that really just needs to be pre-processed.

  class Cool
    [:ice, :soda, :snow].each do |item|
      define_method item do
        #some code
      end
    end
  end
There isn't a real reason why that couldn't be pre-processed. I don't know a ton of Java, but the idea of compile-time code generation is appealing. Does anyone know more about this?

I'm not trying to be harsh on your concept, but if one takes it a little further: "If the citizens can't be mustered to volunteer their taxes. . ."

One of the ideas behind government is that certain situations are prisoner's dilemmas and that a central authority can make sure that the situation comes out equally for all. Rather than having people volunteer taxes, we write laws forcing people to pay them so that some person doesn't get to skip taxes yet get the benefit of the taxes being volunteered by others. Likewise, Israel is compelling their citizens to do military service. Heck, if you're an American male, you were compelled to register for the draft from 18-26 years of age and notify them if you moved residences - under the premise that such registration would make a future draft more equitable.

I'm somewhat just playing devil's advocate here since I tend to think that putting one's life in jeopardy is different from being compelled toward other ends. Would you object as strongly if you were compelled to serve the military, but could choose a non-life-endangering position? Say, IT support? What if the United States compelled people to do Americorps for a year or two after graduation? Does that qualify as slavery?

I guess I'm curious whether your objection is a more libertarian "any time the government compels its citizens, it's a form of slavery" or a life-ethic "when the government forces its citizens against their will to put their life in jeopardy, it's wrong."

I have no internal knowledge of Zencoder, but. . .

Because Zencoder is running a service, they can have lots of boxes going at the same time. You might want to encode 50 things at once which would have to be queued up if you were doing it on one box, but can run simultaneously on Zencoder using their many boxes.

Likewise, Zencoder can fire up high CPU boxes that will get your videos encoded faster. The faster they turn around videos, the more capacity they have. If you're low (or bursty) volume, you can't justify that cost and you go with a small instance that's slow and queue things up if there are multiple jobs at once.

Plus, Zencoder is probably knows ffmpeg and the like better than you do. It's their whole company. Unless the focus of your work is video encoding, the likelihood that you will have any reason to be as knowledgeable is low.

I'm not saying that Zencoder is right for everything. They have certain economies of scale since they're encoding video for many people that kick in which mean that you can have 20 boxes encoding things for you at the same time for a few hours without having to pay for them all the time or going through the hassle of creating 20 encoding boxes and then getting rid of them so that you can use that capacity for an hour or so. That said, if you have a slow, steady flow that isn't too concerned with time or you're popular enough that you've hit those economies of scale yourself, Zencoder might not be right for you.

Oh, plus you might not want to deal with ffmpeg and such. Some people would rather it be abstracted away a bit.

I came here to post that too. The only thing I can think that means is that it is laid out better for large teams to program on without stepping on each other's toes. Sort of like a Java argument against dynamic languages - those cool scripting languages are fun and productive for an individual, but large teams would just screw each other up with that.

There really isn't "scalability" in client-side JavaScript. Scalability is usually thought of as the ability to serve many users at once (as opposed to speed which is how fast you serve one person). So, sure Ruby is slower than Python, but it doesn't matter too much since you can have 4 web servers and a load balancer rather than 2 web servers and a load balancer and you're fine.

However, client-side JavaScript isn't serving multiple users at once. It's trying to serve one user as fast as possible.

Maybe someone has a better explanation? It's early and I haven't had my coffee.

EDIT: It seems like YUI might allow you to pull independent pieces by calling YUI.use(some-cool-piece-of-functionality). That could reduce download times, but it could also increase HTTP requests and the associated overhead. That's pretty cool. If 90% of your users aren't going to be using a piece of functionality, it doesn't load that code, but can load it dynamically if needed. While cool, I don't think I'd call this more scalable - this is about speed. And I don't know if it would be faster in a meaningful way since JS can be nicely cached. I shouldn't have said that - in the absence of evidence from testing, I shouldn't make assumptions. Maybe someone else can shed some light on how well this works in the real world.

[dead] 16 years ago

Actually, high fructose corn syrup is a combination of fructose and glucose - the same sugars in most fruits.

For example, grapes are 52% fructose, 46% glucose, and 1% sucrose. Pears are 63% fructose, 29% glucose, and 8% sucrose. High fructose corn syrup used in sodas is usually 55% fructose and 42% glucose.

The "natural" sugar you're thinking of is sucrose. Sucrose is not the dominant sugar found in fruit. Fructose and glucose are the predominant sugars found in fruits and in high fructose corn syrup.

[dead] 16 years ago

You're right to be suspicious. Juices like orange juice and apple juice hit the same 40g of sugar per 12 fl oz mark that Coca-Cola hits. It calls into question the entire post. It should be noted that the subtitle of the blog is "News, Video Games, Movies, Technology and Humor". This might be a humor post.

Coca-Cola isn't good for you. It's high in sugar, has minimal nutritional value, and its acids are terrible for your teeth. However, the amount of sugar in it is not out of the ordinary (when compared to 100% juice products). In fact, grape juice has nearly 50% more sugar.

I find it a little odd that an open source project seems so opaque. Maybe I'm missing something, but there seems to be no concrete news on Android 2.3. This article says that Nexus one devices will get 2.3 in the next few days. However, TechCrunch doesn't have anything under their "android" tag talking about 2.3 before that (http://techcrunch.com/tag/android/). One would think there would be a better flow of information - that it would be easier to follow this. It's one of the most widely used open source projects and yet the best we have are rumors on it.

I'm not criticizing Google or anyone, but it just seems weird that something that is so high profile and open-source barely has rumor-level information available about its development.

I decided to look through your comment history to see what postings you've been downvoted for. There's a decently common theme. Usually they have flippant remarks and/or curse words.

"Microsoft what have you been smoking?"; "You are so fuckin wrong"; "OMG so much stupidity."; "Windows Phone 7 is a really good vapor-ware. And ridiculous patents + broken patent system are the key to success" (when Windows Phone 7 had already shipped to OEMs); "I guess if they get killed, they had it coming."; "(YAWN) You could have written that code in most languages with most databases years ago!"

We're looking for a level of respect that isn't shown by those phrases. The Hacker News Guidelines (http://ycombinator.com/newsguidelines.html) are a good place to start:

* Be civil. Don't say things you wouldn't say in a face to face conversation.

It's common to bash people on the internet, but we tend not to like that here. We do disagree here. Recently there was a large thread on Ubercab and whether their service is so ethical and responsible. Lots of people with lots of differing viewpoints were upvoted. They raised issues (rather than just being blindly for or against someone). It was enlightening to see the nuance and insight that lots of different people brought to the discussion and how complex the issue was. You can disagree without attacking a person.

* When disagreeing, please reply to the argument instead of calling names. E.g. "That is an idiotic thing to say; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."

Comments that include things like "OMG so much stupidity" just make people feel attacked and defensive. The statement doesn't add to the discussion and just makes things more combative. It's as if you're trying to discourage people from disagreeing with you because you'll call them stupid if they do. "I think this is important to consider"; "OMG, you're just so stupid". It isn't helpful. Plus, there are plenty of places on the internet if your interest is flamewars.

* Resist complaining about being downmodded. It never does any good, and it makes boring reading.

Something I'd like to point out: http://i.imgur.com/gNdLh.png

Make sure you test your fonts on Windows both with and without Cleartype. A few of the trendy new sites are using this font now and it's near unreadable on Windows without Cleartype. The site looks awesome and I'm looking forward to using it (excellent timing in my life). However, the font issue is going to be a big pain for Windows users.

Even with Cleartype (http://i.imgur.com/EQNr5.png), the fonts look bad. Anything that is rounded on the top (2, 0, 9, S, etc.) has an odd bump in the center. While it's more readable (due to the darker rendering that Cleartype is giving it), it's quite jagged.

I'm mostly posting this since I'm guessing someone from CarWoo will be reading this thread. I've always wanted a service like CarWoo and I think you've got something really great.

--

I've found another thing: when you're selecting a style, you're only allowed one. Rather than making it radio buttons, you've used checkboxes and popped up a JS alert when I select two. It means I have to de-select the original before changing my mind. You could keep the checkbox look while making it behave as radio buttons would.

EDIT: During the process (I haven't paid yet), it didn't ask me what options I wanted with the car. That means that if I get a quote for the car, it isn't the quote I want.

The other problem I see is that I can't compare the deal I'd get on a Camry and an Accord. Often times, people make decisions between two models based on price rather than deciding between the two models and then looking for the best price on that model. I was told by the chat help on your site that I'd have to purchase two plans if I wanted to get a quote on two different cars. During my car buying experience, I'm likely to narrow it down to 2 or 3 cars in the same class and then want to see the price difference. If a dealership is giving me $1,000 less on a Camry (which might have started out with the same MSRP), that might sway me away from the Accord.

The beauty of this is that it's a way for them to let people try Ubuntu Server quickly and easily. While I don't remember the articles, we've all seen the ones talking about how demand isn't linear. Lots of people will try something free that won't try something that costs even a cent. So, Canonical will pick up the 2 cent tab (the cost of one hour of a Micro instance). Many will try it. Heck, if a million people try it, it will cost Canonical $20,000. That's a lot of exposure for a small amount of money. Companies are paying way more than 2 cents per click in advertising. Booting up an instance to try it out is a lot more engagement and investment in the process than an ad click.

Canonical is getting smart people to engage with their product for several minutes (if not the whole hour) for a mere 2 cents. That's one of the best campaigns I've seen and far more effective and cheaper than AdWords for what they're doing.

It's not surprising that they've sold so many. The Galaxy S seems to be the first Android device that the maker hasn't gone the exclusive route. In the US, yes, they did rename it and make minute changes for different carriers, but its substantially the same phone released at mostly the same time.

It's about time that my choice in phone didn't dictate the carrier I'm tied to. Samsung gives me that choice in a way that Motorola makes me tied to Verizon, Apple makes me tied to AT&T and HTC ties me to a various carrier depending on which model of their's I want.

I was really hoping he Galaxy S line would succeed even if just to prove that you can have a non-exclusive phone that's a big seller.

Google Apps Standard might be different. Google Apps Standard is offering you the same thing that Google already offers for free, just using your own domain. It still has ads and such. As such, as long as Gmail, Google Calendar, etc. remain profitable, then Gmail for your domain, Google Calendar for your domain, etc. should have the same level of profitability (and cost). The additional service that Google is offering via Google Apps Standard is the ability to use your own domain which really doesn't cost Google.

GOOG-411 wasn't ad supported so they didn't make any money off of it. It seemed like it was being run in order to collect voice data to create better speech recognition algorithms. Now that many have smartphones, they're getting that data in a cheaper way and, ultimately, in a way that they can monetize easier. Rather than paying 800-number charges for everyone to call into (and pay while the call was connected), people are using their iPhone and Android devices to give Google voice data.

I think Google Voice is the more likely service to get canned. Phone charges can become burdensome while bandwidth is essentially free when you're Google's size (since I'm guessing they're working off peering agreements more than buying bandwidth). Even if they were buying bandwidth, bandwidth is something with lots of competitors and very low regulatory charges. Phone connections are different.

[dead] 16 years ago

Rails is based around the idea that the simple cases don't need a lot of explanation to the computer. So, let's say that you have an Article model.

  class Article < ActiveRecord::Base
  end
There's no need to do things like 1) tell it which database table to use; 2) tell it the setters and getters you want. Those can be inferred. Well, it's called Article so it'll use the articles table and we're going to want a setter and getter for each column.

Now, that can be overridden. You can call set_table_name to explicitly tell it to use a table, you can add additional methods, you can override the default setters and getters, etc. That's the idea behind Rails. You need a programming language to describe the decisions you're making that affect how your application works, but for a lot of things you're doing the same thing over and over and there's no reason to keep doing the same thing over and over.

Let's say that you wanted to (by default) order the articles by their creation date:

  class Article < ActiveRecord::Base
    default_scope :order => "created_at DESC"
  end
You've now defined some business logic so that when you call Article.all, you get them in that order. On the models, you can define any amount of logic you want by creating instance or class methods. In fact, all of those fancy keywords are just mix-ins - method calls that add methods to your class.

This is why it looks like Rails is lacking a bit of business. When you call belongs_to :apple, the belongs_to method gets executed as the class is interpreted and that belongs_to method is something like:

  def belongs_to(associated)
    define_method associated do
      associated.to_s.camelize.constantize.find(send("#{associated}_id"))
    end

    define_method "#{associated}=" do |val|
      send("#{associated}_id=", val.id)
    end
  end
Now, it's more complicated than that (since belongs_to adds some additional features), but that's the basic premise. You have this foreign key association and, most often, it's a simple association where you want to define a setter and a getter for that association. So, the belongs_to method takes the name and pops out two methods based on that name. The first is the getter and it makes the name you input into a camel-case and gets the constant with that name. It calls the find method on that constant and inputs the foreign key value to the find method. Likewise, the setter (setters in Ruby are methods that end with the equals sign) and sets the "name underscore id" attribute on the model to the id of the associated object.

But you could just as easily define the methods yourself in the Article class rather than using the helper mix-in. Likewise, if you have business logic that doesn't fit in with what's already made, you can define any methods you want on your model classes.

The same goes for controllers. Controllers can be pretty small. If you're just trying to get the latest 10 articles, there isn't a lot you have to do - you need to fetch them from the database and store them in a variable. This is another one of those areas where Rails doesn't ask you for things it can assume. Instance variables (which start with the "@" symbol) get passed to the template, local variables (which have no prefix) don't go to the template. The template that gets rendered is the one named "controller/action". Of course, you can override that and call render :template => "xyz/abc" if you like.

I'm sorry if this seems a little all over the place, but I'm not sure what kind of business logic you're looking to implement. If you give me an example, I can provide some insight. However, from what you've said, it looks like you've just seen the basics of what models can do - and that's because a lot of the intro code is "let's build a blog" where there isn't a ton of business logic. But you can make any methods (class or instance) you like to do things to your data. Rails creates the basic cases for you - because the basic cases are well-understood. However, you can make them more complex:

  class Article < ActiveRecord::Base
    def title
      if Time.now.day == 1 and Time.now.month == 4
        return title.reverse
      else
        return title
      end
    end
  end

So, I encounter a lot of programmers that have read a little and consider themselves to really know what they're talking about. However, they can't explain how an index works - not even in simple terms. Like, if I'm looking for someone with the username 'johnnygood', why would indexing the username column make that lookup faster? Even a very simplistic answer like, "an index orders the information so that the database server can jump to that record binary-search style rather than looking through every row" would be wonderful.

In that light, I think that programmers should know the basics of computer science: what references are; how a linked list works; a little about tree data structures; stacks, queues; basic sorting and searching stuff; etc. I'm not saying that you need to be able to talk about everything off the top of your head. I just think a familiarity with the theoretical concepts is good.

On the other end, I see a lot of people who know that PHP interprets strings using single quotes faster than double quotes, but have no idea why NoSQL might scale better (and might actively think it's because of the SQL language).

I want someone to say "a lot of the NoSQL technologies work by having you pre-compute data so that your data structures have the information you want to display together stored together in a structure that can be read more quickly like a hash." It isn't magic.

In DHH's video on Big Think (http://bigthink.com/davidheinemeierhansson), he started talking at one point about whether there was a baseline past which you can't make things easier (see the quote below). The premise was that Ruby and Rails have made web development easier and more accessible to less technical people. He argued that there is a limit to how low you could lower the bar because, at a certain point, your application is all about the thousands of little decisions that your code describes.

"There is a natural, physical limit where at the end programming is just choices. How should the program work? What should happen when you click this button? Those choices are ultimately the key to programming - and you can't get out of that. Which is also why it's a bit of a pipe dream to think that 'oh, there's going to be these magical new environments where somebody that knows nothing about programming will be able to just drag and drop a few things into a box and then voila! you'll have the most amazing program in the world. No. It's really not going to happen like that because in order to have the most amazing program in the world, you have to care about a thousand decisions and recording those thousand decisions takes a programming language. So, there is a lower limit to how simple it can get."

The reason why a technical co-founder is so necessary is because every application is going to have thousands of little decisions that you are describing in your code.

A technical co-founder doesn't need to know everything about computer science. They need to be able to describe those decisions. Often times, if you're hiring a programmer to implement your idea, you don't actually describe things accurately. You come up with things to say like, "show the article to people who are interested in it." What does that statement mean? Do you email the article to interested people? Does it show up on the homepage for those people? A special page? How do you identify "interested people"? It keeps going on. Even "simple" things are often complex - especially if you're implementing a niche application.

You can create mockups, you can list "requirements", you can have the programmer ping you when they have questions, but ultimately programmers aren't translators. Programmers, in order to be successful, must be able to make those decisions or you'll die a death of a thousand cuts as they ping you over every little decision. The problem is that people have an idea in their head that they think just needs to get "translated" into computer-speak. However, in reality, they've yet to describe most of what's in their head - if the minute details are there at all.

Even if none of that co-founder's code make it past the first few months, they're able to describe the choices in an unambiguous way that mockups, emails, requirement specs, etc. simply don't.

Basically, not having a technical founder means that you don't have any founder that can describe the application in the detail that's required to create something really great. It doesn't mean it's impossible and that's not to say that input from non-technical co-founders isn't important or that they can't have as meaningful an impact as technical co-founders. It means that if you're two non-technical co-founders looking to start something good, you probably need to bring on a third co-founder who is technical because you need someone you feel comfortable with making those little decisions and working with as a peer rather than in a hierarchical way. Because they're going to have to work on all those little decisions with you that mockups and specs just never address.

Code is a way of describing all those little ways in which your application works, not translating an idea into computer-speak.

I've used both pretty extensively. The authentication system in Django isn't something to be that jealous of. It's not that it's bad or anything, it's that sites have very different authentication needs and it isn't a lot of code. Examples: some sites need email verification, some don't; some sites want authentication by email address, others username; some sites want usernames, some don't (ala Facebook). And, it's important to note, Django really only takes care of the model part (it doesn't provide the templates and controllers/views). Creating a User model in Rails isn't that hard.

The main reason (in my opinion) that Django has an authentication component is because it has an admin section. That requires authentication. The admin section is something to be jealous of because it's a lot harder to duplicate. Creating a user model isn't that hard. While there have been Rails projects trying to implement an admin system as nice as Django's, they aren't as nice and clean as I'd like. And that's a lot more complex than a simple User model.

And yes, I'm aware that one can do lots of things to extend the Django User model. Examples: while the User model doesn't require an email, you could have the form you build require an email; in Django 1.2, you can have "@" and other email characters in usernames and then just reference the username attribute rather than the email attribute when you want the email; in your controller/view, you could first search for the user by email and, if found, grab the username from that object to pass to the authenticate method. It's more that a User model isn't such an incredibly complex piece of code and I find that different sites often want slightly different things that make it just easier to make one's own.

TL;DR: Be jealous of the admin section, not the authentication system.

Banking is a highly regulated industry and so products usually stop at national borders. Even banks that operate in multiple countries (RBS/Citizens, Santander/Sovereign, HSBC, etc.) basically operate as separate companies in each country.

It's expensive and time consuming to comply with so much regulation. If BankSimple does well, I'm sure they'd be happy to expand internationally, but at this point it's questionable whether the public will gravitate to BankSimple. If they tried to launch in multiple countries from day 1, they'd be spreading resources very thin dealing with all the different laws. This way, they can launch, be successful, and expand.

In some ways it's like physical businesses. You wouldn't expect a new fast-food chain to launch with 50,000 stores worldwide, would you? Unlike the web which is decently universal, they need to wait a little to catch on and grow.

I was in the same situation and went with the Captivate (and Im in a pizza place posting from it right now). Its a really nice device. Its my first smartphone so I cant fully compare but I can say why I chose it.

1. The Galaxy S is going to be a big device on many carriers. 2. Reviews said the battery life is the best around for android. 3. I wanted background apps.

The display isnt quite as sharp as the iPhone for text but it is a joy to use. Im not so thrilled with the apps I cant uninstall but Ill probably root the device to take care of that. Oh and the touch mechanism is really good. Ive never written something as long as this post before and Ive only had 4 mistaps.

I cant compare it to other experiences but Im very happy with it.

http://ruty.rubyforge.org/

Ruty hasn't really been maintained, but it is pretty close to Django's templating system. Apparently, there's even been a little work to get it together with Sinatra (http://github.com/eladmeidar/sinatra-mvc/blob/master/app/hel...). I haven't used Sinatra, but I have played with Ruty and it's pretty nice and supports things like Django-style inheritance. It's a pity it never took off and this isn't a complete answer to your desire, but it might be an interesting place to look around.