stevenou's comments

stevenou | 8 years ago | on: How I Reduced My DB Server Load by 80%

I think ORMs are there to make developing easier - but doesn't obviate the need for the user to understand how the underlying database works. For one based on my understanding of their use-case, could've used a validation :on => :create only. Likewise, if case-insensitivity is needed, they can enforce that on record insertion or, if they're using something else like MySQL, just use case insensitive collation. The fact that I know how to write SQL doesn't mean it's always easier/faster/better than using an ORM...

stevenou | 12 years ago | on: Ask HN: Who is hiring? (October 2013)

TouchOfModern (https://www.touchofmodern.com) - San Francisco, CA

Senior Developer

WHO WE ARE

We are a start-up located in San Francisco that curates modern designed products for 5-day sales for our members. Our goal is to help people discover unique and beautifully designed products while getting them at a great price. The site is growing extremely rapidly, adding thousands of users daily and dozens of design/manufacturing partners each week. The company is early-stage and VC-funded, looking to bring on sharp, hardworking talent with competitive salary. You'll have a chance to work directly with the founders and be part of the core team.

EXPERIENCE YOU SHOULD HAVE

+ this is not your first gig

+ you have experience with building end-to-end products

+ you are an expert in rails, jQuery, objective-c and MySQL

+ are experienced in scaling rails (1M+ visitors/month) and building on the android platform

WHAT YOU'LL BE DOING

+ working across all channels including web, iPhone, iPad and android

+ driving operational efficiencies including fraud detection, logistics automation, advertising integration, improving metrics measurements, bug fixes, etc.

+ creating new features as the company grows including scaling the code base, a/b testing, writing integration tests, setting up search servers, personalization, etc.

+ communicating directly with the CTO daily

If you fit the bill, please apply with:

+ resume highlighting what you've been up to the past couple of years

+ cover letter explaining why you're interested in e-commerce

Use Subject Line "ToMo Senior Developer"

Send your application to Steven at [email protected]

stevenou | 13 years ago | on: Fab stops sending you emails you don’t read, even when you don’t ask them to

Yeah I work for a daily email site and we do this too. We just don't send another email letting them know - that's more spam! I was surprised that this was considered newsworthy... Most people in the industry do this. It's definitely considered best-practice - it reduces costs, improves metrics, and probably doesn't subtract much value compared how much it costs to keep sending them emails.

stevenou | 13 years ago | on: MixPanel tracking API down

I completely agree. I woke up to some crazy long page rendering time on NewRelic and couldn't figure out what was going on... until I saw the huge backlog of mixpanel events on my db. Not only is it making page rendering slow, even worse, it's tying up my background workers for 30 seconds at a time, causing a huge backlog on ALL my background tasks.

stevenou | 14 years ago | on: Show HN: Our first iPhone app, built entirely in JavaScript

Hey LokiSnake that's some good feedback, thanks!

I have to say I had not noticed the first issue. But now that you mention it I guess it's true.

The second issue is something I have noticed occasionally. I guess I'm always testing on WiFi so it tends to load quickly enough that I never considered it problematic. Definitely worth taking a look to improve the usability there.

We tried to follow iOS design conventions as much as we could, but I guess we haven't quite nailed it yet!

stevenou | 14 years ago | on: Show HN: Our first iPhone app, built entirely in JavaScript

There is a module framework, but since the Titanium framework already created a CLLocationManagerDelegate in their GeolocationModule, I didn't see a clean way of adding geofencing in a separate module. So I hacked it right into the existing GeolocationModule. Again, the performance difference between native code and rendering HTML5 is huge, and that's why we decided against PhoneGap. Personally, if HTML5 wrappers were the only option, I probably would've just sucked it up and went native Obj C. Like someone else mentioned, there are a lot of challenges to making an HTML5 app perform like a native one.

stevenou | 14 years ago | on: Show HN: Our first iPhone app, built entirely in JavaScript

We're on the Community (free) plan.

I haven't used SimpleGEO so I couldn't really say. Appcelerator Titanium just provides API functions to access native geo features like GPS. It also provides reverse and forward geocode functions but I found those buggy so I implemented my own using Google. I know Appcelerator recently acquired Cocoafish, which I imagine will provide much more comprehensive geo features for future Appcelerator devs.

Top drawbacks:

- Bugs/memory leaks. Since Titanium does memory management for you, you will occasionally run into memory leaks or bugs that don't make any sense, and there's not much you can do about it. Appcelerator isn't the fastest at releasing fixes either.

- Using third-party SDKs is generally annoying. Want to integrate Tapjoy? Chances are you'll need to write a custom Titanium module. Same goes for just about every single SDK out there. You have to manually create the JS->Obj C interface (aka module). There is a Titanium marketplace where you can buy existing modules for relatively cheap, but it's only a handful of very popular SDKs, like TestFlight, Flurry, or Urban Airship.

- Need to manually integrate new iOS features. Like geofencing, for example, I had to manually hack into the framework, so you're always a step behind in terms of the latest iOS features. That's OK for most people but when you do need a feature that hasn't made it into the framework, it can be annoying.

stevenou | 14 years ago | on: Show HN: Our first iPhone app, built entirely in JavaScript

Hi, I'm the CTO for RAVN. When we decided to jump into the mobile dev game no one in our company had any experience with Object C or Android dev. We knew we wanted an iPhone app for sure, and probably an Android app eventually. I had taken a brief look at Objective C previously, and coming from Ruby/Rails, it looked less than trivial (memory management?! I hadn't done that in 10 years). I had heard about frameworks that would allow us to use JavaScript to write our app, and also allow for cross-platform development, so I started researching.

