HNHacker News
TopNewBestAskShowJobs

karterk

4,443 karma · joined October 20, 2010

Co-founder @ typesense.org

kishore at typesense org https://calendly.com/kishorenc/30min

submissionscomments
karterk··on Show HN: Codassium - WebRTC-based video chat and code editor for interviews
Thanks, will add that to my todo list!
karterk··on Show HN: Codassium - WebRTC-based video chat and code editor for interviews
I agree with you. A private editor or the ability to have tabs will be useful. The learning part did cross my mind, but I wanted to focus on a specific use-case instead of diluting the message by pitching it as a general purpose tool.

although it doesn't seem to allow more than two people's cams at once.

More than 2 people works fine for me. Is anyone else facing this issue?

karterk··on Show HN: Codassium - WebRTC-based video chat and code editor for interviews
Thank you! Mind if I emailed you to ask you some questions on that? :)
karterk··on Show HN: Codassium - WebRTC-based video chat and code editor for interviews
Totally agree with you. Wanted to get this out of the door - otherwise I tend to keep adding "one more feature".
karterk··on Show HN: Codassium - WebRTC-based video chat and code editor for interviews
Do you see any errors in the developer console? I have been testing this for a while and it did work on Chrome 25. Chrome 26 was released only last week.

Sometimes, I am not able to distinguish between a missing mic/webcam and genuine webrtc connection issues so either could be a problem.

karterk··on Show HN: Codassium - WebRTC-based video chat and code editor for interviews
First Show HN :) Any feedback greatly appreciated :)
karterk··on Building a SaaS business - 2007 vs 2013.
Totally off-topic, but welcome back!
karterk··on Standups are Poisonous
6 person team x 30 minutes = 3 hours lost.

If you have daily stand-ups, why would you have 30 minutes worth of update per person?

This whole article is pretty extreme. Standups, just like any other process (light-weight or otherwise) is only good until its original intention is being served. If a standup is taking a long time, make it a point to cut it short. If someone is narrating a long story, ask that person to stop and take the rest offline.

Finally, everyone should understand that stand-ups are used to convey status and information about important things. It's not a recital of what each person did the previous day. Sometimes, you might have nothing to say and in that case, just say so. Nobody should be talking about details in standup.

karterk··on Analytics used to predict who will leave a job
Very similar analytics work takes places in the telecom industry with respect to customer churn. However, this typically requires a large data size for it to be accurate. So, I wonder how many companies are large enough to benefit from it.

On a larger note, I wish "managers" used other simple means like talking to people openly about their aspirations, instead of blindly following the processes laid out by the company. Thankfully I don't work in such a place - but most big corps could just do better on the attrition rate if they made their appraisal process more employee friendly, focussed on encouraging a open culture and reduced needless hierarchy.

karterk··on Chart.js is back online
It was already under MIT license: https://github.com/nnnick/Chart.js/commit/26962ce2b6ffa2e1f0...
karterk··on These engineers quit their jobs to start LeChat
The actual app itself looks pretty neat. However, I see their pricing and it's "$1 per user per month". If anyone from LeChat is reading this - you should charge more. Although it appears like having a lower price is a differentiator, in reality it will hurt you.
karterk··on Test-Driven Development Bypasses Your Brain
I find TDD to be useful in two cases:

1. When I already know what I'm doing and it's just a matter of coding what's already in my mind

2. When I'm writing in a dynamically typed language, it forces me to be not lazy and have adequate test coverage since I don't have compile time type safety

I do less of TDD when dealing with a statically typed language and/or when I'm working in an exploratory mode. TDD doesn't help me when I'm just trying out different things to get going.

The thing that pisses me off is when people don't realize that EVERY technique has caveats and try to promote it as a golden rule - a lot of "agile" consultants preach TDD as the golden grail for writing code without any bugs.

EDIT: grammar

karterk··on Programs should be Small
Microservices are not necessarily bad, but one should also be aware of the drawback of such an approach. If there is a very tight coupling between two modules, you will often find yourself having to keep making changes between 2 different modules. The typical process goes like this:

1. While working on module 1, you realize you need something from module 2

2. Open module 2, add new feature and publish changes

3. Go back to module 1, test new feature and resume work

This process is fine once both modules 1 and 2 have matured but painful to deal with while the APIs are still taking shape. Hence it makes sense to keep a good abstraction between potential components and spin them off as an individual service only when they're stable enough.

karterk··on The Dark Side of C++ (2007) [pdf]
Hmm, I found some of the criticism unfair. E.g. the example with "baz = foo->bar(3);". Yes, "bar" could be a number of things here, but that's why variable naming conventions help.

The point about operator overloading is accepted, but this is not too different from what happens with metaprogramming in Ruby or say macros in lisp.

Even python has some quirks. See: http://stackoverflow.com/questions/1132941/least-astonishmen...

karterk··on Heroku Blog: Routing Performance Update
Unless you selected a platform that is too complex to start with. I think that many of the PaaS companies I see today are here mainly for two reasons: Rails & Java frameworks.

Can't speak for Heroku but with EC2 you get the ability to dynamically add/remove instances. While this seems like it's needed only for certain kinds of startups, the reality is that most background processing is batch oriented and it's extremely cost effective to just spin up instances when I need them, crunch the data and terminate them after that. And, if you go for spot instances (and use a fault tolerant framework like Hadoop to distribute jobs), it's becomes even more cheaper.

