HNHacker News
TopNewBestAskShowJobs

chrisohara

232 karma · joined November 19, 2010

https://github.com/chriso https://linkedin.com/in/chris6f
submissionscomments
chrisohara··on Zig's New Async I/O
> Io in zig is for “things that can block execution”. Things that could semantically cause a yield of any kind. Allocation is not one of those things.

The allocator may yield to the OS when requesting or releasing memory (e.g. sbrk, mmap, munmap)?

chrisohara··on Ask HN: Who is hiring? (February 2019)
Sherlock (sherlockscore.com) | Full-stack (Rails/React) | REMOTE | Full-time | $90k – $150k

Sherlock is changing the way SaaS businesses understand and operationalize their product engagement data. Built by a team of SaaS veterans, we are the only product engagement scoring application on the market today. We have found success with our early customers and are ready to expand the team to accelerate our growth. We offer a competitive salary and benefits and are excited to build out the team further.

Email chris@^ or apply here: https://angel.co/sherlock-4/jobs/488709-full-stack-engineer

chrisohara··on VPN Comparison Chart
I think it's referring to the fact that certain details (traffic, DNS requests, timestamps, IP addresses) are logged. Ideally you want a service that does not log anything, that's why "Yes" is red.
chrisohara··on String Interning Done Right
I just finished a C library for string interning: https://github.com/chriso/intern

There are also some bindings for Go: https://github.com/chriso/go-intern

chrisohara··on gauged: a time series database
Tagging would be the next addition. I added the ability to search for keys by prefix quite efficiently, so provided one stored keys like "requests:server1", "requests:server2", one could easily run the following

    requests = 0
    for key in gauged.keys('requests:'):
        requests += gauged.aggregate(key, Gauged.SUM, start=-Gauged.WEEK)
chrisohara··on Ask HN: Freelancer? Seeking freelancer? (February 2014)
SEEKING WORK

Full-stack developer from Sydney, Australia. I'm a Javascript (Node.js), Python and C expert.

http://github.com/chriso

cohara87 (at) gmail.com

chrisohara··on Pilbox: an image resizing application server
We built something similar in node.js (as express/connect middleware)

http://github.com/sydneystockholm/imgr

chrisohara··on Use Node.js to Extract Data from the Web
Author here.

Still active, although development has slowed down.

If you have any questions or issues just submit an issue @ Github and I'll help asap.

chrisohara··on Wait.for: Sequential programming for Node.js (beta)
Why not use harmony generators?

Generators are provided by V8, don't require an external fibers extension (i.e. hack), and will be available in the next node stable via `node --harmony-generators`.

Here's an example for those interested: https://github.com/visionmedia/co

chrisohara··on Twitter: API v1 Retirement is Complete - Use API v1.1
https://cdn.api.twitter.com/1/urls/count.json?url=google.com

Works for me.

chrisohara··on Thumbd, An Image Thumbnailing Service Built on Node.js, SQS, and S3
We just built a similar node.js tool which resizes images on demand: http://github.com/SydneyStockholm/imgr
chrisohara··on Software architecture cheat sheet
YAGNI should be on there
chrisohara··on Calling PHP functions with named parameters
It's pretty negligible in the scheme of things. I was abusing PHP reflection a while back to add decorator support (https://github.com/chriso/Request) and used this pattern to reduce the cost:

    switch (count($args)) {
        case 0: $method(); break;
        case 1: $method($args[0]); break;
        case 2: $method($args[0], $args[1]); break;
        //etc
        default: call_user_func_array($method, $args); break;
    }
chrisohara··on Higher-order programming in C
Why are people so scared of void*? Are there any VM's that don't resort to some form of pointer tagging when implementing dynamic typing?
chrisohara··on Web scraping: Reliably and efficiently pull data from pages that don't expect it
If it looks terrible, it's not professional quality. Right?
chrisohara··on Web scraping: Reliably and efficiently pull data from pages that don't expect it
Obligatory link to your single page static HTML homepage for comparison: http://many9s.com/
chrisohara··on Web scraping: Reliably and efficiently pull data from pages that don't expect it
It's a project created and maintained entirely in my free time. I provide free support when someone needs help and I fix bugs when someone files an issue. I've written documentation and a guide in the project's Github wiki. This is all done outside of full-time work. Forgive me if I don't spend more time improving the website and uptime when it's an endeavour that brings me no income whatsoever. You're the type of person that makes me hate open-source sometimes.
chrisohara··on Web scraping: Reliably and efficiently pull data from pages that don't expect it
FYI, JSDOM isn't the default parser in node.io. It uses a faster and more forgiving parser if you can survive with a subset of jQuery functionality (https://github.com/chriso/node.io/wiki/API---CSS-Selectors-a...)
chrisohara··on Semicolon.js
No semicolon-min.js ?
chrisohara··on Show HN: Firebase, a scalable real-time backend
Of course it has a backend, but so do the Firebase apps that this entire thread is talking about. Referring to a JS app as "client-side" doesn't imply that there's no backend logic.

My point is that you can't just de-obfuscate a primarily client-side JS app and replace the Firebase (or whatever) endpoints. Proprietary obfuscation is more than just variable name munging and minification..

chrisohara··on Show HN: Firebase, a scalable real-time backend
as I said above, de-obfuscating a large javascript app that's been obfuscated/minified by proprietary tools is virtually impossible to decode. Try running some of google's code - gmail, docs, take your pick - through your beautifier ;)
chrisohara··on Show HN: Firebase, a scalable real-time backend
have you ever looked at code obfuscated by proprietary tools? By your logic it's easy to reverse-engineer and copy Gmail - good luck with that
chrisohara··on A Pinterest spammer tells all
How are they not picking it up as spam? The same affiliate link from multiple accounts... The description also looks like a snippet of one the product reviews on Amazon
chrisohara··on The Little Redis Book
If anyone wants to take this further, have a look at my higher level Redis library, http://redbackjs.com/.

It exposes useful constructs such as a social graph, bloom filter, full-text index, and a very fast rate limiter (http://chris6f.com/rate-limiting-with-redis).

chrisohara··on Typing at 255 WPM shouldn't cost $4000
http://i.imgur.com/iKqk9.jpg
chrisohara··on "Hello World" in Dart, compiled to JavaScript
Same results: http://jsperf.com/dart-hello-world-test-with-optimize/2
chrisohara··on "Hello World" in Dart, compiled to JavaScript
Dart won't be supported ubiquitously any time soon (if ever) which is why there'll always be a Dart->JS compiler. Why not just stick with vanilla JS or Harmony/ES6? I'd benchmark some bigger apps but they don't exist yet
chrisohara··on "Hello World" in Dart, compiled to JavaScript
..and here's the jsperf for the --optimize'd hello world vs. vanilla JS - http://jsperf.com/dart-hello-world-test-with-optimize/2. 17k vs. 4M for me
chrisohara··on Show HN - Random business from the INC5000 list in json (for business ideas)
Looks like someone added it in a pull request: http://random-inc5000.herokuapp.com/?callback=foo
chrisohara··on Show HN - Random business from the INC5000 list in json (for business ideas)
Here's the code - https://github.com/chriso/inc5000
Page 1 of 2Next →