I looked at PhoneGap and Titanium primarily. We ended up going with Titanium for a few reasons:

- As you may or may not know, PhoneGap works by creating a sort of Safari "wrapper" that lets you write your app in HTML5 and JS. But the performance is crappy relative to native rendering. Titanium also used to work the same way, but more recently it actually compiles code written in JavaScript to native Obj C and Java. Clearly the benefit is speed.

- Even though Titanium only supports iOS and Android, we didn't really plan on ever developing for other platforms (e.g. Windows Phone, BlackBerry, webOS).

If you're looking into developing a mobile app, I would recommend taking a look at Titanium. To be fair, I had to write a little Obj C to hack geofencing functionality into Titanium (if you're interested in that: http://stevenou.com/post/17623116547/how-to-hack-geofencing-...).

There were lots of pros and cons to using Titanium and I'd be happy to answer any questions.

stevenou | 14 years ago | on: Stealing Your Address Book

I think you misunderstand. I think Path did nothing wrong not because they "weren't caught". I'm sure they keep their data secure and they only use it to benefit the user's experience - ergo, nothing wrong. On the other hand, if say, they spammed people's address books, then I would think they are in the wrong. Or if they sold the data, then they are in the wrong. But as far as I can tell, they did nothing bad.

Oh and by "let it slip through," I didn't mean the app itself, but the fact that the SDK requires no authorization from the user for any app to access the address book. Like the author of the article said, it requires it for location. Why on earth doesn't it require it for your contacts? They're arguably much more valuable.

stevenou | 14 years ago | on: Stealing Your Address Book

It is super curious why Apple decided to allow apps to access the Address Book freely. I'm releasing an app on the App Store next week and I definitely thought about all the evil things I could do to my users because Apple provides them no protection. And as a developer looking for success on the App Store, it is very tempting.

I once considered the possibility of uploading the entire address book to my servers, too. In fact, I even considered email/sms spamming everyone in those address books with "invitations" from the address book owner to download my app. Of course, I did not end up doing any of that nefarious stuff. Not even uploading the address book for innocent "Add Friends" features. But the fact remains that given the freedom to do so, almost every developer will be, at least, tempted to take advantage of it. Most will.

I honestly don't think Path did anything wrong and I'm sure they kept the information secure on their servers. It's Apple that somehow let this one slip through.

stevenou | 14 years ago | on: 25 Startup Ideas for 2012

Crediting. As far as I know PayPal Mass Payments requires the recipient to have a PayPal account (in fact, we do use Mass Payments for customers who choose to be paid by PayPal). Crediting via ACH, on the other hand, merely requires routing and bank account numbers - which is something everyone has! The whole point, which neither PayPal nor Dwolla solve, is to use the existing financial network, not create a new means of money exchange.

stevenou | 14 years ago | on: 25 Startup Ideas for 2012

As far as I know Stripe does not do ACH? We've actually been looking all over the place for an ACH processor with an API (aka a Stripe for ACH) and have had absolutely no luck. And the one company we found, for some reason, wouldn't take us on as a client (I guess we're considered high-risk). Anyway, I wholeheartedly agree with the need for an "Stripe for ACH". If you actually know of one please let me know.

stevenou | 14 years ago | on: 25 Startup Ideas for 2012

There's actually a lot of "AirBnB for Activities." Our company used to be Skyara (http://www.skyara.com). We ended up pivoting to RAVN (http://ravn.com), which is more of a "Amazon for Activities," per se. I think we were definitely one of the first ones to try to enter the "AirBnB for Activities" space but had a very hard time.

While in theory it sounds like a great concept, the key to realize is that no "AirBnB for Activites" can ever be an "AirBnB for Activities." What I mean by that is: the part of the "AirBnB for X" business model that makes it work is the part where you have a very low marginal cost to renting out an existing resource that, presumably, is getting very low utilization. I.e. a car sitting in a garage, an empty couch. The marginal cost of renting those out... is basically zero. However, with Activities, the resource at play is actually time! A person needs to take two hours out of their day to offer a walking tour, cooking class, etc.

Arguably, time is the most scarce resource we have. People value their time highly, which means the marginal cost (in this case the opportunity cost) of them offering an activity is very high. Add to that the fact that individuals do not benefit from any sort of economy of scale, and that most likely means that they cannot compete with businesses on price (which is arguably where AirBnB is winning in its biggest market, NYC).

So of course, I'm not saying an "AirBnB for Activities" is not possible, but some fundamental problems make it significantly more difficult than one might initially expect. Personally I think Vayable is doing a great job, but time will tell...

Oh also, AirBnB took something that already was happening (sublets on Craigslist) and just rebranded/made it better. Not much "Activities" activity going on on Craigslist. It's mostly for services, like painting, plumbing, car mechanics, etc. So you sometimes question if the demand actually even exists?

Anyway, I could write a loooong post-mortem on Skyara but you get my point.

stevenou | 14 years ago | on: Wat

Thanks for the reply. Perhaps I was unclear. I completely understand the downvotes - that's why they're on the site. But I thought the "wow, you must be the best hacker ever congrats" comment was unnecessary and mean-spirited.
page 1