668 karma · joined August 12, 2009
Previously, co-founder and Chief Engineer of Offbeat Creations, sold to Playdom in early 2010.
Earlier: 10 years at Microsoft, then various Seattle area startups until I started Offbeat Creations in 2008
http://blog.craz8.com Twitter: http://twitter.com/craz8 email: tom at craz8 dot com
However, I don't think this solves the initial problem, and that is that you have to develop a trust with the people writing the Gems.
For the Rails gem, I'm just going to trust those guys, because of their track record, but for a random gem writer with their first Gem, I'm going to read the code of that gem to ensure that it does what it says it does.
Having your own gem server doesn't remove this step, but it does put a roadblock in to stop a gem writer putting in bad code once you've decided to use it.
So this is a 2 step process:
1. Read the Gem code (or trust some other way)
2. Create a Gem Server to isolate from un-wanted updatesA framework or system with only 10 users will never have the depth of security and bug fixing coverage that a larger, well used system has.
I've just started using the Turkee gem, and this needs the mass-assignment gem with Rails 4 to work correctly. Since I'm new to this one, I need to spend more time with it before I can send in some pull requests to provide patches
The second form has to perform a pattern match with the controller and action names to work out which method to call, and then call the method generated by the first form.
This extra pattern match is the overhead, and with thousands of routes, it clearly adds up.
Always use named routes - the first form.
Stripe is good, as you'll never see credit card numbers, so you'll have no security issues to deal with in that area
Check out http://railskits.com/saas/ for the SaaS Rails Kit
* Disclosure - I'm friends with Ben, the owner of RailsKits, and have done work for him in the past.
Making this automatic is the key part - if you don't get burned very often, you'll eventually forget to do the right thing manually and open yourselves to badness.
Try it now.
Thanks
Sign up at my landing page to here more when I'm closer to launch
For a loan, under a year, my first thought is a percentage - maybe 5-10%.
If you purchased equity, then you'd be looking at getting a multiple of your money back - but not necessarily on your schedule.
Next time, get the terms up front.
If someone offered me a loan with the terms of 5X on payback, I'd walk away immediately. You need to find out that both sides are not on the same page before the money changes hands. Now that you are in a relationship, this could get quite messy if the expectations aren't similar
Interest rates all go down as stability goes up. Typically, buying government bonds gives the best stability, but current 10 year US bond rates are paying under 2%.
The more risk you are willing to take, the more you may earn, but then the more you could lose.
Only you know how much risk you are willing to take, but younger people tend to be able to take more risks, because, over time, the ups and downs of the market flatten out. And if you have 40+ years to leave the money, then the better chance you have of being in the market for good times as well as bad (Oh yeah, timing the markets - to only get the good times - never works over time either).
One absolute certainty though is to make sure you pay as little to the people managing the money as possible. If you buy a mutual fund, the difference between 0.2% annual fee and 1.2% annual fee is astronomical over time.
I have a bunch of money tied up in the Vanguard Total Stock Market Index Fund which tracks the total stock market and charges 0.17% per year. This type of fund, again, over time, beats out almost all actively managed funds. Managed funds will try and bamboozle you with how they beat the market last year, but if you didn't invest the year before, that doesn't matter.
One technique I also use with extra cash is to buy shares of companies I personally have good experience with - e.g. Apple, Starbucks, Amazon. This is much riskier, but can payoff quite well.
I am not a financial advisor!
(Oh yeh, in the US, you could setup a Self Employed Pension plan to save your money tax free, but this has restrictions on when you get access to the money, but it's something to think about to turbo charge your savings)
Good Luck
As a professional, if I can't find a way to contribute my expertise in a timely and efficient way, then I'll get on with something interesting and more lucrative. Which is a shame, because there is a lot of useful stuff on SO, and I'd like to contribute at a high level, but I'm not willing to put in 2 hours a day to find the 1 or 2 questions that would be worth the time.
I'm an older programmer, and this may be one explanation of why older programmers answers on SO aren't as useful - the good ones are not the ones answering questions!
This is just an anecdote, but one that certainly applies to me
One thing that programmers forget is that, at some point, you weren't good at programming, but over time, you learned and now you are pretty good.
Your business/social skills may be at that same starting level, and this isn't something you read about on the internets and are immediately good at.
Start now, plan on doing this over time, and learn to get better at it. It takes effort, but it will be worth it.
https://twitter.com/rollingdale
Since they're in BC, they can ship to Alberta too!
Google Glass will make this hack so simple, the casino's will have to ban them from being anywhere close to a roulette table to reduce team cheating possibilities.
Rails apps on Heroku need a number of non-default configurations to work well, and this is one of them.
Thanks for this - I'll add it to a project this weekend and probably do an updated version of my blog post on this subject: http://blog.craz8.com/articles/2012/12/7/heroku-config-for-p...
I'd guess that the French Minitel service had this available even earlier.
Github is creating value with their ecosystem, which is great for them, and, since the code is all in Git, not a complete lock-in if you choose to move.
All you need to do is:
update your Gemfile to the correct version of Rails
run **bundle update rails** in the root of your directory
then **git commit -am "update rails"** to save the files
then **git push heroku** to update on Heroic
The Heroku email has the information for all the Rails versions - if you are running 3.1.4, then you need to update to 3.1.10, if 3.2.X then 3.2.11 is your new version - this should be a safe update. Just pick the latest number for the X.Y version that you currently have in your Gemfile.WebPagetest.org shows you the first time call which is generally awesome, but in this context will also show you the second visit experience which takes into account the content cache settings.
The key part is that, for public content (and blog posts tend to be public), the Rack Cache can be used to serve these pages directly from the cache store (usually Memcache) with minor database traffic needed, even for people who have never seen this content.
That last part was the surprise for me - surely ETags are only used by return visitors! Rack Cache makes ETags work for new visitors too.
I think I can get my blog to run almost as fast as a static site, and I'm working towards getting that done and documenting it as I go.
(In addition, Heroku seems to be adding Varnish headers to my responses. They say they don't use Varnish in Cedar apps, but this is clearly not correct)