HNHacker News
TopNewBestAskShowJobs

jblake

479 karma · joined March 20, 2012

Working on guestmanager.com
submissionscomments
jblake··on Rails 5.0: Action Cable, API mode, and more
Anyone else's bundle update spazzing out on resolving dependencies? Guess I'll have to wait until other third party gems get the Rails 5 memo.
jblake··on Ask HN: Best payment processor?
I've actually talked to TD about that before. You'll most likely get better rates by going to TD directly - one less middleman... but working with Beanstream can also have its perks. If you are doing any aggregation (marketplace payments) then you will definitely need to get the merchant account from Beanstream as TD won't take on that kind of risk. TD does not seem to offer true Interchange+ pricing either. Chase Paymentech does (I was quoted interchange + 5 cents). If you have the time and energy, I would get the MA from Chase, and the gateway from beanstream.
jblake··on Ask HN: Best payment processor?
-We have a high volume of payments with low margins.

Based on this alone, you need to get your own merchant account and gateway. I highly recommend Beanstream in Canada for the gateway. A proper merchant account (interchange plus pricing, either Chase Paymentech or TD are good) will boost your margins. For example, processing a debit card has a much lower interchange rate than a credit card (I don't think the rate is as good as the USA, but its still 1%+ difference).

Beanstream will also give you the option of Interac Online - which is a flat transaction fee between 20-50c.

jblake··on Stripe now supports ACH payments
I wish the pricing was more competitive. In the US, I've used Beanstream - which is $5/mo + $0.25 flat per transfer. In Canada I've used Versapay - $0/mo + $1 per transfer.
jblake··on How John and Patrick Collison Built Stripe
With that kind of volume, you should go straight to a big bank - like Chase Paymentech or First Data - and getting interchange plus rates. Then you can plug your merchant account into whatever gateway you want that has the best API docs, such as Authorize.net or Braintree (I don't think Stripe supports bringing your own merchant account). Curious why you went with an ISO? Risk-related - TPPA maybe? True that ISO's are usually willing to take on more risk than the big guys.
jblake··on Ask HN: How do you track issues, todos, features?
I'm a solo developer.

For short term, post-it notes and legal pads. There's something for me about having those TODO's constantly in my face. I always get them done. And it feels so good to crumple that ball of paper and throw it into the bin. Each sticky is 5-30 minutes of work.

For longer term/planning: Trello. When I'm ready to tackle something, I convert the Trello card into a sticky note, archive the card, and get to work!

Sometimes when I am feeling super unproductive/lazy, and have a buildup of sticky notes, I'll convert all those sticky notes into a neat 1 page legal pad page - handwritten, with checkboxes. By the time I'm done doing converting (and crumpling up all those sticky notes!) I feel rejuvenated enough to work on that second pass.

I love throwing stuff away. When I am SUPER unproductive, I'll tear away the blank part of the sticky note and throw that away.

jblake··on Ask HN: What type of phone system do you use?
Mightycall looks solid. I currently use TalkDesk - but do not like it - so am also in the market for a switch. I also found Bitrix42 but seems to offer way more features than I need. any others out there?
jblake··on Ask HN: How many hours do you work?
Worrying or thinking about burnout would condition me to inevitably burnout. It doesn't really even enter my mind, because I know it will just make me and the business weaker. I simply look at it like: I want a successful business that gives me freedom to do what I want. Bootstrapped, staying small, and making money is the path towards that for me. I've been going 100% for 4 years, so I think if I were to ever burnout then that would have happened already. I take "workcations" somewhat regularly.
jblake··on Ask HN: How many hours do you work?
I run my solo bootstrapped SaaS business and have put in consistent 80-100 hour weeks (total computer time) for the past 4 years and am 60-85% "productive" (according to RescueTime). Of course there have been some odd weeks of only 20 hours (...and some 120). Not really proud of it. It is what it is. It's been working. I think in the next 2 years I'll be able to figure it all out and taper down (which I really look forward to!). It's just that every hour adds such clear value to the company... so I keep going. The hours come easy when its all yours. I've had a programming job before and could hardly stay awake for the 8 hours... let alone be productive!
jblake··on Ask HN: JavaScript framework that I can use “right now”?
$(document).on lets you keep your javascript source files relatively flat because the event handler listens on the document, rather than an individual element. So even if the element is not currently on the page (loaded in via AJAX for example) the $(document).on handler will still pick it up. You never need to bind or unbind event handlers manually. The rails recommended way is to respond to the JS format and do server-rendered javascript.... but I tend to prefer using a simple data-transport-only (JSON) api, then do the client stuff on the client side.

Simple example:

  $(document).on 'ajax:success', '.guest-form', ->
    notify 'success', 'Guest updated.'
    $(@).parents('.modal').modal 'hide'


  $(document).ajaxError (event, jqxhr, settings, thrownError) ->
  handle_ajax_error(event, jqxhr)


  @handle_ajax_error = (error, xhr) ->
  if xhr.status is 422
    error = JSON.parse(xhr.responseText)['errors']
    notify 'error', error
  else if xhr.status is 500
    notify 'error', 'Error communicating with the server. We have been notified.'
  if xhr.status is 401
    notify 'warning', 'Session has expired. Redirecting to login...'
    window.location = '/login'
  if xhr.status is 403
    window.location = '/access-denied'

So if you load in content via AJAX (I do this a lot for table views of data and the user wants to see a single record), rather than go to a separate page, I do an ajax call, put the result into a Twitter bootstrap modal, show the modal, and when the bs.modal.shown event fires, that "single javascript function" with the modal as the parameter is called, and it initializes all the javascript needed for that particular DOM container.

Example:

  $(document).on 'shown.bs.modal', 'a[data-toggle="tab"]', (e) ->

    $modal_body = $( $(e.target).attr('href') )
    general_init $modal_body
The general_init function will initialize all my selectize elements (among other things) as such:

  general_init = ($container) ->
    add_selectize $container.find('input.membership-plan-select'), $.extend(true, {}, Selects.MembershipPlanOptions)
So when writing forms, lets say to create a new "Event Ticket" I simply plop in a text field with a class of "guest-select" and I instantly have an AJAX powered search field to find/create a guest to assign that ticket to.
jblake··on Ask HN: JavaScript framework that I can use “right now”?
Thanks! That's a really good point - and it's currently one of the codebases biggest weaknesses. I use DataTables EVERYwhere. They're fantastic - I have tons of places where I need to show thousands of records, so I use server side processing for pagination, filtering, sorting, etc. However, they don't look good on mobile, and the responsive tables plugin is not the greatest. What I actually do (for now) is wrap the table in Twitter Bootstraps .table-responsive class, which basically creates a viewport for the table on mobile. You scroll left/right to see hidden columns. Works pretty well. Long term, I'm not sure what I am going to do as there are no other table plugins with as rich a featureset and I prefer not to write my own.
jblake··on Ask HN: JavaScript framework that I can use “right now”?
jQuery.

I'm the sole developer on a "rails monolith" (254 tables, 540 models/classes, 4 years old), with enterprise-like architecture (ecommerce, event ticket sales, booking engine, access control, etc) and I'm positive the only way I'm able handle it all is because I stick to basic jquery.

My secrets:

- The rails-ujs adapter

- $(document).on('event', '.element', ..) is fantastic. Never debug events ever again

- selectize select's for "find or create" relationships

- cocoon gem for nested form relationships

- parsley for form validation (hooks into html5 validators)

- bootstrap 3

- datatables.net + following the pattern of ajax-datatables-rails (gem - separate classes for each table)

- a single javascript function that accepts a DOM element (body, a modal, section) and initializes all the elements the app knows of (selectize elements, date/time pickers, etc) inside that container

- above function is hooked into by bootstrap's 'bs.modal.shown, bs.modal.hide, tab's, cocoon's 'cocoon:after-insert', etc.

rake stats says: 33k LOC models, 8k LOC controllers, 23k Javascript (though this must be all plugins. I'd guess 3-6k lines of javascript, max)

Needless to say, I don't believe in the frontend javascript hype.

jblake··on Stripe in Canada
I say "High Risk" because that is how it was evaluated at the time. We have had our Beanstream account for over 6 months with zero chargebacks, a 100% clean record. If a Stripe rep appears here and makes an offer - jeff@goodnights.me - you have my business.
jblake··on Stripe in Canada
I'm currently on Beanstream with terms that were acceptable at the time (hard to get a Merchant Account) but are now completely unacceptable and am interested in a switch.

- 5% 6 month rolling reserve //

- 2 week + 5 day lag settlements //

- 2.8% blended + monthly fees.

Am I crazy to not switch, or should I present this to Beanstream and get better terms? Other than my terms, I have nothing but ecstatically positive things to say about BS.

Note: my terms are like so because of the nature of my business model. It is high risk, like a TPPA (third party payment aggregator). Think: Eventbrite. Appreciate the feedback.

jblake··on Scalable Image Processing Using Hosted Cloud Services
The way I understand their pricing (.05/hr, .10/hr, .15/hr based on minutes jobs get pulled off queue), I'm essentially paying 3x more for priority queuing that I can bypass by setting the INTERVAL=3 in Resque. Hm. This an expensive way to set a variable.
jblake··on Scalable Image Processing Using Hosted Cloud Services
What would be the advantage of using this vs using Resque + S3 + heroku worker auto-scaling?
jblake··on The Starter, the Architect, the Debugger and the Finisher
I value the ownership of a project so much - the idea that when it becomes big, I can say, "I made that." Like the British guy who fought WWII with a sword and claymore. Challenge is rewarding.

Also, reading the Fountainhead was a game changer for me.

← PreviousPage 2 of 2