Ask HN: What is your startup? - <AUTHOR>

I am planning to launch a new blog about startups. So I am in hunt for some awesome tech startups that I could write about. I don't want to publish startups that have been on techcrunch, rww, tnw, I want to publish totally new ones and I know HN is the right place to find some. <comment><USER2> My team and I have been working on Lucidchart for a little while now.

<https://www.lucidchart.com>

It's an HTML5 diagramming and wireframing app. We've had some coverage but are still in the early stages in this billion dollar per year industry. Happy to set you up with an interview with one of our founders.

<comment><USER3> I've been using your product for awhile now. I love it! Keep up the great work.

<comment><USER2> Great to hear! If you have any feedback, please let us know. Any killer features missing in your opinion?

We have got some big and fun things coming in the next few months.

<comment><USER3> I can't think of any missing features that we have run into. We have used it mostly for collaborating database designs. Can't wait to see what you guys have in store!

</comment></comment></comment></comment><comment><USER4> Authic is a secure, brandable authentication service that provides nice authentication screens / flow for your web app, allowing you to concentrate on what makes your app unique.

<http://Authic.com>

Our MVP does all the standard authentication forms/functionality/ We also make it really easy to hookup social signin with a number of popular providers.

On our roadmap is functionality for group/role manangement and turning your app into a paid subscription service using stripe.

We've launched our closed beta and are looking for a few more beta user developers to get our MVP tight before a wider real launch.

