HN user

matan_a

1,592 karma
Posts178
Comments56
View on HN
www.pcworld.com 1y ago

I tested a $7 app that boosts FPS and resolution in any PC game. It's amazing

matan_a
3pts1
www.thecut.com 2y ago

The Return Grift Is Over

matan_a
1pts0
www.battery.com 3y ago

March 2023 Battery Ventures State of Cloud Software Spending Report

matan_a
2pts0
blog.doordash.com 5y ago

DoorDash removing 1-year cliff for equity grants

matan_a
230pts268
doordash.engineering 5y ago

Migrating from Python to Kotlin for Our Back End Services

matan_a
14pts1
d1.awsstatic.com 5y ago

Reliability Pillar: AWS Well-Architected Framework [pdf]

matan_a
1pts0
www.foxbusiness.com 5y ago

Billionaire Jeffrey Gundlach slams California over taxes, may leave state

matan_a
17pts26
www.pcworld.com 7y ago

Microsoft's Xbox Game Pass Subscription Service Is Coming to the PC

matan_a
2pts0
medium.com 7y ago

Defining Roles: CTO and/or VP Engineering

matan_a
9pts1
medium.com 7y ago

The Right Way to Quit a Job to Launch Your Startup

matan_a
2pts0
bothsidesofthetable.com 7y ago

How to Be a Good Board Member

matan_a
2pts0
applecorp.avature.net 7y ago

Apple iRelaunch 2019

matan_a
3pts0
knowledge.wharton.upenn.edu 7y ago

Christmas Without Toys R Us: Who Will Fill Its Stockings?

matan_a
2pts0
knowledge.wharton.upenn.edu 7y ago

California Wildfires: What Will It Take to Prevent the Next Disaster?

matan_a
1pts3
www.cnn.com 7y ago

Donald Trump's 2020 fundraising haul is totally and completely unprecedented

matan_a
1pts0
viewfromthewing.boardingarea.com 7y ago

United Airlines Threatens to Engage Collections for Passengers Who Skip Segments

matan_a
121pts149
www.cnn.com 7y ago

Nikki Haley's resignation letter

matan_a
1pts0
www.marketwatch.com 7y ago

Opinion: Snap and Tesla are for sale, and here’s who will buy them

matan_a
5pts0
knowledge.wharton.upenn.edu 7y ago

Can Going Private Turn Tesla Around?

matan_a
1pts0
knowledge.wharton.upenn.edu 8y ago

From Bach to Rock: How Music Preferences Predict Behavior

matan_a
1pts0
www.forbes.com 8y ago

I Co-Founded Waze and I'm No Longer Going to Own a Car

matan_a
2pts1
www.imperialtechforesight.com 8y ago

Table of Disruptive Technologies

matan_a
2pts0
nand2tetris.org 8y ago

From NAND to Tetris – Building a Modern Computer from First Principles

matan_a
2pts0
knowledge.wharton.upenn.edu 8y ago

How Modern Medicine Changed the Way People Die

matan_a
3pts0
medium.freecodecamp.org 8y ago

What You Need to Know About the Future of Bitcoin Technology

matan_a
1pts0
medium.com 8y ago

Likely near term price movements in Bitcoin using Elliot Waves

matan_a
3pts0
medium.com 8y ago

Interviewed at five top companies in Silicon Valley and luckily got five offers

matan_a
2pts0
www.greenpeace.org 8y ago

Guide to Greener Electronics 2017

matan_a
1pts0
extranewsfeed.com 8y ago

Tolerance is not a moral precept

matan_a
1pts0
medium.com 9y ago

Everything about Self Driving Cars Explained for Non-Engineers

matan_a
4pts0

We're currently using Apache Kafka which is working out great, but does include a broker as a middleman. This is good for us since it's designed to accumulate unconsumed data (or even roll it back) and still provide good performance - rather than having that happen on the producers or consumers.

It would be cool to see some stats on throughput and latency relative to # of producers / consumers and amount of data currently accumulated in the producers (since there is no middleman).

We've been using Pig extensively for our MR queries and we're very happy with it. While i haven't used Cascading, i do like the pipelining approach of Pig more than the SQL-influence method of Hive. It lends itself better for meeting our needs.

Testing is a good point. If you're running Pig through their APIs it is definitely easier to test than command-line running scripts. We've written test code that reads and runs pig scripts through the API using fixed sample data (stored in HDFS for easy access), read the results, and compare it to expected results (also stored in HDFS). Honestly, you don't need too much input data to prove the correctness of the query.

Remember that Pig also supports placeholders in your scripts so you that you can set them in run-time to define input/output paths, etc. This makes testing easier.

Dependencies can also be stored in HDFS which makes it simple to run your scripts w/o the need to distribute jars around.

Just please consider that XPath needs to store the items in a tree structure first (XML needs to be parsed and loaded into memry) before it can be useful. Running that on a large log file would be an interesting performance experiment.

