There is a lot of overlap between logging, monitoring and crash/error reporting. In Sentry with some systems it does hook up to your logging framework to gather extra context through breadcrumbs or adds a hook to send logged error reports (in addition to the error reports from exceptions and crashes). They also follow logging good practices and integrate with them, but if you need logging, you can't use sentry for that. It only keeps the relevant information to a specific crash, and it aggregates data from crashes of a specific type so you won't even get historical data from crashes in some instances. Quoting from one of their blogs:
>>>
Sentry is built on top of best practices like logging. However, this can cause confusion and signal-to-noise issues if you don’t understand the the difference between logging and error reporting.
Throughout your application you are likely logging many kinds of events. While these are commonly errors, you are probably logging a lot of debug information as well. This is the fundamental reason why logging has levels (e.g., debug, warning, error). When we abstract our crash reporting through logs, the challenge is to differentiate between actual errors and debug noise.
>>>
https://blog.sentry.io/2016/02/09/what-is-crash-reporting
I used to feel this way for years, even till very recently. After I resigned from my company in 2012 after a fallout with my partners, the highest trafficked job search website in Nigeria - Jobberman - reached out to me to take up the recently open position of CTO. The expectations brought on an overwhelming feeling of being an impostor. There were a number of things I was doing for the first time, and a number of situations I had never been in prior. For instance:
- I had built numerous medium traffic web applications in the past but had never done MySQL replication.
- I had not had the privilege of managing an application that averaged 4000 visitors at any given time.
- As much as I had a good working knowledge of administering servers, I wouldn't say I had up to a 100 hours in total of administering Linux machines. I had been a Windows server guy for years, but had a couple of personal apps running on Linux VMs
- I had never done application performance monitoring
I could go on and on, but these thoughts exaggerated the negatives so much in my head that as much as I knew I had work to do, and knew how to teach myself to do it, I knew I didn't deserve the role. In the end, I did my best and transformed the company's infrastructure but never did get to shake off the feeling.
I can go on and on about why I did feel that way but I guess like the blog post says, we can think always of more ways to cut ourselves down, than otherwise.
Being more active on IRC has helped dispel this feeling over time. Self realization when discussing with people you believe should know more than you do also helps - less than two weeks ago, some developer friend of mine was excitedly telling me how they recently learned of the format of IPv4 addresses, something I probably knew before I turned 12. Blogging more often is something I intend to get back to as well. I used to be pretty active 7 - 5 years ago until I got "too busy".
I should add that this is my first lengthy comment on HN, as I never did feel I was good enough to comment on this forum. :)
True, my thinking was one level up the stack, Phoenix is (according to Chris' talk) a framework for building applications. And it does this using Elixir running on Erlang. Is Elixir special?
Sure it is, but "framework for building apps using language X which is run by virtual machine Y" is the basic pattern for JavaScript, Clojure, Scala, Java, and others. There are a lot of them, they have varying levels of integration.
Can I build a discussion forum in Phoenix? Sure, it has all the tools. Can I build it using PHP or Ruby? Sure those have tools too. Can I create an integrated IDE with my langauge and my execution environment? Sure we can do that too like Light Table.
So is it just Visual Basic all over again? Thinking of it that way is probably not conducive to polite conversation :-) but in many ways it is. We have a scripted language (Elixir), a virtual machine (Erlang), a "window" system (HTML5), and a set of APIs we can call on.
That is great, doesn't solve a new problem but solves an existing problem in a new way. And I watched Chris' talk and read the documentation, and I still don't feel like I have a good feel for why its better than what came before.
There are lots of "new" problems with respect to changing conditions in our day to day lives. Here are a few
- Identity management across Internet and non-Internet properties
- Configuration, control, auditing, and monitoring of billions of Beacon level devices
- Zero knowledge proofs as a technique for anonymous and no repudiated purchases online
- "home" level cloud services for local and on the road implementation of always available services (mail, journaling, calendaring, Etc.)
- Reliable third party payment systems (somewhat of an old system but one that benefits from revisiting with current technology from time to time)
- Navigation and cartography tools for people in disconnected regions of the planet.
- Civil process augmentation with automation and authentication.
- Connectivity as a tax payer civic utility, without an editorial bias.
-Dynamic skills assessment for students in the presence of confounding factors (mostly remote access)
- Low friction capital markets for charitable giving (think Watsi but for everything, and with better controls than 'GoFundMe')
- Providing civic services for indigenous homeless populations.
I could go on, there are lots and lots of problems. But to be clear it isn't a criticism of Phoenix that they are not solving a new problem, the feedback was that there are lots of solutions to the general form of problem they are solving and, as feedback on this announcement, I was trying to learn from their materials how they were different (and presumptively better) than those other solutions. I'm still looking for that summary somewhere.
See: https://news.ycombinator.com/item?id=22574712