p.s. Please excuse our marketing pages - they are attrocious :-(

Right now we are concentrating on pushing out functionality / changes as requested by our beta developers.

</comment><comment><USER5> <http://Aurametrix.com>

Aurametrix is an analytics engine driven by knowledgebase of everything related to health. It makes connections between your specific symptoms or measurements and your weather, air quality, food, exercise, and any kind of activities.

</comment><comment><USER6> Microcosm is a platform for forums, discussion boards.

<http://microco.sm/>

We're funded by our users (we already own some forums).

London based, but if you're in SF we'll be passing through first week of Feb if you're into having a beer at Zeitgeist.

</comment><comment><USER7> We launched a physical product - inspired by the AirBNB cereal box story: The WordBiLLY.

<http://www.WordBiLLY.com>

What's a WordBiLLY? They are custom-crafted Word Sculptures of your favorite Word/City/Name or Quote. We also make Twitter ID signs - swag for the home and/or office.

We manufacture each BiLLY here in the United States and hand-finish the pieces in our garage before shipping (yes! an American garage company!)

WordBiLLY is a design company focused on creating modern specialty goods in the area of lifestyle products. We are a couple of college seniors at UNCC in Charlotte, NC and we launched this product in the summer of 2012 to pay for our technology startup.

Would love to hear feedback/ product ideas!

</comment><comment><USER8> I just launched an internet of things startup for gardeners yesterday. I'd be happy to talk with you.

[http://www.kickstarter.com/projects/1387729422/plant-link- li...](http://www.kickstarter.com/projects/1387729422/plant-link-listen-to- your-plants?ref=city)

</comment><comment><USER9> <http://qatab.com/>

It's not mine, it's a project of one of the guys in my area. Embed a tiny little tab on your site, and users can easily send you feedback about problems with your site. His software automatically collects information about the user's browser, environment, and configuration, saving you the hassle of trying to figure all that out on your own.

He's done a really nice job on it. We ended up using it on the site for our recent hackathon, and found it was also an easy way to post a quick message to the webmaster about an update.

<comment><AUTHOR> Looks nice!

</comment></comment><comment><USER10> <http://www.actionshotsapp.com>

Action Shots lets online retailers easily collect, moderate, and display photos of real customers using their products.

We're also moving to help news organizations enable safe user submitted content. The moderation system keeps editors in control while enabling the person on the scene to quickly submit photo content.

</comment><comment><USER11> <https://degoo.com> \- we offer free online backup in exchange for sharing some of your hard drive space.

</comment><comment><USER12> <https://annotary.com>

It's a social bookmarking / annotation service for the web. Highlight web pages, take notes, share with colleagues and friends. We're just about to launch a collaboration toolset for businesses and organizations. Happy to chat more about it - my email is in my profile.

<comment><USER13> Really cool. I'd need to be running it to see notes that someone else has made on a web page?

<comment><USER12> You should be able to see other users' highlights and notes on pages even without signing up. We made sure to include this in case you'd like to share your annotated pages on Facebook, email, etc.

Click on a few of the bookmarks in this collection and you should be able to see my highlights if you want to try it out: <https://annotary.com/collections/33/startup-marketing>

</comment></comment></comment><comment><USER14> Review Mailer (<http://reviewmailer.com/>) is a tool for iphone developers. You tell it which apps to watch and every time there is a new customer review for that app (on any app store in the world), it will translate it and email it to you. Simple and useful.

Roger That (<http://rogerthat.com.au/>) is an Australian catch of the day type eCommerce site that is launching soon. Thought we would try for a niche that is not tech!

I have also started a blog that is going to outline how to build a web app that generates $5000/month. First post is here: [http://devcomsystems.com.au/2013/01/the-web-app-challenge- ac...](http://devcomsystems.com.au/2013/01/the-web-app-challenge-accepted/) I am happy to do some cross promotion of your website if you are interested. Let me know.

</comment><comment><USER15> I have 2 candidates, neither of them are mine but my friends'.

The first one is <http://ollaa.com> The service lets you share 6 different activities you do most; like eating, drinking, watching, buying etc. It is similar to Path in some aspects. You can connect with one of the cofounders through his site: <http://ahmetalpbalkan.com/>

The second service is <http://gonnasphere.com> That is a collaborative to-do list that you can share your gonna's with your friends.

I am not related to any of the services so I might have not explain them well. If anyone is interested they can check them out.

</comment><comment><USER16> <http://BusinessLeads.com>

BusinessLeads.com lets sales people reach the people they want to pitch to by offering bounties that are paid out directly to whoever connects them with their ideal lead. Crowdsourced business development presents an income stream for anyone with professional contacts who wants to pay it forward while getting paid.

Yes, we know the landing page is no good. But check out the videos and explore the site. Feedback most appreciated.

Recent $2,500 Bounty on Mark Zuckerberg: <http://news.ycombinator.com/item?id=4916201>

@BizLeadsDotCom

</comment><comment><USER17> <http://www.betapunch.com> \- we offer a free screen recorded user test for your startup. Of course we provide the option to purchase additional tests too. Get feedback in less than 1 hour from signing up.

</comment><comment><USER18> Teelaunch

        We print & ship your t-shirt rewards

Website: <https://teelaunch.com>

Twitter: <http://twitter.com/teelaunch>

Facebook: <http://facebook.com/teelaunch>

Github: <http://github.com/teelaunch>

AngelList: <http://angel.co/teelaunch>

\--

Sign up for early access & updates: <http://eepurl.com/tnwV1>

</comment><comment><USER19> <http://smash.ly> \-- In the about.me/flavors.me space where you create a profile, but in our case we integrate your content in a feed. The idea was spawned by the fact that so many of us have personal domain names that always get outdated, so we built something that uses content you're already creating to make your personal website looking fresh. Here are a couple sample profiles:

<http://smash.ly/matt> <http://degroat.net/>

email: chris --at-- degroat.net

<comment><AUTHOR> This looks very neat! On my list!

</comment></comment><comment><USER20> Offdesk is a web platform where you can access (and build) all the Web-based tools you need to get stuff done. I've

bootstrapped the project and am gearing up for release in a few months.

<http://www.offdesk.net>

we leverage the strengths of a social media model and then turn that model inside-out. It's a virtual desktop built around a massive collection of web- based apps,

and the social aspect of the network is shifted to a secondary, supportive role. Welcome to the social worknet.

I'd love to get your opinion on this project.

</comment><comment><USER21> SkillGrind is a marketplace where video gamers can teach other gamers what they know. Teachers can set any price they'd like and can teach whenever they'd like. Lessons are held within our Flash classroom and happen in real- time.

<https://skillgrind.com>

We handle all of the booking, listing, and payment processing (through our PayPal integration). We support screen capturing software such as XSplit and OBS.

Please excuse the rough edges, I am the only engineer and the list of things to get done is long. :)

</comment><comment><USER22> Torapp guilloche designer is an online graphics editor and it can be used to design very complicated guilloches for security printing. <http://www.torapp.info>

<comment><USER23> Did you pivot from a mobile app that would let you run Tor on your phone?

<comment><USER22> No, that is not me.

</comment></comment></comment><comment><USER24> <http://gibbon.co>

Gibbon allows you to learn from those who have already reached your desired goal. We enable experts to share their knowledge by creating channels containing articles, books or videos that they found most valuable. By following their channels you have a rare insight in the mind of an expert and you are presented by a curated, high quality, treasure trove of knowledge. We also enable you to further improve your understanding of a subject by discussing it with fellow readers.

</comment><comment><USER25> I'm bootstrapping (almost done!) WiseCash, which brings cash-flow peace of mind to freelancers and small business owners.

<https://www.wisecashhq.com>

A video presentation is available here too:

<http://wisecash.wistia.com/medias/zz6rn5n4v7>

Free to use while in "private release", and early users will have a discount on the coming monthly subscription.

Feedback most welcome!

</comment><comment><USER26> <http://www.improvely.com>

"Improvely helps you track and improve your online marketing results, while monitoring your ads for signs of click fraud. Easily check the performance of all your ad campaigns, social media links, organic and search traffic from a single dashboard. Plus, set up landing page A/B split tests for any of your ads without having to update URLs in your AdWords or Bing Ads account — losing your hard-earned Quality Score."

</comment><comment><USER27> <http://www.procedureoffice.com>

Do you have repeatable procedures in your business?

Well-written standard operating procedures provide direction, improve communication, reduce training time and improve work consistency.

We are busy coding a brand new standard operating procedure creation and management tool!

If you would like to chat, please feel free to add me on skype, wclxtn

Or just pop me an email firstname.lastname@example.com

</comment><comment><USER28> <https://2studentbodies.com>

Not really a startup per se as it's a non-profit hobby project, but still relevant I suppose since it is, after all, a tech-powered platform. 2studentbodies is a dating website targeted toward college campuses/students.

It's a mashup of Craigslist (ad-style posts), IRC (group-based chat with private messaging), and the now-defunct LikeALittle (college-oriented subsites with the ability to flirt anonymously.)

</comment><comment><USER29> <http://snapmanage.com>

Member management software for fitness centers & health clubs.

I forwent college to pursue this.

</comment><comment><USER28> <http://devoired.com>

It's not live yet but we're aiming for a Q1 launch. Devoired is a homework help site that connects students (clients) in need of academic assistance with people (contractors) who can help them. Contractors bid on jobs, and clients choose a bid depending on the contractor's reputation and asking price. Our business model revolves around taking a small commission from each completed job.

</comment><comment><USER30> <http://meople.net> lets you gather all your friends information flows in one place with ease and never lost the track.

</comment><comment><USER31> <http://www.listnerd.com>

Listnerd is a kind of Pinterest for lists. Users can create, share and explore interesting lists about the stuff in their life they care about. The lists are social, so your friends can vote on and add items to your list. It's a democratic approach to list making. We launched the site on the 15h of November, so we could use the exposure :)

</comment><comment><USER32> <http://CrowdEngage.com>

In private testing stage now: CrowdEngage enables brands/smb's to easily launch video based engagement campaigns or competitions.

Here is a blog post that should help clarify: [http://blog.crowdengage.com/hot-off-the-press-video- marketin...](http://blog.crowdengage.com/hot-off-the-press-video-marketing- tool/)

</comment><comment><USER33> <http://www.sawtoothideas.com>

Online marketplace for high quality woodworking plans and software on iPad, iPhone, Mac, and Windows for exploring woodworking plans in 3D: rotate, zoom, isolate, explode, etc... We released the IdeaRoom software very recently, so we have a lot more we plan on adding like resizing the project and customizing wood textures.

</comment><comment><USER34> I just finished my Final year project, I consider it as a startup,

<http://officeworld.my/> \- Smartphone attendance system.

Walkthrough is available here, [http://www.behance.net/gallery/Office-World- Smartphone-Atten...](http://www.behance.net/gallery/Office-World-Smartphone- Attendance-System/6522635)

<comment><USER35> There are some grammer errors in your introductory text. I'd suggest: "Office World is a smartphone attendance system that allow your employees to check-in and check-out through _their_ smartphone _s_. It _is_ also a Time Tracking application."

<comment><USER34> thank you, i just fixed it.

</comment></comment></comment><comment><USER36> <http://cognika.com>: founded out of our tech principal's MIT research. We are a _visual_ search company ("Google for video") provisioning search within video or imagery. The query is an image or video clip, we find the Object of Interest and Activities of Interest (e.g persons gathering, vehicular u-turns etc.).

<comment><USER37> Interesting! Any plans to enter the commercial market?

</comment></comment><comment><USER38> Ritc (<http://ritc.io>) is launching soon. It's a rule engine as a service (platform + api) that allows you to efficiently connect cloud services together to bolt on functionality into your applications.

Think of it like an API that lets you build an IFTTT clone.

Please excuse the site...we haven't quite launched yet!

</comment><comment><USER39> TradeGig

<https://www.tradegig.com>

TradeGig allows you to trade services or "buy" services from others for free. It uses a point system for purchasing (no point needed for trading). Points can be earned (by servicing others) or given (via our daily code posted on fb/tw). Come visit us!

<comment><USER40> I like it very much!

</comment></comment><comment><USER41> OnStar + Siri for Shopping. <http://helpping.co>

Shopping at Target / Walmart / Safeway / etc. and can't find what you're looking for? or just have a question about a product? or just need some help?

Press a button. Talk to a person. Get your problem resolved. Quick. Easy. Simple.

</comment><comment><USER42> About to launch BagPix: <http://bagpix.com>

An easy and quick way to share products you have, want or like with your friends, family and the whole world

Additionally I am working on an way to comunicate securely via text messages and phone calls.

</comment><comment><USER43> <http://www.walletkit.com/> WalletKit is a SaaS platform for businesses to create,manage and deliver to its customers digital Boarding passes,Tickets,Store cards and Coupons for mobile wallets like Apple passbook and Google Wallet.

</comment><comment><USER44> <https://artistsnclients.com>

Artists&Clients lets you quickly hire an artist to create a customized artwork for you (most often digitally). And for the other side, it's a tool that lets artists manage these art commissions.

</comment><comment><USER45> My startup is www.parkuik.com.

It's all about a collaborative work between all of us to find the best parking spots in all the paces you could ever imagine.

In a few days it ll have an Android app too to find them wherever you want.

Hope I can be listed in your blog!

</comment><comment><USER46> I've got 2! Feel free to contact me at firstname.lastname@example.com with any questions :)

<https://tarbackup.com> \- easy linux backup

<http://drop.mx> \- simple private sharing

</comment><comment><USER47> BoxedCircle makes it easy to connect with like minded people wherever you go.

<http://www.boxedcircle.com>

<http://twitter.com/BoxedCircle>

</comment><comment><USER48> <http://www.shodanhq.com>

A search engine of all Internet-connected devices. Lets you find anything that's on the Internet based on the software it runs, where it's located and a bunch of other filters.

</comment><comment><USER49> <http://www.chatterblock.com/> \- family focused activity discovery and discussion. Get in touch with me via the email listed in my HN profile, and I'll put you in touch with the right person.

</comment><comment><USER50> Launched <http://www.cameralends.com/> last weekend for peer to peer camera gear loaning. Not sure I'd call it a 'startup', but it's a service I'm actively working on and trying to grow.

<comment><USER51> That sounds really handy, but what happens if someone damages your lens?

<comment><USER50> Right now the lenders are friends of mine, and they understand that I will personally comp them if there is any damage. I realize that won't scale, but it doesn't need to yet -- I'll worry about it if/when it becomes a problem.

Still trying to figure out how to do this :) so any and all feedback is welcome!

</comment></comment></comment><comment><USER52> Merchpin is a self-service merchandizing platform allowing brands and marketers to target products on websites, blogs, Facebook, and more.

<http://www.merchpin.com/>

</comment><comment><USER53> <http://www.goingclubing.com> Local events in NY.

<http://www.nyfreelancers.com> local job board.

</comment><comment><USER46> Judging from web traffic, it looks like this post got flagged by HN mods.

<comment><USER54> "Judging from web traffic", what web traffic? What do you mean?

<comment><USER46> I was just checking out the realtime traffic to my sites, it was significant for a bit, then it dropped off and the OP's post dropped from the front page.

<comment><USER54> Ok, thanks for the explanation. I wonder if "Ask" posts fall off the front page faster than link posts.

</comment></comment></comment></comment><comment><USER55> We're launching <https://codeable.io> in monday

= Get your WordPress customized, updated or installed by a qualified expert in a matter of minutes.

</comment><comment><USER56> <http://easyendorse.com> \- easy way to collect/display testimonials on your website. just launched a few weeks ago and haven't had any coverage.

</comment><comment><USER57> <http://www.serpi.co>

Serpico is the SEO/Backlink Intelligence product that we just launched. Feel free to contact me at the email in my profile.

</comment><comment><USER58> I've been working on this for a while now: <http://blogmate.is/>

Saving, organizing, highlighting, and annotating blog articles you find.

</comment><comment><USER59> Foresight Streaming Systems is a Twilio for video.

<http://foresightstreaming.com>

Feedback on the landing page appreciated!

</comment><comment><USER60> <https://getpocketbook.com>

Making managing personal finances ridiculously simple. Currently only available for Australian banks.

</comment><comment><AUTHOR> So far...I love the startups guys. Will definetaly dig into most of them for writing a story.

Also it would be useful if you could add your twitter account in the comments!

</comment><comment><USER61> I just have started a blog about my first internet startup. It'll provide an inside look, starting from day 0. I would be pleased if you follow me on twitter: @ptck_s

</comment><comment><USER62> Been working with a couple of friends on a new CMS which works without a database: <http://www.statamic.com>

</comment><comment><USER13> I've got one for you! www.tvphoon.com

Read this and feel free to contact me: <http://tvphoon.com/press>

</comment><comment><USER63> <http://www.nodemesh.net> \- Although I am the only person working on it, I could use some traction!

<comment><USER64> Just a little feedback, but I had to go to the AppStore page of HackerNode to find out what Nodemesh actually is. Although I'm still not sure what the relation between Nodemesh and hackernode is exactly. It's a company that develops iOS apps?

<comment><USER65> Agreed, I have no idea what it does when coming to the home page which makes me want to leave. Maybe a couple of sentences would help with context.

</comment></comment></comment><comment><USER66> <http://www.knackhq.com>

Knack is the easy way to build online databases and web applications.

</comment><comment><USER67> None, but I did this last week.

<http://sportsapi.raptorsrepublic.com/>

</comment><comment><USER51> <http://www.handwritr.com/>

A site to convert your handwritten documents to text.

</comment><comment><USER68> Review19 = Collaborative decision making + project tracking

<http://review19.com>

</comment><comment><USER69> Localbitcoins.com, location-based bitcoin-to-cash marketplace. Been running for over 6 months now, almost 10k users and growing.

</comment><comment><USER70> In beta. Feedback will be appreciated.

<http://www.beautyglance.com/>

</comment><comment><USER71> It would be exceptionally helpful if you put your email address in your profile, too (in the "about" section).

<comment><AUTHOR> added my email.

</comment></comment><comment><USER72> Apple.com - we make phones, computers, and tablets with really aesthetic exteriors.

</comment><comment><USER73> Wigwamm - an auction for rental property, every Monday night

Http://Wigwamm.co.uk

</comment><comment><USER74> Http://muscula.com log javascript errors in production :-)

</comment><comment><USER75> Can't wait to see the blog. What's the link?

</comment><comment><USER76> www.d-inspire.com collaboration, task & project management

</comment><comment><USER77> www.postjobfree.com - a job board and resume aggregator.</comment>


Why Privacy First Products will make business sense (2015) - <AUTHOR> https://blog.simpleanalytics.io/why-privacy-first-products-will-make-business-sense <comment><AUTHOR> Feel free to discuss what you think and if it is still relevant, I think it is.</comment>


Stallion, a Python package manager - <AUTHOR> http://perone.github.io/stallion/

<comment><USER2> Very cool. This is a nice way to remind myself that I need to use virtualenv more often :-)</comment>


Why Is It Bad for Tech to Eat Jobs? - <AUTHOR> http://techcrunch.com/2014/11/01/why-is-it-bad-for-tech-to-eat-jobs

<comment><USER2> If you can jut sit there no do nothing and get paid a basic income from the government, many people will choose not to work, which will have a cascading effect over time where les and less money gets pushed back in the form of taxes and the system collapses. The only way is would ever work is if e government forced you to work at the threat of going to jail.

Human nature is a bitch and can't be ignored.</comment>


Today I accept that Rails is yesterday's software - <AUTHOR> https://medium.com/@deathdisco/today-i-accept-that-rails-is-yesterday-s-software-b5af35c9af39#.q7gtv9q9v <comment><USER3> Being "yesterday's software" is a necessary step. It's the final part of the Gartner hype cycle: maturity.

[https://speakerdeck.com/tehviking/surviving-the-framework- hy...](https://speakerdeck.com/tehviking/surviving-the-framework-hype-cycle)

<comment><USER4> Here's the video: [https://www.youtube.com/watch?v=0MojR1XUEc0](https://www.youtube.com/watch?v=0MojR1XUEc0)

As an aside, how do people consume slide decks? It doesn't seem as interesting without the associated lecture...

<comment><USER5> Decks are only consumable if they have:

       1. extensive speaker notes included as an addendum

       2. all of the content on the slides (which usually makes for a bad presentation)

Some presenters will have 2 versions of their decks -- one minimal version for the presentation, and one extended or enhanced version for later reference.

<comment><USER6> I've been pestering the SpeakerDeck folks to allow me to paste in my notes, even slide by slide. I have extensive notes but it makes for an ugly export. It'd be awesome if I could tag it as metadata somehow.

</comment></comment></comment></comment><comment><USER7> The article seems to be lamenting three things:

1) Batteries-included web frameworks (like Rails and Django)

2) Interpreted languages without strict typing (like Ruby and Python)

3) Programmers relying on large numbers of dependencies (e.g. ruby gems), and the resulting difficulty in reasoning about the software

The last paragraph then goes on to suggest that different languages are required. This seems wrong. If you want to write web software you can reason about, you can still use web frameworks (maybe Flask or Sinatra) and you can still use third party packages (gems or things from pypi).

If you import a library (left pad or whatever) and call it from your code, then you can still reason about what's going on. The problem comes when you rely on adding packages that just talk directly to your framework (like Django middleware). Once you do that a few times, you really don't know what's going on between a web request hitting your server, and your own code running.

<comment><USER8> > The problem comes when you rely on adding packages that just talk directly > to your framework (like Django middleware). Once you do that a few times, > you really don't know what's going on between a web request hitting your > server, and your own code running

I think this is where the lack of strict typing can make things harder to figure out. Especially if you're trying to understand middleware functions with opaque signatures (like __kwargs in Python). IDEs like PyCharm do their best at providing "Find all references", "Go to defintion" etc, and that helps, but it's not quite the same. Putting the info in the docstring is better than nothing, but it's still harder to parse (and maybe not machine parseable) and who knows if it's really correct?

Personally I'm really hoping mypy or type-hinting really takes off in Python 3, and makes everyone's life easier.

<comment><USER9> But is that really a problem of non-strict typing, or rather a problem of metaprogramming? I could imagine even a very strongly typed system in Haskell or Scala would probably be hard for an IDE to support if it uses a lot of complex abstractions to create internal DSLs (like Rails and I guess Django as well do).

<comment><USER8> I can't speak for Rails, but at least with Python (primarily Flask) it's not internal DSLs that have caused me problems. I don't think Flask attempts to be a DSL at all, actually. From what little I've seen of Django it isn't trying to be a DSL either (unless I'm misunderstanding that term). It's more when I have 2 or 3 Flask libraries or middleware and they each are documented as if they exist in a vacuum but I want to use them all together and I wish it was easier to see that all 3 have functions that take a Flask Blueprint object, so they're probably all related, or that these functions work with URL objects, etc...

It's a general complaint about Python and the tooling I suppose, not specific to web application frameworks.

<comment><USER10> >From what little I've seen of Django it isn't trying to be a DSL either (unless I'm misunderstanding that term).

Django bundles two DSLs - the ORM (filter, etc.) and the templating language.

>I don't think Flask attempts to be a DSL at all

Flask bundles jinja2 and sqlalchemy which perform the same purpose.

<comment><USER8> Thanks, now I have a better idea of what constitutes a DSL. It had occurred to me that the ORM might be one, but I forgot about Jinja2 which clearly is.

Though, being pedantic, Flask doesn't bundle SQLAlchemy (though it's what you end up using) unless things have changed recently.

</comment></comment></comment></comment></comment></comment><comment><USER11> I am thinking about completely stopping reading Hacker News. I enjoy the community a lot but every time I am learning something new I read about how its old and shitty and will cause hair loss when you try and invest any time in it. It puts the breaks on actually learning with the distraction of going and trying to find that new ambiguous stack that the author is hinting at.

<comment><USER12> Rails has a bright future ahead despite what this article states.

Consider for a moment that most projects just need to figure out product- market fit before we know where to throw the money to scale. Rails remains to this day the tool I go to for building web applications because it's so well suited for building something quickly. Sure the effort to make it scale is present but I see any scaling effort as big regardless of framework or language.

<comment><USER13> > Rails remains to this day the tool I go to for building web applications > because it's so well suited for building something quickly. Sure the effort > to make it scale is present but I see any scaling effort as big regardless > of framework or language.

This is why I continue to use Rails despite being interested in this that and the other new thing. It's very productive in terms of getting something up and running.

I mean, heck, Twitter started with Rails, and despite some hiccups, managed to grow. And Twitter is pretty much the poster child for something that has to scale massively. Odds are, you won't have the same problem.

<comment><USER14> Twitter is the poster child for dumping Ruby.

Even if Rails is God's gift to CRUD app prototyping at some point you have to ask if building a tech stack on something that is going to fail hard as soon as you get popular is providing a good service to those who are paying you for the quality workmanship.

<comment><USER15> Getting to market quickly is often more important than contemplating about handling Twitter like traffic.

Also, I haven't heard of an application that never had to be rewritten partially/optimised after X years in production. Some problems just don't present themselves in the first couple of years.

<comment><USER16> Your statement is too cautious. At the start of a project, getting to market quickly is VIRTUALLY ALWAYS more important than handling Twitter-scale traffic. People are simultaneously confident their idea will be popular and afraid of failure, so we have a strong tendency to over-engineer for scale.

If it _does_ scale, don't be surprised if you have to toss out your v1 and rebuild. The difference between a good framework and a bad one isn't about whether it survives scaling; it's about the details of when it fails, how it fails, and whether you can fix it incrementally or if you're signing up for a rewrite-while-hair-on-fire.

<comment><USER14> > it's about the details of when it fails, how it fails, and whether you can > fix it incrementally or if you're signing up for a rewrite-while-hair-on- > fire.

So the important questions are:

1\. Does Rails performance degrade gracefully under load?

2\. Can you gradually shift away from a quick-and-dirty Rails-based implementation to something more scalable without the dreaded "rewrite-while- hair-on-fire" scenario?

In my experience, the answer to both of these is 'no'.

(But these challenges are hardly unique to Rails.)

<comment><USER17> Given the example of Twitter I'd say that the answer to the second question is yes. They rewrote the Ruby (not Rails) backend and continued serving tweets. Did they have theirs hairs on fire? Maybe, but I don't think you're never in hurry when you rewrite parts of a popular service.

About question number one: no idea, but you can add more machines and scale horizontally. Then you might ask if you want more efficient code between the web server and the database. You can optimize up to C. Finally, Twitter is still using Rails for the front end AFAIK, so it shouldn't be so bad.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> So, Rails has warts. What system that is used to build real world software doesn't? I've built systems in a number of languages and frameworks and they all had warts and issues.

How much research has the author done to find other solutions? The plea at the end seemed very lazywebish to me. Or maybe ghost of Christmas Future-esque?

</comment><comment><USER19> The problem comes from this.

1\. The costs of any layer of abstraction and magic that we have internalized seem free to us. So we feel free to add a more marginal one.

2\. We have little visibility into any layer of the stack above or below ours.

3\. As people migrate between languages, they take what they did previously and recreate it. Only "better".

As a result, complexity grows over time. And programmers are really bad at noticing/correcting it. And when they try, they will come up with different prescriptions. Often opposing ones. Explicit is good. (Go.) Don't let people mutate state. (Functional languages.) Convention over configuration. (Rails.) Move work from programmers to IDEs and tooling. (Java.) Make programmers productive so more gets done with less code. (Most scripting languages from Perl on.)

Over my lifetime, I've watched the resulting slide into complexity. Reading up on history I recognize that it had been going on for decades before I learned how to program. And it shows every sign of continuing to accelerate going forward.

</comment><comment><USER20> Just use Java people. You can bootstrap a Spring project in 10 minutes and it will have every feature (ORM, security, caching, MVC) available with just a maven dependency or you can roll your own and it will work fine. Strong typing, good performance, sensible stack traces (if you don't overdo annotations) and all the testing and monitoring tools you could ever dream of.

<comment><USER21> This comment is what I feel like replying with to every article about some "fast iterating" language. IMO the only reason to use rails if you don't actually understand how web development actually works. Why would you pick a slower language and platform like ruby/rails when java/spring is right there available to anyone?

<comment><USER22> And Grails is very similar to Rails, and you get the full power of the JVM/Spring technology stack. And Groovy is a fantastic language that gives you the flexibility everyone like to dream about.

<comment><USER23> > you get the full power of the JVM/Spring technology stack. And Groovy

If Groovy and Grails are technology "to dream about", one wonders then why VMware (the Spring backers) retrenched their 6 developers working on Grails and (what is now Apache) Groovy early last year, and why Sun Microsystems (the JVM backers before Oracle) wanted nothing to do with Groovy in its day (despite supporting the JRuby and Jython developers).

<comment><USER21> Internal politics? Budget constraints? Bad management? Idk

</comment></comment></comment></comment></comment><comment><USER24> While it's true that Rails is sinking under the weight of its own cleverness, and is clearly the old hotness, this has nothing to do with Ruby the language.

Rails' problems are its own, and Ruby's limitations and problem domain are well known.

This is a terrible blog post by someone without much perspective. I award it no stars.

<comment><USER25> The author of the post at no point blames Ruby for Rails' failings... But also I'd contest your argument that they're unrelated. Ruby is what enables the too-clever metaprog that make Rails stack traces so opaque. Also Rails has almost certainly been the single largest drive of Ruby's growth and popularity - observe the significant overlap of core contributors to both projects.

</comment></comment><comment><USER26> I've been doing enterprise backend development (java/spring, scala, akka) for a while and occasionally miss the practice of sitting down and creating a fullstack app myself, which I used to do with php and crappy html. But then I sit down and try to work with existing Ruby/Rails codebases and hit a mental block.

I guess example #1 is method_missing. I get it, it's a huge time-saver and lets you do all kinds of cool things like specify a default behavior for an API if someone sends a random command, or, define the behavior of a method dynamically by the name of the phantom method. But then the rest of me is reflexively saying, "Seriously??" And I get that Spring Data does sort of the same thing, but at least there it's limited by domain. If I'm in a Ruby codebase that is taking regular advantage of that, my first instinct would be find calls that eventually go to method_missing, and then just define the damn method somewhere so that my IDE's "Find Usage" will work again. How the heck do you explore a codebase quickly if your IDE doesn't work?

I guess for me it just reinforces the same rules of thumb. Dynamic languages are fine if you're prototyping or doing an MVP. But as soon as you find that your codebase is being read/maintained more often than it's being written (which will happen sooner than you think), or as soon as you start finding weird production runtime bugs that don't happen in your local environment, you're better off with something strong or static or compiled.

As for how to get that safety full-stack these days, I'm still poking around. Scalajs seems interesting, or Angular2 with Typescript, or something that uses RxJs...

<comment><USER27> How about writing tests that enforce invariants?

I have been doing clojure dev for a little bit, and here's what I do -

\- Run tests in the background continuously (lein expectations will give you that. or you can write your own shell script)

\- Do small checkins, frequently to git

\- Write tests that enforce invariants. Haven't gotten to test check yet - <USER2> I guess that would be even better.

The trouble with types is they push you into a corner early, and after a while people will be coding to zombie constraints - the constraints that were there before, but not true anymore. They are also verbose, and need tooling to get you out of the corner. If the requirements change a little bit, it could be that, your old solution goes against the grain of the new problem, which is very hard to get rid of without rewriting the code.

With dynamic languages, I find that I think more about the problem, than trying to do constraint satisfaction with other entities in the code, not to mention the language itself.

<comment><USER26> I've honestly never felt like types have gotten in the way. I also write plenty of tests with plenty of mocking, it's just that the type system means we don't have to write tests for the things the type checker checks for.

I'm having trouble thinking of a time when I felt something akin to what you describe with zombie constraints. If anything, having a good type system makes it easier to rip out code that isn't used anymore. And Generics can help with keeping your solution from getting too specific.

<comment><USER27> The only dynamic language I used in production code is Clojure, hence my perspective is probably skewed by it.

> I'm having trouble thinking of a time when I felt something akin to what you > describe with zombie constraints

Think of deprecated methods in a class, unneeded methods in an interface that are stubbed etc.

> I also write plenty of tests with plenty of mocking

This is good. But what happens to mock objects when the underlying class changes its implementation - It needs a large number of changes in tests.

If you are writing micro-services, the guarantees that typed system gives you are more trouble than they are worth. If your average microservice is less than 10k lines of code, it probably reduces to 1000 lines of code in Clojure, and for the codebase of that size, typed systems provide little value for the cost(atleast for me).

</comment></comment></comment></comment><comment><USER28> I…don't understand the point of the article? Ok Ruby is duck typed and has a dynamic runtime. It has for…all of the time since it was created. Rails has magic… since…all of the time since it was created.

I'm not even defending Ruby or Rails here. Use at your own benefit/risk…as with every other programming language and framework.

<comment><USER10> The emphasis on magic was a particularly bad decision. It looked wonderful in the original screencasts that let you build a webapp in 5 minutes. It causes terrible pain when you're trying to do something complicated.

This was one of the mistakes Django made and - to their credit - got over relatively quickly. It began as a kind of imitation of Rails but they stripped out the magic pretty quickly and made it a lot more explicit.

</comment></comment><comment><USER29> From Stroustrup of C++ fame: There are only two kinds of languages [frameworks]: the ones people complain about and the ones nobody uses.

<comment><USER30> I think Rails might be a framework that nobody complains about, in the mid- term future. It is showing signs of age. And, though I say this with strong respect in my heart, the Rails governance is as opinionated and inflexible as the framework itself.

</comment></comment><comment><USER31> 1\. The first software wave was system level software. Developers wanted something but made their lives easier, but also wanted control and speed. C and then Java were the stars

2\. In the second wave, we got languages like Ruby and Python which are flexible and easy for developers to work with. Sometimes it's more important to be able to iterate quickly than execute quickly. Server software, app backends, etc were all implemented in whatever language was easiest using HTTP as an interchange with other languages

3\. In the third wave, developer experience enhancements that scripting languages pioneered trickled down to systems programming with new languages like Swift and Go. These give you most of the benefits of the second wave languages without their significant overhead. Since they are better suited to building small light services, old bulky Ruby / Rails app are starting to look antiquated pretty quickly.

I also used to go to Rails first for web projects... I use Go now because it's more lightweight. I used to do native apps in Objective-C... I now use Swift because it's easier to write.

</comment><comment><USER32> For those that are feeling fatigued from working with and around the magic of Rails, Sinatra is a great choice (in python land Django has an alternative called Flask).

[http://www.sinatrarb.com/](http://www.sinatrarb.com/)

That said, you will have to re-implement machinery that rails gave you for free. If you're building a simple API, there will be obvious simplicity benefits. If you're trying to build a server-side rendered web application, you may long for some things that rails provided (of course, you can use libraries and create simpler patterns than rails provided).

Note that going the sinatra+libs (or any "micro" framework for that matter) route places a higher burden on the development team when it comes to documentation. If you implement a scheme for server side templating/rendering outside of what is provided, you will be in a world of pain in a relatively short time if you do not maintain good documentation.

<comment><USER33> You will indeed have to re-implement stuff Rails gives you. But more importantly, you will have to maintain it.

I maintain a large-ish Sinatra app that should've been done with Rails. Update cycles on the gems are a nightmare. It feels cobbled together. it's a "half baked homegrown version of Rails."

Someday I will just move the logic to a new Rails app and be done with it. It was a terrible idea.

* your experience may vary. :)

<comment><USER34> Any sufficiently complicated Sinatra app contains an ad hoc, informally- specified, bug-ridden, slow implementation of half of Rails.

</comment></comment></comment><comment><USER35> Everyone who uses software older than your preferred framework is an out-of- touch fuddy duddy, and everyone who uses software newer than your preferred framework is a clueless hipster.

</comment><comment><USER36> I agree with some of the issues that the author points in Rails; but, at the same time, he is unable to name what is "today's software" using his words. Until then, I will stay with Rails. Until then.

Moreover, the author seems to be imagining Rails as a huge monolithic piece of software. That does not need to be true.

<comment><USER37> Doesn't the author end by saying Swift, Rust and Go are "tomorrow's languages"?

<comment><USER38> Yet he gives absolutely no justification for why those are "tomorrows languages". You don't use third party libraries or frameworks in any of those languages?

Personally I design my Django code to be as simple as possible. I use third party libraries, and don't see too many of the problems he talks about.

<comment><USER39> Probably because the author doesn't use them and thus has no idea of what their problems are, so they seem "perfect" from a distance.

</comment></comment></comment></comment><comment><USER40> It's not Rails. Web software development in general has simply plateaued across the board.

We're out of new frontiers to innovate around and the work from now on is about playing custodian to the innovations of the past.

Unless something spectacularly interesting comes along, the priorities of the web are now all about supporting what's already been built. Either by maintaining something hastily built and cracking at the seams with patches and fresh coats of paint - or replacing it with something more stable for the long haul. Rails was designed around rapid innovation, not the long haul. So it's in maintenance mode.

<comment><USER41> We finished the web guys, you heard it here first on hacker news.

</comment></comment><comment><USER42> Know your dependencies well. Keep them few and far between -- and well vetted.

</comment><comment><USER43> I've been using Scala for 5+ years now, so for me it's definitely today's software. Spray for REST backends, Wicket for HTML UIs. Clean syntax that can be as expressive as Python or Ruby, but coupled to a type system more powerful and effective than any of Swift, Rust or Go, light enough that you can lift things that had to be "magic" (like database-session-in-view) right up there into the type system.

</comment><comment><USER44> Honest question. What technology are people enjoying on the server-side with sites built in React or Angular? I've seen some of these done with Rails, and some done with Node, neither of which I personally enjoy a whole lot. (Note, I'm not making an argument that either are BAD - just that I don't really like working with them). I'm curious to hear what other people are having success with in production.

<comment><USER45> Pheonix looks promising. It's basically Erlang on Rails.

<comment><USER46> Or Rails on Erlang (even though I see what you did there).

</comment></comment></comment><comment><USER47> > Swift, Rust, Go, and the rest of tomorrow's languages, can you marry modern > thinking, build a community with simple as a core design goal, and save web > development from itself?

Go is great for plumbing, you can get network utilities up and running pretty fast with no dependencies so it's easy to deploy, that's its niche. Now try writing a complex eCommerce website, a news site, or any large app backed by a complex data model in Go...

I started to use Asp.net CORE on Linux with Postgres the other day and frankly, I don't want to hear about Go and its "simple" type system anymore when I can just use C# and do projects in minutes without fighting the language. Go is at at most a safe C with channels (without macros which make it worse than C in term of features).

My point is neither Swift,Rust or Go are silver bullets which will fit every use cases in Web Development. Neither is asp.net core,but for my use case there is no debate as to what I should be using.

Rust,Go and Swift aren't tomorrow languages. They are languages that fit a specific use case like every other language.

</comment><comment><USER48> I was dubious when I saw the Medium.com tld and a clickbaity title but it actually puts word on what I feel after 16 (ouch) years of web development. The difference was that I was blaming the tools and screaming "#fail" with the other rather than thinking like the author that we're in a conceptual dead-end (at least with popular tools).

</comment><comment><USER49> Don't blame your tools for an over-engineered project.

</comment><comment><USER50> If Rails, as of now, would've been a very fast framework, the post author would have never published such post, despite all the other "defects" he underpins.

Rails could eventually get very fast, but it can be frustrating that it's not right now!

This is the same kind of problem of Ruby not having a proper x-platform GUI toolkit or binary packager: you have such a expressive and powerful language and still you feel you are limited by the lack of speed and tooling.

That's why, IMO, a Ruby/Rails dev frustration can explode in such a strong way at some point.

Sadly Ruby isn't backed by a big corporation, so you can only wait for the language and frameworks to get more mature.

Personally I've dealt with this frustration by learning C#. It allowed me to overcome all the current limits of Ruby, while avoiding the Java ShitFactory. At the same it feels great to get back to Ruby when you want to explore ideas! It's still an unbeatable tool for prototyping. Being aware that I have knowledge of another language, makes me feel better, less frustrated, and I browse Ruby weekly news with much less "anxiety" for a revolutionary Ruby improvement (but still I browse it because I know it will happen sooner or later!).

I'm quite sure that the OP after having vented with this post, and having found what for him is a solution, then he will peacefully embrace Ruby or Rails again under a different light (but again, I wouldn't be so surprises to see big improvements soon, so maybe it could even be a better light!)

</comment><comment><USER51> Rails seems to become bloated for sure, but I think there is not a no brainer alternative out there.

When I first switched from PHP to Rails it was a natural choice whereas i don't feel Rails to Node.js is in its current state.

<comment><USER52> i wish someone could say the same for bootstrap

</comment></comment><comment><USER53> Well, the situations with coffeescript exceptions and exceptions-from-the- depths-of-hell are avoidable (hint: don't use coffeescript)... indeed Rails makes it easy but just because crazy amounts of gems are on offer doesn't mean one has to use them.

Ruby/Rails certainly has its quirks, and while Rails certainly does seem to be taking on more and more unnecessary dependencies, some are still plenty productive in day-to-day Rails. A lot of pain avoidance in Rails is following its opinions up-and-until it takes you further than you need to go

</comment><comment><USER54> I had similar experience with Grails. Discovering Grails and seeing how fast the first version of the application is up and running was fascinating. But sooner or later almost all generated code has to be replaced. It's not bad for the first iterations, but no time save in the long run. But the Grails magic was really awful! It cost so much time to find all the hairy bugs (in my own code or in Grails itself). Finally I stopped using Grails.

I perfer static typed languages now (not only because of Grails and Groovy). And I prefer to compose some specialized frameworks. For example JAX-RS (Jersey) is a very good REST framework. There is no need to force the user to use it with a certain ORM (if at all), a certain way to validate objects and so on. Just take what fit's best. Java is not the most elegant or productive language but there are other static typed JVM languages like Kotlin or Scala.

To come back to the article: I don't think that we need new languages, but another way to use existing frameworks and maybe statically typed languages.

</comment><comment><USER9> While I agree with many of the individual points he makes (rails dev myself), I think there is a kind of fundamental issue there that we have seen with most web framework/language combinations and will see with future ones, and that is that they usually come to life when one concept or idea they embody the best (for example mvc for crud apps with Rails, frontend/backend unification with node, native concurrency with Erlang, puristic http for microservices with Go) is becoming prevalent at some point, and then people put stuff on top of stuff which they put on top of other stuff, and then they realize that the problem they still have to solve is good architecture. And they need to balance that with business needs and developer availability.

I don't think any of that is going to change by switching to the next fashionable concept to base a web app on.

</comment><comment><USER55> So my question would be, what's the difference between Rails and other frameworks, especially since we are doing RESTful APIs from the start?

It would seem to me that Rails is just not the tool to use going forward for writing APIs for websites at scale. There are much better tools out there.

Rails' sweet spot is server side rendered pages that are quick to bring up and to add features. It seems great for certain types of websites so it does have its niche.

But moving forward, Rails for API vs. other frameworks in other languages is really a wash in terms of productivity, while other frameworks in those other languages are much more highly performant.

</comment><comment><USER56> So if Ruby and Python frameworks are not suitable web development platforms - what is? The OP gives no alternatives, just a long rant about the problems of web development with dynamic languages.

</comment><comment><USER41> I'm always tickled by the mythology that was sold thanks to a macbook and a textmate theme - that creativity is inherent to it, and that it is a pioneers tool, for craftmenship etc.

That might all matter if the first thing people did once deploying it was to port off of it. For software that has such a rapid expiration date, none of it selling points matter. You might as well have written it in php or perl.

Rails continues to be a favorite joke of mine.

</comment><comment><USER57> While I hear the argument, I'm tempted to think that the framework is largely irrelevant and that it actually is the ecosystem (package management and lack of quality control) that is harming platforms at large from Rails to Django to, obviously, node. I was very interested to hear of Elm enforcing Semver at the package manager level and I believe that this is a step in the right direction.

</comment><comment><USER58> Web development techniques are crying out for an "emperor's new clothes" moment. Approaches like GWT (+ a toolkit such as GXT) seem to be a far saner approach for many enterprise applications. On the other hand, there are large classes of problems for which Rails / Django / et al have shown good results. Vive la difference!

</comment><comment><USER59> There's certainly a lot of truth in this (I especially like the duck-typing image), but the example feels like it throws it all away. You can, after all, have a _super_ fast and simple asset pipeline by keeping things...simple (to say nothing of skipping it entirely); having CoffeeScript compiling to JavaScript is not really relevant to either Ruby or Rails.

</comment><comment><USER60> The question is where do you go from here if you're a Rails shop?

The last place I worked had 80% of their products running Rails 2 and 20% of them running on Rails 3. No product was ever both completed AND caught traction since.

Do you stick with Rails 5 for the next project? Do you meander over to Python or Node?

<comment><USER61> Dockyard, a Rails agency, is moving to Phoenix I think.

</comment></comment><comment><USER62> Previously posted at [https://news.ycombinator.com/item?id=11658356](https://news.ycombinator.com/item?id=11658356), with great comments

</comment><comment><USER63> It's today's software which -- being almost a synonym for enterprise software -- can be a problem for a culture built on it's difference from Enterprise Java.

</comment><comment><USER64> Yeah, yeah. Nothing is going to magically solve all your problems; I don't necessarily think that means we need to go back to hand-rolling everything.

</comment><comment><USER65> Today I learned that not everything you read on Medium is true and should be considered anecdotal and smart.

</comment><comment><USER66> A couple of things seem off on this perspective, mostly that modern web development has gotten weird, irrespective of Rails.

"The ambiguous, english-like syntax of ruby that makes rails so easy, is exactly why it's not simple."

First, I found Rails simple and easy, but it has become more complex over time as it has grown to support a variety of uses. The simplicity is not just because of Ruby, which is a low ceremony language, but rather because of the simple structure of the application, with a clear separation of concerns, very easy to find where a particular code item went.

"The meta-programming and object injection that makes it easy to install 1,000 gems into your project without a single line of configuration, is exactly why it's hard to debug. "

Dependency oriented development is a real problem, but it is insane to blame that on Ruby. I was working with an enterprise Java team last year that had over 1000 .jars in their build. It doesn't necessarily make it hard to debug, but it does mean you have understand a wide variety of different libraries. People are willing to load a library for the simplest of functions (as the leftpad npm case showed). Again, nothing to do with Rails or Ruby in particular.

"The magic of active record, the crazy levels of duck typing and the expressiveness of ruby, are exactly why it runs poorly even on your development box." This is highly dubious- it's very fast on my dev box. The Ruby interpreter keeps getting better, even taking lessons from V8, and you can compile to JRuby if you think that interpreted runtimes aren't ever going to keep up.

"It's why you have to build a caching strategy in as a requirement from first line of code." This seems like a good strategy regardless, and caching is nicely handled in Rails.

"Competitors to Rails seemed subject to the same problem — basing themselves on interpreted, slow languages that favoured 'easy to learn' over 'easy to maintain'." As opposed to compiled, fast languages like C++ that are hard to learn and hard to maintain? If anything, duck typing makes maintenance lot easier in some cases, where you can add in new types which support existing behavior, without making changes throughout the dependency tree. Even some 8 year old Rails apps we have are quite maintainable. JavaScript code does have a tendency towards messiness, as there are such a variety of schemes for organizing code, but it keeps getting better.

"I should be spending time writing code, not debugging a haystack of mutable, dependency-wired mess." This is your choice! I think it's nice to have toolsets that give people the ability to assemble things quickly, but no one is forcing you to use a gem to do something.

"Swift, Rust, Go, and the rest of tomorrow's languages, can you marry modern thinking, build a community with simple as a core design goal, and save web development from itself?" This seems like barking up the wrong tree. The thing making web development complex is largely the complexity of the front end. You can turn your back-end application into a separate API and isolate this problem. At some point, these become browser capabilities, and the polyfill approach has promise. ([http://bitworking.org/news/2014/05/zero_framework_manifesto](http://bitworking.org/news/2014/05/zero_framework_manifesto))

In reality none of the stuff mentioned in this article is really a shortcoming of Rails as compared to anything else. The biggest change is the move away from the basic nature of REST-ful, URL driven applications. Single page apps are a lot more like desktop applications. Many applications are looking for web sockets. These changes to the basic structure of what a web application is are much more of a challenge to Rails than the Ruby language itself.

<comment><USER17> +1 but about REST and the websockets: I'd keep using REST to query data and send data (and get a response). I'd use a websocket only for those cases where I should poll the server for updates. Reimplementing most of the semantic of HTTP into a websocket looks weird. Basically it would be tunneling HTTP into the websocket, which is already an upgrade of a HTTP connection.

Exceptions: I won't POST to a chat, even if there is nothing so wrong with that. Rationale: I'm already using that websocket for receiving messages, but only the messages for that chat.

</comment></comment><comment><USER67> I remember early Rails, around 0.13, pre RC, the community was small the future seemed bright. Little did we know the horrors of what it would turn into. Most of the professional people left when they saw the security circus, the endless holes and design flaws.

I learnt then - avoid any web framework which has pragprog pushing a book behind it. The new one to avoid because the masses are already circling around it is 'phoenix', and sure enough, pragprog is hawking a book on it.

<comment><USER68> Author here. Hawking a book? Are you kidding me? I'm also the creator of Phoenix. I spent two years of my life outside of a FT job to get Phoenix to 1.0. We started a book because first class learning materials outside of the basic online guides is necessary on any platform. I make $3/copy from the book sales, so "hawking" a book does a disservice to me because if this was about money, I wouldn't have spent 8 months of late nights and hundreds of hours working on a book. Please reconsider your argument.

<comment><USER69> Ordered your book last week Chris and can't wait for it to arrive. Very grateful for all the work you've put in.</comment></comment></comment>


Boeing 737 Max Update from a Pilot [video] - <AUTHOR> https://www.youtube.com/watch?v=9Ts_AjU89Qk <comment><USER2> Starting at 8:10 is the question and discussion about 'well why didn't the pilots just follow the runaway trim procedure?' And the short answer is MCAS upset is more insidious because it's inconsistent and includes a startle factor that pilots have not trained for compared to runaway trim.

~10:30 is an interesting discussion on the unique perspective of a jump pilot, who played a role in Lion Air 34's successful recovery from apparent MCAS upset. This is consistent with the findings in the AF 447 accident, when the off duty captain returned to the cockpit.

Addition: At ~20:50, the assertion is that MCAS also has throttle authority. This is the first I've heard of this. It makes complete sense it would do this if it thinks there's a stall. But it just compounds the problem, by increasing airspeed the stabilizer trim has even more authority over the elevator. But to not tell pilots about what amounts to autothrottle? Incredible if this is born out. (There is a lot of conflict on what all MCAS does or can do.)

</comment><comment><USER3> This is by far the best explanation with supporting technical details of what is happening. Thanks for posting!</comment>


Tabs, spaces and your salary – how is it really? - <AUTHOR> http://evelinag.com/blog/2017/06-20-stackoverflow-tabs-spaces-and-salary/index.html <comment><USER2> Whenever this old debate comes up, I am reminded of this quote

"There's a good part of Computer Science that's like magic. Unfortunately there's a bad part of Computer Science that's like religion." - Hal Abelson

I don't worry about indentation because emacs does it for me. However, if this is your personal pet peeve then you should provide all of your developers / contributors with a plugin, script or other utility that formats their code to your standards. This issue has long been solved programmatically and it is a waste of mindspace to deal with it any other way.

<comment><USER3> That quote reminds me of one of Joseph Campbell's - "computers are like Old Testament gods; lots of rules and no mercy."

And to go along with that, some things like GNU Make still requires tabs, which is definitely annoying when you have your editor set to autoconvert. And some sects like Go or Python don't technically REQUIRE one or the other, but still try to aggressively purge the heretics.

<comment><USER4> Is that a limitation in GNU Make or is it an inherited limitation of m4?

In my experience, m4 is an arcane bit of software that surprisingly few people know about and one that frankly should have been replaced years ago.

Personally, I try to never use autoconf because of this.

<comment><USER5> Tab as the prefix for command lines is a property of all Makefile formats I'm aware of (though not of many other build script formats). Make itself (including GNU Make) does not generally use M4, though both Autoconf and Automake use it, often in _conjunction_ with Make, as part of the Autotools suite which is also published by GNU.

So, none of the above, in itself. It is a historical anomaly which has been preserved.

</comment></comment></comment></comment><comment><USER6> To make long story short, somebody discovered that developers who take care of their code -- how it looks and how it is being processed in a code repository -- get higher salaries.

I earn my living from converting each company I work for to use a proper development process, and that more often than not includes migrating to Git. Why would anyone want to use Subversion in the presence of clearly superior tool, is beyond me.

Why this matters is, contrary to popular belief, not because Git is distributed or is more sound technically. It is because it allows you to create better and more readable commits by not requiring you to immediately commit to a shared pool of code that you then aren't allowed to change.

This means that you can commit locally to your repository as soon as you do any development. You can then work for however long you want to make your changes structured correctly in a readable way which is akin to refactoring code, only for changes. Only then you commit to the big ole repository maintained by your company.

Good developers will recognize that the readability of your code and of your changes is of paramount importance. They will prefer tools that make it easier to create good and good looking code because they take pride in what they do.

<comment><USER7> Yes except that any code that looks good with spaces can look equally good with tabs (or tabs-for-indentation, spaces-for-alignment).

I can't see any reason why git would work better with spaces than tabs so that seems like a weak argument too.

<comment><USER6> Code with spaces looks always good. Code with tabs looks good if the other developer has the same tab length, but will not look correctly if it is wildly different, because of the right margin not lining up correctly.

<comment><USER7> > Code with spaces looks always good.

Only if you don't care about the indent size, which many people do (otherwise we wouldn't be having this discussion).

I mean you may as well say everyone should use Times New Roman because then it always looks good.

<comment><USER8> You only say that because you're MIXING indent styles.

Tabs first, ALWAYS, one tab is one level of indent.

go fmt uses the UNIX lineage of defaulting to 8 spaces converting to a tab (worded in reverse).

Your editor should easily display tab stops at a value that is ideal for you; you could set this to 2, 3, 4, or any other value if it makes things more readable to you.

</comment></comment></comment></comment></comment><comment><USER9> I used columns 7-72 for code for Fortran IV and I liked it.

I used 3 spaces for Pascal and PL/I and PLUS and I liked it.

I used no indentation whatsoever for APL and I liked it.

I used spaces for CDC and Cray-1 assembly, tabs for microprocessors, and had no productivity difference.

I used tabs for C and I liked it.

I aligned everything on the ':-' in Prolog and I liked it.

I use 2 spaces for C++ and that's the only part of C++ that I like.

I use no regular pattern for Haskell and it's perfect.

It doesn't matter. Let your team's format zealot win this argument. Find another hill to die on, like naming conventions or "using namespace std;".

<comment><USER10> I expected to see "I used no spacing whatsoever for PERL and I liked it."

<comment><USER9> For those who like things like Perl, Perl is exactly the sort of thing that they like.

<comment><USER11> Unfair [not to mentioned tired, boring, unimaginative, and overused] stereotypes are awesome!

[https://perldoc.perl.org/perlstyle.html](https://perldoc.perl.org/perlstyle.html)

> Just because you CAN do something a particular way doesn't mean that you > SHOULD do it that way. Perl is designed to give you several ways to do > anything, so consider picking the most readable one.

<comment><USER9> I would appreciate it if you would describe the stereotype that you think that the text of my comment somehow cast upon Perl programmers, other than the intended tautology.

<comment><USER12> For those who miss jokes about Perl tautologies, missing jokes about Perl tautologies is exactly the sort of thing they do.

</comment></comment></comment></comment></comment></comment><comment><USER13> I keep thinking that "employer" is the biggest confounding variable here. A quick survey of some of the big players, whom I would presume pay premium salaries, seem to favor spaces over tabs.

e.g.

[https://google.github.io/styleguide/cppguide.html#Spaces_vs....](https://google.github.io/styleguide/cppguide.html#Spaces_vs._Tabs)

[https://docs.microsoft.com/en- us/dotnet/csharp/programming-g...](https://docs.microsoft.com/en- us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions#layout- conventions)

I can't find an Apple style guide, but the first file on the most recent commit to Swift uses spaces as well.

[https://github.com/apple/swift/blob/e0f75bf841631a50f9ab6502...](https://github.com/apple/swift/blob/e0f75bf841631a50f9ab6502dc6c13b3abcaaf1c/stdlib/public/SDK/CoreGraphics/CoreGraphics.swift)

<comment><USER14> That was an early hypothesis I considered, but it doesn't fit the data. That would show up as a larger tabs/spaces salary gap for big companies, when in fact the gap is similar across all company sizes:

[https://twitter.com/drob/status/875493967865008129](https://twitter.com/drob/status/875493967865008129)

Perhaps it could play a role as a more indirect effect: people leaving Google/Microsoft/Apple/etc, starting new companies or joining senior positions at others, and spreading this particular practice.

<comment><USER15> Only informative comment thread I've seen so far. I was wondering about this.

</comment></comment></comment><comment><USER16> I think that the original article made it clear that it was a correlation, not a causation.

There is probably some underlying cause to both trends, something like "there are people who tend to be really ticked off about 'this operates slightly different in two different environments', such people are more likely to (a) use spaces and (b) have an engineering-type job that pays a little more." Another possible correlation would be "people who are more worried that they will someday have to SSH into a machine where they have not yet configured an editor in order to insert debugging statements into the live production code, tend to come from DevOps backgrounds that earn slightly more, and also tend to favor spaces instead of tabs because that damn default tabstop is 8 and I can handle 2, 4, and _maybe_ even 3, but 8 is too damn high..." or so.

I personally really preferred tabs in my youth as a sort of nod to democracy and "everyone can set their tabstops however they like!" \-- and it was Python that finally got me to use spaces instead, with the "hey when you want to do multi-line stuff" arguments[1] and PEP-8 and community agreement and such. But I do miss my little tab characters a lot.

[1] You know, stuff like "If you want to do multi-line stuff, then you need to keep a conceptual split between using tabs for indentation but spaces for alignment; and if you're using spaces for everything then you don't: you can even use your tab key to insert many spaces at once. So it's tab-tab-tab-hit- space-twenty-one-times versus tab-8-times-then-space-once. Worse, if you screw up the mixed tabs-and-spaces format then you won't know about it unless tabs are clearly visible by default, which adds visual noise to your file..." etc. etc.

</comment><comment><AUTHOR> If you're interested, here's some replies from the author or the _original_ article, discussing this post [https://twitter.com/drob/status/877181598420135936](https://twitter.com/drob/status/877181598420135936)

<comment><USER17> I had the same thought [https://twitter.com/drob/status/877179616322084864](https://twitter.com/drob/status/877179616322084864)

> _I 'm not sure I'd agree with the conclusion that version control breaks the > indentation pattern found elsewhere_

The graph still looks like git-spaces is significantly higher

<comment><USER18> but, git-tabs is higher than foundation-spaces.

</comment></comment></comment><comment><USER19> This seems fairly straightforward to me.

If you're collaborating, spaces are a much better default. If you're collaborating, your job is harder than coding solo, so you should get paid more.

<comment><USER20> I work on collaborative projects, some use spaces or tabs and it makes no difference to the ease of collaboration. It's just a setting in the .editorconfig.

<comment><USER21> In _all_ collaborative projects I've been that allowed tabs, all files that had been edited by tab users were a mishmash of spaces and tabs that made no single tab width configuration workable. If you chose tab width as 4, some parts of functions would look right, others would have messed up indentation. Ditto for any other tab size.

The theory of tabs for indent and spaces for alignment works. But when collaborating, the practice requires too much support from tooling and too much education for humans -- so it's just not worth the tiny benefit.

<comment><USER22> That's not a fair comparison. You either _disallow_ tabs, or you _disallow_ spaces. A mismatch isn't either, so it doesn't evidence either being better than the other.

<comment><USER23> Disallowing spaces isn't an option, you can't align code using tabs. You have to both disallow spaces and enforce a no-alignment (leading-indent-only) formatting style.

Just use spaces! You can't mess it up. ;)

<comment><USER20> Meticulously lining code up like ASCII art seems like an antipattern to me nowadays. It might make some regions of the code look a little bit nicer, but it's never really strictly necessary and it comes at the cost of higher maintenance - for example, add to that list of assignments with lined up equals signs and you have to make your addition line up too, and if your variable name is longer than the longest one in the list so far you have to move all the previous ones over.

</comment></comment></comment></comment></comment></comment><comment><USER24> Here's what she's still missing.

Models about things like salaries and prices have to be careful to disentangle _supply_ and _demand_.

The insinuation when you hear that space-users earn more than tab-users is that space-users are somehow more productive, sexier or in with the times. When, as other commenters here have noted, large cool corporations tend to contribute to and use open source code, which is more often space-aligned.

The money question here is -- can I improve my earnings potential by switching to spaces? And this isn't solved by just noting that spaces correlate to Git and open-source; what I need to know if switching to spaces (or using Git) changes my supply of productivity-adjusted labor; or if it's just what they use in higher-paying jobs.

Here's how you disentangle this: you pick a variable that correlates to X (spaces vs tabs) but not to y (salaries). The textbook example is the demand for foodstuffs. Regressing quantity bought versus price tells you very little (supply and demand may be moving simultaneously); instead, you add something like crop productivities as an instrumental variable to filter out the supply effects and see the demand only.

[https://en.wikipedia.org/wiki/Instrumental_variable](https://en.wikipedia.org/wiki/Instrumental_variable)

</comment><comment><USER25> There should be a third option "do not know". This was important maybe 10 years ago. Today IDE is handling formatting for me, and I no longer remember what the default settings are. The same about encoding or EOL chars.

<comment><USER26> > This was important maybe 10 years ago.

It's important today too, depending on details of the dev process. The IDE or editor handles formatting, sure. Different ones do it differently though, and keeping things consistent between environments often requires some reconfiguration of the software (or automated converters on checkin/checkout, if you want to go that far...)

</comment></comment><comment><USER27> In the Netherlands it is almost universal to discuss salaries in terms of monthly salary amount.

<comment><USER28> Yes, using the yearly salary as the main reference seems to be either a US or an Anglophone-world thing. What is commonly done in the UK and Ireland?

<comment><USER29> (In the US) I actually found it weird when I was talking to a loan officer and he asked how much I made. I told him, and he about jumped out of his seat. _" PER MONTH?! WHAT DO YOU NEED A LOAN FOR?!"_

I was flabbergasted. I'd never had someone ask me how much I make an expect me to say per month. I don't know how much I make per month. I know per year or per paycheck. If you want per month you'll have to get out the calculator, buddy.

<comment><USER28> In the parts of Europe that I know of, if you have a median job, your paycheck _is_ per month. That is why everyone knows that number the best: it's the one you see most often, appearing every month on your bank account.

<comment><USER30> So its possible to have to wait more than a month for your first paycheck? i.e. start on the 1st and they pay on the 1st weekday of a new month for the past month?

I'd hate to be loaning the company money that long every month.

<comment><USER31> In sweden, salaries are traditionally paid the 25:th.

An if you get paid per hour, your payment is usually for the previous month, so 56 days late.

<comment><USER28> In the Netherlands also the 25th. However, if you get paid per hour, it may also be that you are paid weekly or biweekly, but indeed usually a cycle later.

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> Wait, did people take Stackoverflow's post serious enough to merit a response?

I enjoyed the original article and I especially enjoyed the semi-facetious flamewar that broke out here on HN, but I thought it was pretty well understood that it was a meaningless, albeit interesting, correlation.

<comment><USER33> It patently obvious that liking spaces or tabs better won't change your salary.

But it's also an incredibly clear correlation. It must be caused by something (because it's too clear to appear by chance, and too stable on sub- populations). It may be very interesting to find that cause.

<comment><USER34> _> It must be caused by something_

You'd be surprised: [http://www.tylervigen.com/spurious- correlations](http://www.tylervigen.com/spurious-correlations)

<comment><USER33> Spurious correlations normally aren't present on sub-populations (unless you try to segment your population on many different ways, what they did, but it was present on nearly all of the ways).

</comment></comment></comment></comment><comment><USER35> The original story reminded me of this site: [http://www.tylervigen.com/spurious- correlations](http://www.tylervigen.com/spurious-correlations)

</comment><comment><USER36> Given whitespace is immaterial to the end code (while it is used to indicate blocks in Python, you could theoretically use something else to indicate blocks) I have this idea of making each editor indent the code their preferred way and have the canonical source code in an specific fixed way with no alignments or needless spaces

</comment><comment><USER37> Kudos to the author for doing a bunch of good data analysis and investigation. Pro or con against the result it gives a better context in which to read it rather than a simple headline that you can use in the next argument you have.

IMHO while the author touches on Git/OpenSource contributions as part of higher salaries. What it also touches on is people who are working on improving their skills and contributing understanding which is a different individual than somebody who just takes surveys and works at a big company.

</comment><comment><USER38> Nobody said anything about actual workweeks yet. I'm a developer working 4 days a week, earning a very decent 5 figure salary, no complains :)

Now I can imagine if a company pays you >100k you have to work 40+ hours a week. So annual salary should be corrected for actual working hours

</comment><comment><USER39> When you have large amounts of data, even if it's for a large number of people eventually youre going to find odd 'correlations' between unconnected variables. People who play edition X of Dungeons and Dragons are 30% less likely to eat chicken sandwitches than people who play edition Y. If you know a thousand things about everybody, the data is going to be riddled with bogus 'connections' like this.

In this case it's too small a sample for this finding to be significant, but increase the sample size and also increase the number of data points per person and you get similar problems. Determining significance is not straightforward.

<comment><USER14> This is not the reason for the correlation. The p-value of the tabs/spaces connection is about 10^-13 (one in 10 trillion), and it can be found separately within each (large) country.

This does _not_ mean the effect isn't confounded with some other factor, but it does mean it's not a multiple hypothesis testing issue.

You can explore the code and regression yourself! Take a look: [https://github.com/dgrtwo/tabs-spaces-post](https://github.com/dgrtwo/tabs- spaces-post)

</comment></comment><comment><USER40> There are some good reason for using spaces instead of tabs and good reasons but I'm sure it's mostly just a uniform. It's now a cultural meme that spaces is better, and people who are exposed to this meme tend to be more connected to the higher end of the community than people who aren't. It's like the correlation of people who curse making lower salary and people who wear suits making higher salary.

<comment><USER41> Silicon Valley on HBO actually made the opposite conclusion, that tabs are better (Richard did not hire someone because they used spaces). The main point being pressing space bar 4, 8, 12 times etc is a waste of time

I think it also shows where a lot of people get confused, that being in the "spaces" camp doesn't necessarily mean you are pressing the space bar each time

<comment><USER42> I think his argument was also that spaces would take up 4 characters, whereas a tab would take up 1. As a compression company, it "only made sense for him to choose the lower character count".

<comment><USER26> For the sake of argument: "As a compression company", isn't data redundancy exactly what they're supposed to handle?

</comment></comment></comment></comment><comment><USER43> I personally prefer tabs, but as suggested in this article, I do a lot of open source work, and use git for that and my job and spaces seem to win for both. So I use spaces.

Also, amusingly, when IBM hired me (in the US), my contract listed my salary as $x per month. I'd seen it before from recruiters for jobs in London and such, but I don't think I'd ever seen it put that way in the states before.

</comment><comment><USER44> I've never understood the tabs versus spaces argument. It's not really a question of a coder's individual taste, is it? Arent these things usually decided by the choice of IDE?

For example, I use Emacs, and when I press the tab key, it is actually inserting several spaces, not a tab character, at least in the language modes that I use.

<comment><USER45> But does everyone you work with use the same editor/IDE? I think that's where problems begin (and are subsequently solved by the introduction of something like editorconfig).

<comment><USER33> Except from some niche Windows only tools, I've never seen an editor that defaulted to tabs.

<comment><USER46> Eclipse defaults to the tab character, at least for Java.

<comment><USER33> Oh... That means I mix tabs and spaces on Java :(

I did never notice it.

</comment></comment></comment></comment></comment><comment><USER47> I'm from Poland and I can confirm - literally no one even thinks about their salary in terms of a what it is annually - I suspect the author is correct in thinking that a lot of Polish respondents wrote in their monthly, not annual salary.

</comment><comment><USER48> Honestly I've been avoiding this conversation for the last week, but it seems the right time to bring it up: tabs are content.

Spaces are content.

They are both part of the _SET_.

Everybody, just give it up. They have their users. They have their uses.

(:set shiftwidth=4;noexpandtab)

</comment><comment><USER49> No sensible reader of the original SO article thought that correlation implied causation in this case. Using spaces for indentation is obviously a symptom of a better developer. That's all.

</comment><comment><USER50> The point </comment><comment>> .

\----> everyone upset about this story

</comment><comment><USER51> The article mentions in one sentence that PHP is also a factor, but then provides zero indication of how so.

<comment><USER52> Based on the survey results it looks like devs using PHP are paid significantly less on average.

[https://insights.stackoverflow.com/survey/2017#work- salary-a...](https://insights.stackoverflow.com/survey/2017#work-salary-and- experience-by-language)

<comment><USER51> Thanks for the link.

</comment></comment></comment><comment><USER53> Thanks. Now have new argument for my colleages to convince them to use spaces.

</comment><comment><USER54> What, no graph of journalists salaries, comparing those who cover the tabs/spaces debate, versus those who don't?

</comment><comment><USER55> How many spaces?

<comment><USER56> More importantly: vi, or emacs?

</comment></comment><comment><USER57> gofmt

</comment><comment><USER58> This author must use spaces.

</comment><comment><USER59> Who gives a squat?

<comment><USER60> I thought this was a joke, but then I see all this earnest, heated discussion over a non issue.

</comment></comment><comment><USER61> mixed

</comment><comment><USER62> = Why Grown-Ups Don't Use Tabs[1] =

* Joe likes 4-space tabs, I like 2-space tabs, and Jane is old-school with 8-space tabs.

* All goes well until someone aligns something visually, like so:

        [tab]void someNiceMethod(int myParamA,
        [tab][tab][tab][tab][space][space]int myParamB...);

(What you _should_ do--if you're going to visually align at all--of course, is

        [tab]void someNiceMethod(int myParamA,
        [tab]                    int myParamB...);

... but humans are humans and IDEs aren't created equal, so this doesn't happen consistently.)

* Now it aligns perfectly on my machine, looks mostly ok on Joe's machine, and is ON MARS on Jane's machine.

Thus one-or-more of three futures happens:

* Someone implements a code re-formatter into version control

* Someone re-aligns the code, starting the process over again.

* Someone calls a meeting and demands we all switch to spaces AND IDEs that let you treat spaces like tabs.

[1]: This came up last week ([https://news.ycombinator.com/item?id=14560042](https://news.ycombinator.com/item?id=14560042)) and this comment is shamelessly copied from that discussion ([https://news.ycombinator.com/item?id=14561223](https://news.ycombinator.com/item?id=14561223)).

<comment><USER63> Fuck alignment.

      [tab]void someNiceMethod(
      [tab][tab]int myParamA,
      [tab][tab]int myParamB,
      [tab][tab]...
      [tab]);

<comment><USER45> Exactly. I never understood the benefit of alignment. I actually find it harder to read - by making the starting point of the line less predictable it's harder to skim through and if, say, you rename the function you've now got a much longer diff than necessary.

After talking to several people, I've realised this is very subjective though (what isn't!). I certainly prefer indenting only, without worrying about alignment.

<comment><USER64> > Exactly. I never understood the benefit of alignment.

Alignment is what makes ASCII art possible. Without alignment, we might as well be using modern proportional fonts rather than old-fashioned type writer fixed-width fonts ( _ducks_ ).

<comment><USER65> I know some of my coworkers still use mono-spaced fonts and I just don't understand it. Proportional fonts are so much more legible and nicer to look at.

<comment><USER26> I can't stand code in a proportional font. I like aligning code and having the alignment be maintained, regardless of the specific font in use. Things tend to also be more smooshed-together and hard to read individual characters when using proportional fonts, since every character's width varies, instead of matching the widest character.

Aside from that, in the stylistic sense, it's like reading a newspaper article in cursive or an academic paper in comic sans.

Those are the things that struck me when I've pasted code into an editor with proportional fonts, anyhow.

<comment><USER64> There are other proportional fonts than cursive ones or Comic Sans MS. You should just use better fonts.

<comment><USER26> Of course there are; I wasn't suggesting those as appropriate fonts. I was using them as extreme examples of stylistic mismatch.

Proportional fonts have _less_ mismatch when used for code, but they still tend to look "wrong" to me. A font like "Input" is attractive and offers proportional and monospaced versions. You're still left with the larger problem: fighting the font to line up data across multiple lines.

Maybe you don't care about that, but in both my hobby and professional projects, I've found that alignment makes the code easier to read and easier to work with. I would need a _very_ compelling reason to abandon that, and I haven't seen one offered.

Going back to your original comment, you said:

> Proportional fonts are so much more legible and nicer to look at.

You also provided a convenient reply, which I think applies here:

> You should just use better fonts.

Hack, Input Mono, and a zoo of others are very attractive monospaced fonts. You aren't stuck with whichever ugly ones you're thinking of.

<comment><USER64> Character spacing, kerning, ligatures, and many other aspects of modern typography are all that you give up with type writer fonts. Yes, if you use a shit font like Times New Roman, it will look bad, but if you use a nice San Serif font, it doesn't look as you described (like cursive, comic sans, or another pseudo hand writing font).

Yes, you give up the ability to do ascii art in your code. I find that this doesn't really matter to me or much of the code I use professionally (I can open up some random javascript code off of GitHub and they don't do non indent alignments). I guess if I was programming in C, this might be much more of a problem.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER66> Managers hate him. Learn how to get a raise, using this one simple trick!

</comment><comment><USER67> Ever since I started using spaces, my salary has increased dramatically!

I mean, when I first started, I was only making minimum wage. I had to use tabs, my life was horrible!

Then I switched to spaces. Instantly, my boss noticed my increased productivity, and my character count went up! I started getting free lunches! My dogs became straight-A students! I started winning in League of Legends!

...and my salary increased by $90k! It was amazing!</comment>


Apple Making It Harder to Avoid Nagging macOS Update Notifications - <AUTHOR> https://www.macrumors.com/2020/05/28/macos-ignore-software-updates/ <comment><USER2> This is one reason why everyone should have their own Mobile Device Manager profile installed (e.g., JAMF), so that you can make it part of your profile to prohibit major OS upgrades.

Apple can encourage it all they want for consumers, but they have to support MDMs being used this way for Enterprises. Fortunately, there's software out there in this space that lets you operate like an one-person (or one family) Enterprise.

</comment><comment><AUTHOR> TLDR:

For users still running an earlier major macOS version like Mojave or High Sierra, the Software Update pane in System Preferences typically displays a prominent upgrade button for Catalina and a notification badge on the System Preferences icon in the Dock, but until now knowledgeable users have been able to hide those items by using the softwareupdate --ignore "macOS Catalina" command in the Terminal app.

After updating to macOS 10.15.5 or Security Update 2020-003, this command no longer works, with Terminal displaying the following message: "Ignoring software updates is deprecated. The ability to ignore individual updates will be removed in a future release of macOS."

<comment><USER3> I just don't show System Preferences in my dock on my Mojave system (so I don't see the red update icon).

My other system is running Catalina, and to be honest, it's been endless problem after problem, and some of them I still have yet to find a solution for.

<comment><USER4> I don't know that I would post this message on social media. I can imagine a few ways in which admitting that would cause future liabilities for my company.</comment></comment></comment>