karterk··on Discourse
I greatly admire what WordPress did for the web; to say that we want to be the WordPress of forums is not a stretch at all.

Going with Ruby (Rails?) is a sane choice from a development point of view, but a lot of shared hosts still only support PHP and a lot of my web design friends are comfortable only with basic FTP-ing. I remember reading some tweets from Jeff from last year, which hinted that he might be stuck with PHP for his next project (which I believe now is Discourse). Nevertheless, it's interesting that they did not go with PHP.

Edit: minor grammar

karterk··on Do What You Love? Screw That
Think about something you're passionate about. Or were passionate about when you were in high school. Write it down.

Programming.

Then apply this test: Will people pay you for it? Will they pay you a lot for it?

YES.

Okay, perhaps this post is not for me, but the post comes across as highly anecdotal. E.g:

That advice has probably resulted in more failed businesses than all the recessions combined...

I hate to ask it, but source?

karterk··on Enterprise
There are lots of worthwhile problems to solve in the enterprise space - none of which can be solved from the comforts of your chair. This is precisely why many people lean towards B2C. They think that yet another photo-sharing app is easier to market.

B2B is hard in a different sense. You need to be involved enough with an industry to learn the way it works and get to know people who you can contact to sell a better product. If you're just starting out, it's going to be very difficult to get medium sized companies to take you seriously. It becomes easier if you already know the decision making person.

karterk··on On being a Roman in Rome
Thanks for that link. This quote is especially resounding:

Ask, "how does Python already solve my problem?" and "What Python language feature most resembles my problem?"

karterk··on Node, Twitter, and Apologies
I'm sorry, and feel terrible that I made someone feel terrible

This does not come across as a strong apology because Steve keeps stressing on making someone feel terrible and not really accepting that he was wrong to ridicule code without offering constructive criticism.

karterk··on Math in Fiction – over 1000 short stories involving math or mathematicians
I loved reading "The Secret Number" by Igor Teper:

http://www.strangehorizons.com/2000/20001120/secret_number.s...

It has been submitted to HN a few times too.

karterk··on Svbtle Funding
Reading this reminded me of 9rules[1], which used to be pretty popular some 8-10 years back but eventually withered away. As with most communities, scaling svbtle without comprising on the quality is going to be the greatest challenge.

[1]: http://9rules.com

karterk··on Open-Source Speech Recognition: Simon 0.4.0 Released
What third party APIs do you use? And how accurate are they in transcribing long audios with a reasonable amount of noise?
karterk··on Ask HN: What advice do you have for a new Computer Science graduate?
A few things I learned along the way:

* If you end up as a software engineer, building good software has a lot of things that fall outside core computer science concepts. Read up about unit testing, continuos integration and continuous delivery.

* Build, build and build. No amount of reading will help you tackle some of the issues that real-world data will throw at you. An active Github account also serves as a validation that you are actually capable of "shipping things".

* Breadth is important, but continue to focus on becoming great at atleast one thing.

* Learn a few languages. Pick one or two which are statically typed (Scala, Haskell), one or two that are dynamically typed (Python, Ruby). I also highly recommend Erlang which was a revelation for me.

* Master Git (or Mercurial, if that's your thing).

* Choose to work in companies where you feel you will be surrounded by people smarter than you. This is possible even outside the Googles and Facebooks of the world.

* Don't get overly attached to your tools. Languages, frameworks and editors are a means to an end. Be open to new ideas and better way of doing things. There is an initial learning curve before you start becoming truly productive in anything and so be mindful of that before you dismiss something.

* Lastly, don't get burned out.

karterk··on Why Learn Scala in 2013?
I'm not disagreeing about the complexity, but you can choose to use a sane subset of the language and do away with all the other stuff. Map, filter, anonymous functions and type inference already puts it way ahead of Java in terms of productivity. You can absolutely choose to ignore the rest of the language.

In the end a language like lisp is much simpler but the paradigma shift is what makes it a bit difficult for those imperative programmers like me.

It's not very fair to compare Scala with Clojure - static typing might not be everyone's cup of tea, but over time, I have come to appreciate it's power when dealing with certain classes of problems.

karterk··on Why Learn Scala in 2013?
No, it's very slow. If you use a SSD, it's manageable.
karterk··on Rails is omakase
But if you actually read through the github thread, you will see that DHH is going against conventional practice in this case.
karterk··on Ask HN: How do you escape CRUD jobs?
You need to find an actual problem that stretches what you know and demands you to dig deeper into areas of computer science that interests you.

Reading theory and books won't get you far as you will realize that the real-world problems bring a lot of perspective that is not documented well enough in most books.

So, how do find a challenging problem to solve? Most people will suggest working on side projects, but some really hard problems (e.g. distributed computing) requires resources that make it impossible to pursue as side projects. Also, having people much smarter than you around you helps with the learning. So, the alternative in this case is to join a start-up or a big co just so that you get a chance to explore difficult problems.

karterk··on Building a 200000 Dollar Business in 11 Months Flat
So the article does not give ANY information on what the author built and/or what specific things he learned. No idea how this is on the front page.
karterk··on Ask HN: How to prevent unwanted scraping
As someone who has done a lot of scraping in the past - you just need to change the CSS classnames or re-design your pages once in a while :) This breaks a lot of automated bots that extract semantic meaning from a webpage by using html + regexp parsers.

I would suggest staying away from using JS as it affects genuine users as well (e.g. those who use screen readers).

← PreviousPage 11 of 18Next →