8 ms·
Squash
- dropdownmenu 14y agoJust as a heads up, I cannot scroll to the bottom of your page. I keep bouncing as I hit the bottom and end up with 'Start using Squash' being cut in half. Screen res: 2560x1440
- hcm 14y agoAnother open-source alternative is Sentry (https://getsentry.com/ https://getsentry.com/), which supports multiple languages and frameworks. A hosted version is also available. The Ruby support in Sentry currently isn't quite as good as the Python support, but it's not bad at all, and constantly improving.
- bruth 14y agoI second using Sentry, and it has UDP support. Maybe a few Ruby devs can just improve the Sentry Ruby client?
- marc_omorain 14y agoI third using Sentry. I love it. David has been making huge improvements in the Ruby client in recent weeks.
- danielpal 14y agoLooks good, I just wished it integrated with Github instead of having it's own UI. Github already has all the functionality the squash UI webserver has.
- sync 14y agoAlso see: https://github.com/SquareSquash/web https://github.com/SquareSquash/web Interesting FAQ full of the developer preemptively defending design decisions.
- mickeyben 14y agoThanks for pointing this out. Definitely worth reading.
- udp 14y agoI can't watch the video right now, and as a result I have no idea what this actually is (despite being able to read about all the features). Fewer e-mails sounds good, but it doesn't mean much to me if I don't know what the product is.
- kaichanvong 14y agoI came here with the same problem, hoping these comments might give me insight. Please add a summary of what this is please! :)
- afandian 14y agoDid you guys read the same thing I did? AFAICT it's a service for logging bugs, analysing who is most recently responsible for the bit of code at the point where the exception/segfault happened, and emailing them.
- scott_s 14y agoTo be fair to everyone, I was initially confused, but I was able to piece together what it is. However, I'm not sure about it's scope - like if it's a general bug tracking system (as opposed to just bugs that generate exceptions or stack traces), or if it is even for features, not bugs. I think it would help the project to say these things up front.
- JonnieCache 14y agoIt's self evidently an exception logger with built in static analysis. If you can't tell that from the lengthy description then the product probably isn't aimed at you. It's definitely one of those simple "why didn't I think of that?!?" type ideas. Well done to the team responsible.
- fduran 14y agoNot so evident; "exception" is mentioned once deep down. Zero mentions of "log", "logger", I thought at first it was a debugger ("bug" is mentioned 9 times, the first header is "Say goodbye to bugs"). They should have a once sentence description involving exceptions under "Say hello to Squash."
- xlevus 14y agoThe only thing that instantly tells me what squash actually is is in the <title> tag. Which chrome truncates to ~30 characters. Is it a pest control system that doesn't send me emails?
- mapleoin 14y agoSymbolication is the ugliest word I've heard this year. It sounds like disembowel and embolism put together. Also it looks like they found a font to abuse in exactly the same way that Comic Sans kills aesthetics, but with a different name and a slight update.
- d0m 14y agoTo be fair, it's still early 2013 ;-)
- webbruce 14y agoIn that video, what extras does he have installed on his Terminal? Anyone?
- jmileham 14y agoThis has a big (but easy to fix) security flaw. Don't deploy this publicly without changing the secret token or else you are effectively publishing your app code for analysis by attackers. https://github.com/SquareSquash/web/blob/master/config/initializers/secret_token.rb#L21 https://github.com/SquareSquash/web/blob/master/config/initi... More broadly, if you're writing an open source rails app please don't commit a hard-coded secret_token into the repo or session fixation attacks are trivial.
- TylerE 14y agoWhy has the Rails team not fixed this? Seems like a sane default would be to have a special token (used in the auto-gened config) that generates a new random key, and then writes it to a 2nd config file (which is in the default gitignore)
- Xylakant 14y agoBecause it's not a problem for private applications. You actually do want the key in your VCS in most cases since it should be stable across deploys. Rails will log out every user and throw an error for each active session when the key changes because it suspects that the session has been tampered with. The handling for OS applications is a little more difficult and I must admit that I know a couple of mediocre and no good solution to it.
- jmileham 14y agoIn this app's case the setup.rb is an ideal candidate for generating a new secret_token (and raising an exception on startup until you've generated a token).
- Xylakant 14y agoI actually went through the setup.rb and was surprised they don't do it. Rails itself will raise the exception if the initializer does not exist IIRC, so just removing the file and .gitignoring it would do.
- instakill 14y agoThe name, seeing a word like Symbolication and having just watched an Onion video made me think this was a joke at first, even while watching the video.
- northband 14y agoNice app - a great alternative to some of the popular hosted services. Great work guys.
- larrybolt 14y agoCould you please name a few of those hosted services? Because Squash seems currently to be written for Ruby specific apps, however PHP, Django, Nodejs apps could use such a service too.
- jonstjohn 14y agoWe use Exceptional (exceptional.io) and Airbrake (airbrake.io). Both are fairly good but occasionally have discrepancies.
- brianr 14y ago(self plug) Check out http://ratchet.io http://ratchet.io - we have libraries for PHP, Django/python, and Node.js, as well as Rails, client-side JS, and Flash.
- beastmcbeast 14y agoBugsnag (https://bugsnag.com https://bugsnag.com) supports Rails, PHP, Python/Django, Nodejs, Android, iOS and Unity. Caveat: I'm a founder there.
- riscfuture2 14y agoSquash has client libraries for Ruby, Objective-C, JavaScript, and preliminary Java support.
- porker 14y agoAgreed - the PHP world seems really short of such tools, which either means a) they're there and I've missed them, b) no one in PHP-land is interested in writing them, or c) Integrating w PHP's core is much harder than other languages. For example, NewRelic's PHP support is still not on a par with their Rails support...
- deleted 14y ago
- joelthelion 14y ago>Squash uses git blame to figure out whose fault it was Questionnable assumption, to say the least. Still, not a bad idea. You could also send a file to the people who contributed most of the culprit file.
- torrenegra 14y agoHave you considered using a professional voice over for the screencast? It will help you look more trustworthy.
- No1 14y agoYes, and bringing on a non-technical cofounder who can do marketing for you. What's better, 50% interest with a big market share or 100% of none? How are you ever going to be on the front page of TechCrunch? Seriously, this is an open-source project. Why in the world would he use a professional voice over? That's just weird. If anything, the home page is too polished. People seem to be mistaking it for a well-funded commercial endeavor.
- markprovan 14y agoNice, going to give this a try, along with errbit! (https://github.com/errbit/errbit https://github.com/errbit/errbit)
- sgrove 14y agoYes, very curious why the effort didn't go into an existing solution like errbit? Off the top of my head, errbit is rails/mongodb, which isn't a great combo for scaling out to the size of, say, Airbrake, but then Squash itself is written in rails. The code in Errbit is quite reasonable, and the team is great as well - would love to hear the rationale!
- riscfuture2 14y agoThe origins of Squash predate Errbit. In addition, Squash is laser-focused on solving a specific problem, the signal-to-noise ratio in dealing with exceptions. The idea is get the bugs assigned or fixed as soon as possible, and bother as few people as possible.
- lobster_johnson 14y agoWe have been using Errbit for about six months. We are reasonably happy with it. On the plus side, it does the job; that is, it allows me to do my job. The UI is reasonably clean, and it reports every exception to our Campfire room. On the minus side, Errbit is somewhat buggy, and very slow. If it gets any load at all (say, above 2-3 exceptions per second), it becomes near-unresponsive. A casual look at what it's doing seems to indicate MongoDB traffic. We are running Errbit on a small VM, but the slowness is way beyond what can be explained by the VM. So on the rare occasion we get an exception storm it's pretty much impossible to access Errbit. It's also terrible at merging identical exceptions. Not sure why, haven't look at the code, not bothered enough to do so.
- sgrove 14y agoWe had similar problems as well, but I do miss the user experience. Performance-wise it's just not there though.
- gmack 14y agoThis is all fine and dandy, but there's too much emphasis on finding the "engineer at fault" and blaming.
- riscfuture2 14y agoThe emphasis is on finding someone who can either fix the problem or knows someone who can. The idea is that when you get an email from Squash, you should pay attention and respond immediately, rather than getting thousands of emails that you don't really care about.
- JackDanger 14y agoIn practice the tool doesn't have any blame feel to it. When I commit code that causes problems Squash correctly identifies me and lets me know what to fix. And when I was mistakenly chosen I'm still a good candidate for triaging the bug and sending it off to the appropriate developer.
- jjbohn 14y agoAll the breath & pops in the microphone is really annoying. You should re-record the audio using a pop filter or something?
- lwf 14y agoThe focus on finding "who's at fault" is going to immediately put people on the defensive, I'd imagine.
- riscfuture2 14y agoIt's more about finding one person to give responsibility to (or who can delegate responsibility). Emailing a whole team means a whole team ignores the emails.
- andrew93101 14y agoIf this lives up to even half of its potential, it will be fantastic. Also, routing exceptions using git blame isn't about placing blame on individuals for defects, it's about automatically managing and routing the massive quantity of exceptions that can occur in a large rails app with many users and many developers.
- lbarrow 14y agoThis product reinforces a mindset that I find harmful. Where I work, teams of developers are responsible for products -- we all own the quality and robustness of our product's code. If the application is broken, why would you only email the person or pair who wrote the particular line of code that excepted? Am I supposed to pretend broken code is not my problem unless I personally wrote it? Development is a collaborative activity. If a product is broken, the whole team needs to know, so the whole team can fix it.
- Zelphyr 14y agoI don't disagree. However, it seems like the idea with Squash is to give the person who is most familiar with that code the chance to fix it quickly. Fixing a bug early in development is my problem. Fixing a bug in production is all of our problem. I think Squash encourages the former in order to mitigate the latter.
- jordoh 14y agoThere are a couple assumptions here that seem like they could be pretty faulty: 1. Whoever touched a line of code last is most familiar with that line of code. I just moved a method to a different module, so following this assumption I am now the person most familiar with every line contained in that method. 2. The line of code triggering the exception is actually at fault. I just changed a value in a configuration file and it triggered an exception off in some code that creates a network connection - code I've never touched. How faulty these assumptions are probably varies pretty wildly from organization to organization.
- ithcy2 14y agoIn your first example: you are not necessarily "the person most familiar", and I don't think that's the assumption. You are, however, likely (to some degree) to know who should be contacted to resolve the real problem. In your second: If you changed a value in a configuration file and it triggered an exception somewhere, many people would say you are at fault for not testing your change. Most places I've worked there's a simple rule: whoever last touched the code that broke is responsible for getting it fixed. That isn't meant to be taken literally in that I must actually make the code change myself. It means that it can be assumed that if I'm touching some code, I'd better be familiar with the code I'm touching. If that means I delegate the fix to the original author, then great: It's still getting fixed. If I can delegate to someone who's better suited to make the code change, that's OK too. If not, I make the fix. In any case, If I'm changing a line of code, you can assume that I'll know what action to take if that change breaks something. If I don't, I shouldn't be allowed to make the change in the first place.
- gfodor 14y agoFirst you have a bug in your javascript somewhere. I use a real mouse and if I scroll to the bottom of the page via the scroll wheel it jerks me back up a few pixels. Second, as others have mentioned, I loaded this page, scanned for a few seconds, and still really had no idea wtf Squash was. Finally, this phrase: "Squash uses git blame to figure out whose fault it was" is really terrible. This assumes that someone is at "fault" for introducing a bug. Not all software organizations embrace this concept and instead consider bugs being introduced as a team-wide or process failure, and do not make a point to assign blame to defects to individuals. Be careful not to shoehorn your own views of methodology into your marketing.
- riscfuture2 14y agoFixed up the marketing page. It isn't about blame, it's about finding one person (and only one person) who is likely to be able to fix the bug or at least know who to delegate the bug to. The workflow is around reducing signal to noise, so that if you get an email from Squash, it's something you need to take action on. Either fix the bug or find someone who can. That's why it always tries to find one person to give responsibility to.
- PanMan 14y agoInteresting: With the whole 'marketing' page I expected a hosted service (and was looking for the pricing page), not an opensource project. Looks great!
- jawspeak 14y agoSo this is open sourced by Tim at Square. We're hiring (-: https://squareup.com https://squareup.com
- dasil003 14y agoI'm surprised at all the criticism over the blame mechanism. It's clear the goal here is to avoid the diffusion of responsibility that occurs when dozens of people are getting the same exception emails. And in any case, what kind of developer worth his salt is offended by blamed for a bug? I mean sure if someone is being an asshole about it, or if they jumped to the conclusion that it was you when you had nothing to do with it, but if git blame algorithm flags you then what is there to be offended about? Surely we all accept that good software can not be created by tiptoeing around the facts and occurrences of the software development process? This looks like fantastic software, it's the most exciting thing I've come across in several weeks or maybe even months, and I'm looking forward to trying it out.
- void-star 14y agoagreed. Squash is finely tuned with a set of features to fill in gaps found in another very popular commercial tool in the same vein. tl;dr: don't knock it till you try it!