It's nice to see Amazon entering this space as they do have the expertise to keep this up and running as well as provide the scale needed as apps grow.

What i always tho is the ability to run search queries that also involve dynamic grouping (like grouping by random combinations of facets) and providing those aggregated results.

Only thing i've seen that can do this "on the fly" is SenseiDB. CloudSearch/Solr/etc seem to need preprocessing to get this right.

There are quite a few other performance related points to think about for Solr speed for queries and indexing.

Here are some that come to mind right now that are very useful:

- Be smart about your commit strategy if you're indexing a lot of documents (commitWithin is great). Use batches too.

- Many times, i've seen Solr index documents faster than the database could create them (considering joins, denormalizing, etc). Cache these somewhere so you don't have to recreate the ones that haven't changed.

- Set up and use the Solr caches properly. Think about what you want to warm and when. Take advantage of the Filter Queries and their cache! It will improve performance quite a bit.

- Don't store what you don't need for search. I personally only use Solr to return IDs of the data. I can usually pull that up easily in batch from the DB / KV store. Beats having to reindex data that was just for show anyway...

- Solr (Lucene really) is memory greedy and picky about the GC type. Make sure that you're sorted out in that respect and you'll enjoy good stability and consistent speed.

- Shards are useful for large datasets, but test first. Some query features aren't available in a sharded environment (YMMV).

- Solr is improving quickly and v4 should include some nice cloud functionality (zookeeper ftw).

Curious...what throughput do I get when I use your service? Twilio limits you to 1 SMS / second unless you get a short code (30 SMSs / second) or otherwise use multiple numbers.

Do I get any benefit from you guys regarding this?

While i did see quite a bit of options for node, i haven't been playing around with ORMs in Node too much. ORMs to me refer to those used with relational databases and I haven't done that yet in Node.js. i've just been using MongoDB (mongoose) and Redis (node_redis) - both of which have good libraries.

Also remember that the very nature of JavaScript might make the classic idea of how an ORM is implemented a little different.

Here's a rehash of my comment on the blog which might cover this point:

From my experience, performance is a tough question to answer because you really have to think of the system as a whole. The weakest link (slowest piece) usually dictates the overall system perceived performance. Having a slow DB isn't going to make your choice of Java or Node.js matter that much...

So assuming that everything else is equal (like architecture, data structure choices, database driver quality, database design and queries, etc) it might be that Java is faster.. but it might be a moot point.

Writing asynchronous code in Node.js is much more convenient than Java and helps in doing more at the same time so that you aren't waiting for all those database queries to run one after the other, for example. Check out the Node.js async module for some cool patterns to use (https://github.com/caolan/async).

In all, I wouldn't make the choice to move to Node.js because it has better performance or not, but the overall holistic view.

Here are some of my suggestions (i've been consulting for many years for large and small clients alike).

First to get it out of the way: Consultant != Contractor. Some people think they mean the same thing. They don't. Contractors vs employees is just a hiring logistic. Consultants are usually contractors, but the scope of work is usually more specific and specialized.

I'd define a consultant as a subject matter expert who helps clients with a problem domain for a fixed interval.

"Being a consultant" to me means usually helping a company with a problem or role that they can't help themselves in. That means you have to be not only good at what you do, but confident in your decisions and suggestions. You are the authority in their point of view - or at least close to one so you'd probably want to find that area of expertise where you feel that level of confidence.

Having said that, reading books might be a good start, but that's definitely not enough to become a highly paid consultant who gets great referal gigs. "Been there, done that" is a good expression to describe where your experience would best come from. Obviously, you'll get better as you consult more, but it would be wise not to improve your skills on the behalf of others checkbooks in a consulting role.

So assuming you're ready to go that route, you need to fill your calender with enough work to keep yourself busy (paid) and your clients happy. I personally don't have a secret formula for that, i just try to do the best work i can. Leaving a good impression tends to make it easy for people to recommend you to others which brings you more opportunities.

I'd start simply by working for someone else (i.e. a consulting firm). They'll make some dollars off your work, but you'll start to get a feel of the process and build a client base.

I hope that is at least a bit helpful.

I've been developing using MongoDB for a few months now and the thing that always comes back to me as missing is the need to group a set of actions so that they perform atomically. It's not exactly meaning i need transactions (i don't care about the commit/rollback part), just need the need to say - hey server, do X, Y, and Z as a batch so that another thread won't do something in the middle of that.

The general consensus on this is to structure your data so that it encapsulates your business needs in one document structure (which is atomic on changes), but i find it hard to always conform to in the real world.

So now i have to use zookeeper (memcached also works) to setup global locks on those specific batch update actions. I guess it's a small price to pay right? Right?

How is this news? Most technology is dying slowly to be replaced by the latest and greatest.

Tablets and smartphones will be dying slowly too in a few years to be replaced by some other idea.

Definitely. Performance requirements do justify what you're suggesting. Preprocessing when possible is a great principle to follow.

The point is that you're keeping your original data around is the key part.