HN user

nachivpn

18 karma

Teach savvy who loves programming languages! find out more about me: nachivpn.me

Posts20
Comments8
View on HN
agda.readthedocs.io 8y ago

Agda gets the do notation

nachivpn
1pts0
blog.nachivpn.me 8y ago

Exploiting Java 8 and generics to write clean code

nachivpn
3pts0
blog.nachivpn.me 9y ago

Proof of proof by induction

nachivpn
1pts0
blog.nachivpn.me 10y ago

Trial and error is not ugly

nachivpn
2pts0
github.com 10y ago

Show HN: REPL utility to run gremlin queries over HTTP on Neo4j

nachivpn
1pts0
nachivpn.blogspot.com 11y ago

Why you should use curl and firebug to scrape

nachivpn
2pts2
nachivpn.blogspot.com 11y ago

Uniquely identifying IP addresses and filtering CIDR blocks

nachivpn
1pts0
nachivpn.blogspot.com 11y ago

Blocking user agent strings efficiently

nachivpn
2pts0
nachivpn.blogspot.com 11y ago

Demystifying the meaning of 'static'

nachivpn
1pts0
github.com 11y ago

Yet another sitemap parser in Java?

nachivpn
1pts0
nachivpn.blogspot.com 11y ago

Graceful degradation – not so 'graceful'

nachivpn
1pts0
silcnitc.github.io 11y ago

An awesome LEX tutorial

nachivpn
3pts0
news.ycombinator.com 11y ago

Ask HN: What are some of the major problems being faced because of web scraping?

nachivpn
8pts6
www.shieldsquare.com 11y ago

Common measures taken to prevent scraping aren't effective

nachivpn
3pts0
nachivpn.blogspot.com 11y ago

How LEX works

nachivpn
1pts0
nachivpn.blogspot.com 11y ago

Finding the longest matching pattern using Finite State Machines

nachivpn
11pts0
github.com 11y ago

Bufferedis – writes faster than redis pipeline?

nachivpn
2pts0
nachivpn.blogspot.com 11y ago

Show HN: Thread safe Jedis client

nachivpn
3pts0
news.ycombinator.com 11y ago

Ask HN: How to choose the right in-memory NoSQL database?

nachivpn
1pts0
nachivpn.blogspot.com 11y ago

Redis pipelining explained

nachivpn
3pts0

HTML of a page is received in response to a HTTP request. A page load might involve multiple HTTP requests. Often parts of a web page that interest you might be loaded specifically by a request. By using firebug, you could examine which HTTP request fetched you the content you need and what parameters (headers, cookies, etc) where associated with it. Using this information, you could simulate a HTTP request of your own using cURL (in fact, firebug provides a "copy as cURL command" feature which can be very useful). Firebug is used only in the initial stages to understand. Post which, cURL can be used in your shell script (or a suitable language of choice) to implement your bot.

Yes, it definitely isn't the right way to handle ambiguous grammars. My assumption was caused by extensive usage of YACC for writing parsers in the past. To avoid it's default action, generally ambiguous grammars are avoided (since it is used only to write programming language parsers anyway)

Bottom up parsing - "If not, it's necessary to backtrack and try combining tokens in different ways" I feel the way it is put along with shift reduce parsing is misleading. Backtracking is essentially an aspect avoided (more like solved) by shift-reduce parsing. They don't go together in bottom up parsing. Shift reduce parsers posses the potential to predict the handle to use by looking at the contents on top of the stack.

Good job BTW, there are very few people who write about compiler/language theory :)

We moved from Azure to Gcloud. We are currently using Gcloud's compute engine as we didn't want to get too dependent on the App engine. In comparison to Azure, gcloud VMs are much faster in terms of performance. Managing google VMs are much more easier. For example, migrating a gcloud VM would take only a few seconds even across data centers. Google's support team in India didn't really help, so we designed our own architecture. While google has many interesting features like autoscaling API, global load balancer, cloud storage etc, of which most of the services are in beta stage. We use it anyway, and haven't faced too many issues.

The only place where we had to look for an alternative cloud service was when we attempted to set up our own CDN on https. Google currently supports it's global load balancer only for port 80 and 8080 and they suggested we use DNS load balancer which we didn't like the idea of. P.s. we have not worked a lot with AWS. So I do not know much about AWS. From what I hear, AWS is currently much better and gcloud is good upcoming competitor. Overall, we serve 20 million API requests per day on google cloud without any infrstructure issues so far.