Need some advice: I'm losing confidence trying to find a job as a Jr Rails dev. - <AUTHOR>

I graduated months ago with a non-computer science degree but spent the latter half of university diving into Rails, Vim, Linux, and other peripheral technologies. I'm comfortable (at varying degrees) with the menagerie of tools/tech that comes with the space from Haml to Sass to SQL.
But I'm confident in my ability to make any conventional app with Rails.
I'm having trouble cajoling employers, though. My Github only has a couple trivial Rails apps. I have a meager blog. I can answer questions on #rubyonrails all day, but it's hard to represent my knowledge to employers. Or maybe it's just not enough.
Having found HN around the time I decided to jump into web development a few years ago, I became complacent with the amount of times I hear people say that there aren't enough Rails developers to go around. I felt like I was getting a head start by learning Rails during uni. But I forgot to consider that I'm hearing this on HN, a community that's probably predominantly based around the bay area.
I live in Texas and haven't had much luck finding many Rails jobs to begin with. I started off with an asking salary of 70k due to the aforementioned complacency. It's amusingly high, but I promise it's not the Dunning-Kruger effect in action. :)  I just had no idea how to answer "What's your salary requirement?" Especially when I'd accept an offer $20k+ below that. What also led to my overestimation was that my friends with the same degree were getting into Microsoft shop consultancies and product companies around the $70k mark, but none of them had any experience outside the few trivial ASP.NET projects we had along our degree plan. None of them had side projects, programmed/made something for fun, or even knew much HTML. I thought surely I had more going for me than just being a new grad.
I've since dropped it to $50k, but am now lowering it to $40k in future interviews since it's evident that I need to just get my foot in the door.
Time is running out. It's been 5 months since I graduated. My parents resent that I didn't recruit heavily as I was graduating, but the recruited positions like "Business Process Analyst" and "Financial Management Trainee" (and much of the business school at large) were at odds with what I want to do with my life and the personality traits that make me enjoy the atmosphere around HN, Rails, and budding communities like Nodejs. I'll admit I was a bit drunk with confidence in my ability to find a Rails job at the time. Any job!
I'm not really sure where to go from here. I don't have the budget to move to the west coast or anywhere else at the moment. But I also understand I'm an unproven junior developer with no professional Rails experience. Only a very small subset of companies would fly out such a candidate. I certainly don't blame anybody for not taking a chance on me after a phone interview!
I think getting an unrelated corporate job just to get a job would be a bad idea for me. I enjoy working on my side projects. I have a few more interviews within the next two weeks, but I now see myself working a more menial job to pay the bills/debt while I continue to develop my side projects.
However, I'm approaching my mid-20s and I'm reluctant to believe that scavenging for free time to work on side projects is going to ever allow me to compete with other job candidates. <comment><USER2> The bay Area is far away, but what about Austin? Austin has a lively tech scene, and quite a few startups looking for employees. Find a menial job so you aren't desperate, and find the local RoR/other programming related meetups to ask about job opportunities. Housing is cheap over the summer near the university, since many students want to sublease their apartment while not in school. Coops near UT campus also provide very cheap summer housing (you don't need to be a student for this).

Meet people in the RoR community, work on some more substantial projects for your Github, and ask others in the community for help learning and applying for jobs. Contribute to an RoR open source project. Give it the summer, and reconsider your options in the fall.

It's okay to not have a job right away. It's okay to get a job not related to your degree. There are jobs available for inexperienced developers, it just might take some time to find them. If this is what you want to do, you can do it.

You aren't a student, but it may be worth calling the UT natural sciences career center and ask to be put on the mailing list about job opportunities in cs. They know who's hiring, and the worse that can happen is they say no.

</comment><comment><USER3> Depending on your situation this may not be the most useful advice, but have you considered moving to the Bay Area? It may be tempting to stay in your comfort zone, but for me getting to the big city on my own after college was vitally important.

If I didn't, I have no doubt I'd still be working some soul crushing job in suburbia like my friends who didn't get out.

EDIT: I did see that you said you don't have the budget to move right now, but that's hardly an excuse. You can always flip burgers or freelance or whatever you need to do to save up. Or try to secure yourself a job before you move. That's what I did.

<comment><AUTHOR> I agree, it's not a good excuse. It's just something that wouldn't be able to happen until many months from now.

Thanks for the insight. I'll keep sending resumes out, working on my side projects, and making money in some fashion. When I have enough saved up, if I've found no opportunities, I'll set a date and move.

<comment><USER4> If you score a job in the Bay Area (or anywhere else with a decent tech scene), they should be able to pay you enough to relocate. I would not limit your job search to what's locally available. Also try bidding on jobs on Freelance sites to get some work while you're looking for a job. This will also help you build a better portfolio while getting paid.

</comment></comment></comment><comment><USER5> Hindsight is a magical thing. Speaking from personal experience you need to stick with trying to find the job that you are passionate about. I took a job that wasn't ideal over another job offer. The decision came down to the fact that it was in a location (and other personal factors) that all fell in my "comfort zone". The job that I didn't take would have been a much better cultural fit and more in line with my long term goals. I just didn't have the foresight to see this at that point.

I underestimated the negative effect of taking a job that had a tech stack I wasn't passionate about, would have on me personally and professionally. I did learn a lot of valuable lessons from the job I took and by no means was it a write off. I ended up staying there a few years but can't help wonder how things would be different if I had taken the other job.

You have the right attitude in not wanting to get an unrelated corporate job just for the sake of having a job. So my advice would be to keep looking and if you need work desperately then settling for a temporary job outside of tech(or in) while you continue your search is better than getting tied into the corporate job you don't want to be doing. It will be much harder to get out of that job and onto the one you really want.

edit: formatting

</comment><comment><USER6> All I can say is stick with it. Hard work pays off in time.

And I can vouch for the dearth of rails devs (though I guess I do live in Boston).

The one thing I'd say is hold out as long as you can to make sure you get into the type of job you want. If you take a job doing MS Tech just to feed yourself, it'll be hard not to get branded with that tech.

</comment><comment><USER7> Hit me up -> firstname.lastname@example.com, we are 100% remote and you can read about our RoR projects at eng5.com

</comment><comment><USER8> Send me a resume! Our company here in the Bay Area is looking for Rails people like there's no tomorrow and we have plenty of people working remote. firstname.lastname@example.com.

</comment><comment><USER9> can you email me at firstname.lastname@example.com?</comment>


Two zero day flaws in iOS Mail threaten billions of iPhone and iPad - <AUTHOR> https://cybsploit.com/2020/04/26/two-zero-day-flaws-in-ios-mail-threaten-billions-of-iphone-and-ipad-UVUrb3YzVVFrbU1aVEdOb3M1WTRYQT09 <comment><USER2> Discussed 1 month ago: [https://news.ycombinator.com/item?id=22944690](https://news.ycombinator.com/item?id=22944690)

</comment><comment><USER3> These are fixed in iOS 13.5, which was released several days ago.

</comment><comment><USER4> One of the first apps I delete off my phone.

<comment><USER5> So what do you use as an alternate email application?

<comment><USER6> outlook

<comment><USER3> You're kidding, right?</comment></comment></comment></comment>


The Future of Email Marketing? Twitter. - <AUTHOR> http://sunlightlabs.com/blog/2009/06/16/future-email-marketing-twitter/ <comment><USER2> I think people try and say this about Facebook, SMS, & Twitter. It is a new form of permission marketing. That is why companies spend so much time on their facebook page, and many do with twitter as well. They will not replace email marketing in the short term, but they reach a group of people that hate to give out their email, but aren't as afraid to follow or friend people.</comment>


Firefox Aurora now available - <AUTHOR> http://blog.mozilla.com/futurereleases/2011/07/07/firefoxaurora7/

<comment><USER2> Apparently Aurora is what Mozilla is calling their "Platform Preview" or "Dev Channel" or "Early Beta" builds. Confusing that it isn't explained well on this page.</comment>


Show HN: Computer Music with Python - <AUTHOR> https://github.com/luvsound/pippi <comment><USER2> This is very, very cool.

My problem with most music programming environments (in my humble, but very informed opinion) is that . . . they don't sound very good. That is, the oscillators, filters, envelopes, etc. don't sound anywhere near as good as what you can buy from UAD, SoftTube, PSP, U-he, etc.

The OP may be a DSP genius for all I know, and maybe it sounds incredible. I haven't tried it yet.

But it seems (just glancing over it) that there's an emphasis on manipulating existing audio files. This is actually huge. It's true that you can do that things like ChuCK and csound and whatever, but they never felt focused on that to me. The biggest player in this "let's mess with audio files" space was the Composer's Desktop Project. That thing was amazing, but it seems slightly moribund, and I haven't been able to get it to compile for years.

Anyway: I can't wait to dig in!

<comment><USER3> Is the problem of the oscillators not sounding very good a fundamental problem of these programming environments?

I'm mostly ignorant of their specifics, but my assumption is that someone who understands the fundamentals of synth programming could patch oscs and filters into combinations that do sound nice just as well as they could in commercial synth software.

Is there something preventing that from being the case? Or are you just referring to available presets?

<comment><USER4> It's not the combinations, it's the tasteful application of oversampling, waveshape control, and distortion.

Moog's iPad apps and the new UAD Minimoog both sound pretty good, so there's no practical reason why DSP synthesis should sound bad.

The only thing preventing that being used here is the complexity of the models and the fact they tend to be proprietary. Supercollider, Max, Csound, PD, and ChucK all use the simplest possible public domain models, and even the best of the simple models aren't good enough to generate sounds with the production values you'll hear in a commercial recording.

Generally the computer music community doesn't pay attention to production values at all. They're happy with a workable basic implementation of $effect or $synthesis_element, and they lose interest in the rest.

That's partly because DSP with high production values takes a long time and work. There's a story that gets told about the TC Electronic 6000 system, which has a gold standard reverb you'll hear in most movies [1] - which is that it was the work of a team of more than ten people working for years.

It's not hard to hack together a basic reverb algo from public sources. But it is _not_ going to sound that good.

[1] You know the ambient piano sound some movies have in their scores? That. If you want to buy that reverb the hardware costs nearly $17,000.

<comment><USER4> To add - the CDP people solved the problem by doing things no one else was doing. It was Trevor Wishart's pet project and it was never going to be commercially viable, but he put some very interesting ideas into it. I played with it for a while and got a good few you-can't-do-this-with-a-synth sounds out of it. It was probably ten years ahead of its time and it's much easier to do that kind of thing today with modern processor speeds.

I used to know some of the CDP people and there was a story that one of them left a script running on his Atari ST and then went on holiday for two weeks. It still hadn't finished when he got back.

It would probably take a few minutes today.

</comment></comment></comment></comment><comment><USER5> This is amazing, it looks really useful to easily code new sounds, but it seems not in real time?

I would change the name though, with pypy, pypi and pip it seems it will lead to confusion.

<comment><USER6> I haven't found a library for Python that does real time sounds in the way that old home computers (BBC micro etc) used to do. I got loads of pleasure when I was a teenager making sounds on my computer and hearing them back in real time, and I'd like to get that immediacy back (I have a theory that fewer kids are interested in programming than might otherwise be as it's much less immediate and accessible than it used to be).

If anyone knows of one, I'd love to know about it.

<comment><USER7> Can you elaborate what you mean with real time sounds

<comment><USER6> The other day I was looking at an old BBC micro demo (cold tea) and thought about porting it to python for fun. In BBC basic there is a sound command which has 4 parameters, allowing you to play a sound straight away -not play back a wav file (a la pygame etc), but generate musical pitches easily with a single command. Other older era systems had similar commands, and that immediacy (both literally in terms of command leads directly to an audio output, as well as the command being a single line and easy to understand even for 11 year old me) is what I'm looking for.

</comment></comment></comment></comment><comment><USER8> An unfortunate name since "Pippi" means pee in German. But then again, there probably are many names that are unfortunate in some language.

<comment> photon-torpedo Actually the German word is "Pipi".

<comment><USER9> Second this

</comment></comment></comment><comment><USER10> If you're interested in this, I highly encourage checking out Sonic Pi [0]. It's an open source music programming language. Also works very well as a tool to teach coding.

[0]: [https://sonic-pi.net/](https://sonic-pi.net/)

</comment><comment><USER11> Awesome project OP!

Tangentially,

Are you interested in music identification, especially musical instrument identification? If so, You might be interested in looking at a need gap - 'Display musical instruments used in a song'[1] which was recently posted on my problem validation platform.

[1][https://needgap.com/problems/151-display-musical- instruments...](https://needgap.com/problems/151-display-musical-instruments- used-in-a-song-visualization-music)

</comment><comment><USER12> This is really excellent! I've played around with Sonic Pi but always wished for something with more Python. I will definitely be playing with this.

I'm curious if anyone can point to a free library of samples or synths that would be good to pair with this? I can do without Sonic Pi's GUI but the included sample/synth library is a great jumping off point.

</comment><comment><USER13> I've been really interested in dsp for music and computer music for a while now but am kind of at a loss as to where to learn more after having gone through Xavier Serra's excellent Coursers class. Can anyone recommend further resources for learning about the subject?

<comment><USER14> For nitty-gritty DSP I would sit down and read a book like Proakis. It's quite dry but ultimately if you are able to handle the math it's worth it (for me at least, learning mathematical topics through the medium of python or similar is a distraction)

</comment></comment><comment><USER15> Looks quite awesome, will surely check it out.

Wonder if there's any complex end-to-end examples or videos?

<comment><AUTHOR> The closest thing I have right now are the first two tutorials in the docs: [https://pippi.world/docs/tutorials/](https://pippi.world/docs/tutorials/)

These are meant to build toward a final example mixing aspects of all the tutorials into a more realistic project.

Having used pippi for my own music for about 9 years now I try to only move structures and patterns into pippi itself when I find myself writing the same things over and over in scores. In general each score tends to be structured very differently, depending on what it does. Hopefully I can communicate that in the tutorials by showing a variety of approaches, but it's a work in progress!

</comment></comment><comment><USER16> Is there anyone making music with programming that sounds like it could be a pop song? i.e "good" \- not glitchy, or experimental.</comment>


FB's Ephemeral Messages (Pavel Durov–the Mark Zuckerberg of Russia–predicted It) - <AUTHOR> http://techcrunch.com/2015/11/12/facebook-messenger-ephemeral/ <comment><USER2> Please do not use the titles of HN submissions to editorialize. If you have something to say, say it in a comment in the thread, on the same level as other users.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment><comment><AUTHOR> The prediction: [https://medium.com/@durov/how-to-predict-whatsapp- features-4...](https://medium.com/@durov/how-to-predict-whatsapp- features-4c7d84d6c524)

</comment><comment><USER3> Facebook will clone popular features and apps from competitors. Not exactly hard to predict this one. It's happened a dozen times already.</comment>


How to stay productive as a remote employee - <AUTHOR> https://bytes.grubhub.com/how-to-stay-productive-as-a-remote-employee-b865a6c1b1b3 <comment><AUTHOR> Good explanation on how remote workers can work effectively as part of co- located teams.</comment>


Ask HN: It's 2016, how do you do your automated zero downtime DB migrations? - <AUTHOR> <comment><USER2> Sometimes zero downtime migrations are not worth the effort. In most of the cases, you end up thinking of a 3-state picture (BEFORE / DURING / AFTER) and the delta between DURING and AFTER needs some manual work. As long as you don't drop data or end up with irreversible changes, you manage the process and complete the migration just fine.

</comment><comment><USER3> When I did DB migrations, I first tested out my code on a test server that had a copy of the production database so see how well it would go and if there were any problems.

I would test out all code on a test server first before putting it on a production server.

Migrations were usually scheduled at Midnight and finished before anyone came into work. Before the Migration a backup of all data was done.

It is the only safe way to do things.

<comment><USER4> You risk losing data before the between the start of the migration and the end of it. Unless you disable the service. In that case you certainly don't have zero downtime.

</comment></comment><comment><USER5> Some aspects of zero downtime DB migrations require your changes and deployment protocols to follow certain rules, so I'm not sure a generic automated solution is possible. I was writing and speaking a fair amount about this back in 2012 and the concepts are still basically the same today -- I'll outline the core ideas here and provide a few links with more configuration examples, etc. at the end.

The basic idea behind zero downtime DB migrations is to use a Blue-Green deployment model. Blue-Green deployment uses two identical production environments, called "Blue" and "Green", with a router or proxy setup in front of them. Only one of the environments serves traffic, while the other is idle.

For our example, let's say Blue is initially live. When you deploy new application code, it would be deployed to Green and tested. Once you're happy with it, you switch the router or proxy to send requests to Green. Blue becomes idle, and then you update Blue.

With MySQL as the database, I like to call this setup "Active-Passive", using a Master-Master infrastructure. Normally, Master-Master implies an "Active- Active" setup with each instance being able accept reads and writes. (People that have used Active-Active Master-Master MySQL recognize the big downside: conflicting writes break replication.)

Using an Active-Passive approach for supporting zero downtime schema changes lets you avoid the problem of conflicting writes break replication. Basically, think of Active-Passive as the ideas used in Blue-Green deployment, extended to your database.

The basic process is:

      - Run STOP SLAVE on both the Active and Passive servers.
      - Run SQL for the schema change on the Passive server.
      - Run START SLAVE on the Active server.
      - Wait for replication lag on the Active server to become small enough (ideally about a second). You can check replication lag with SHOW SLAVE STATUS "Seconds_Behind_Master", although that isn't 100% reliable and you are better off with something like Percona's MySQL Toolkit's pt-heartbeat.
      - Run LOCK TABLES on the Active server for the final replication catchup
      - Ensure replication lag is zero on the Active server
      - Modify your proxy configuration to change the Active/Passive designations
      - Unlock the new Passive server
      - Run START Slave on the new Active server

Now, there are some limitations:

      The new schema must be backwards compatible with the previous schema:
        - Add new columns with triggers rather than modifying in place.
        - New columns cannot be required immediately, or old writes will not replicate appropriately.
        - You can't use server-generated data functions (UUID, NOW, RAND, etc)
      And it can't conflict with pending writes:
        - No auto-increment INSERT unless the application doesn't insert to that table.
        - No DROP COLUMN nor DELETE rows if they are used in the previous schema version.

Resources:

My article in SysAdvent on Zero Downtime MySQL schema changes: [http://sysadvent.blogspot.com/2012/12/day-3-zero-downtime- my...](http://sysadvent.blogspot.com/2012/12/day-3-zero-downtime-mysql-schema- changes.html)

Slides from a presentation I gave at a Devops conference in 2012: [http://www.completefusion.com/zero-downtime-deployments- with...](http://www.completefusion.com/zero-downtime-deployments-with-mysql/)

Pivotal Labs about Blue-Green deployment: [https://docs.pivotal.io/pivotalcf/devguide/deploy- apps/blue-...](https://docs.pivotal.io/pivotalcf/devguide/deploy-apps/blue- green.html)

(As a side note, if you haven't heard of it before, SysAdvent is awesome: ~25 sysadmin/devops posts published annually in December.)

<comment><AUTHOR> Blue-Green with that strategy really sounds like a great strategy, also thanks for the sysadvent link!</comment></comment>


Tell HN:  The new yellow pages just got here -- and went straight to recycling - <AUTHOR>

A new hard-copy yellow pages book just showed up on our doorstep -- and for the Nth straight year, went directly into the recycling bag that's already on the sidewalk awaiting this morning's weekly pick-up.
Surely there are better uses for the wood, electricity, gasoline, etc., that it took to produce and deliver the yellow pages.
Maybe there should be an opt-out list. <comment><USER2> I agree it is a total waste.

The reason everyone and their half brother gets one is because these directories sell the ads based on their "circulation".

The more people they can claim to get the book, the higher rate they can charge for advertising.

So as far as the Yellow Pages are concerned, they held up their end of the deal with their advertisers. Whether you read it or not wasn't part of the deal.

A lot of these directories also offer a "combo" where you get advertising in the print edition and on a web site in order to bridge the 20th century and the 21st.

So until companies stop spending their advertising dollars to be in the 'pages it will be some time before you stop receiving it.

</comment><comment><USER3> In Germany you can pick up the yellow pages in public places (post offices), they aren't delivered to you. So they can presumably print less because not nearly everyone is picking one up. Considering the yearly heaps of dead wood I still have the feeling that a lot of those books won't fare much better than your copy.

<comment><USER4> Well, there was one on my doorstep (actually, there was a heap of them for all residents) so someone has delivered them here. I would care more about this dead wood issue if more than two of 12 households here would recycle _at all_ -- it's a shame.

</comment></comment><comment><USER5> I collected a few and used them to make a standing desk.

</comment><comment><USER6> In fairness over 30% of Americans still don't have broadband access and a physical phone book might very well be faster than going through dial-up

[http://www.theregister.co.uk/2010/02/23/fcc_broadband_survey...](http://www.theregister.co.uk/2010/02/23/fcc_broadband_survey/)

</comment><comment><USER7> there is this initiative:

<http://www.yellowpagesgoesgreen.org/>

You can add your name here:

<http://www.yellowpagesgoesgreen.org/stop-yellow-pages/>

</comment><comment><USER8> The online directory business that aggressively offers to recycle every Yellow Pages in the country will garner that much publicity (at least, it will once the environment overtakes the economy again in terms of personal concern).

</comment><comment><USER9> You just recycled an opportunity to show off to your friends by tearing it in half with your bear hands.

...and make manly noises while looking constipated...Grrrr</comment>


Ask HN: Ex software developers/engineers, what do you do now? - <AUTHOR> <comment><USER2> I used to be a developer, but I never became am excellent one, because I was interested in so many aspects, including (dev)ops, qa, product management, and most importantly the business side of things. At some point someone else (which is a bit embarrassing in hindsight) realized I might have what it takes to be a CTO, and I was brave enough to do that step.

Now since about four years, I'm a freelance interim CTO and help companies that struggle inside and around the product development department.

<comment><USER3> I'm glad you found your calling :)

Now I'm really intrigued by what it takes to get "freelance interim CTO" jobs - and whether this is with tiny one-person shops (where the CTO is also "the developer"), middle-size businesses (10-50), or enterprises that lost an executive to poaching or illness and need someone to plug the gap until their headhunter's got a new one lined up.

<comment><USER2> In my case, most engagements came from head hunters, and only some from my network. Also, I have a somewhat nice looking vita, which helps.

Right now, it's mid size businesses with 50-75 FTE product development departments, but when I will be 50+, I want to get also projects at bigger companies :)

</comment></comment></comment><comment><USER4> I realized at some point that 'coding for answers' was more interesting to me than applications. That discovery spurred a shift into analytics in the financial sector, followed by a post-crisis stint in government service. In the latter role sql and python were secret weapons.

I now analyze public policy for hedge funds.

<comment><USER5> Any tips on making that switch? What types of jobs would you search for?

<comment><USER4> TLDR: look for 'analyst' or 'analytics' jobs where the challenges are less mathematical and more organizational.

Personal connections (even tenuous) make all the difference. One approach is to pick a vertical in which you have a secular interest that is unlikely to flag (e.g. finance for me), and be open to making the most of opportunities that might have non-obvious embedded call options. Then look for opportunities to be informally helpful to people working in that vertical (if starting at 0, look for a meetup or other public event to attend).

This can often look like a lateral or downward move to a job at which your outperformance is likely. In most analytics or adjacent roles there is still plenty of low-hanging fruit for automation, which frees up your time to add value on domain problems.

YMMV, but I found it helpful to not highlight the automation work (in fear of being pegged the "tech" guy). Instead, using the earned time to do exploratory analyses on root causes (or sensitivity or whatever) paid real dividends. Adding that kind of value has its own gravity, and my experience was that it opened other opportunities.

</comment></comment></comment><comment><USER6> I'm getting pretty close to pulling the pin and retiring. I won't really need the money but will probably do a bit of consultancy now and then. Since 2003 I've been writing a memoir on living in Thailand - I hope one day to actually get around to finishing it! :D

A friend of mine recently bailed out of software and is now a qualified mountain leader.

</comment><comment><USER7> Product Management. I do miss being an individual contributor but I'm learning quite a bit about the 'biz'

<comment><USER2> That's actually a great move. Ex-devs as Product Managers / Product Owners are the best.

<comment><USER8> I slightly disagree there. Currently have an ex-dev product owner. Who takes away the thinking of individual developers and is unable to provide enthusiasm to the team.

Having technical knowledge, yes. Very big plus. Not every developer has the other aspects of a Product owner or Product manager though.

</comment></comment></comment><comment><USER9> VP of Customer Analytics at a financial institution.

I was a decent software engineer to boot but never really got into the super technical side of things. I enjoyed working with people and speaking to them about how technology can help solve their problems - hence, the role switch.

To scratch my itch, I do a bit of dev/machine learning work.

</comment><comment><USER10> I expected a lot more people to say a blue collar career path like Construction or Plumbing, a la Office Space. Color me a bit disappointed.

<comment> barrow-rider Those people are out there, just not posting on HN at 2pm EST cuz they're not at a desk, they're working 10 hours on a site job.

One of my buddies was a linux admin, but now he blows glass and does custom stained-glass windows. Still has a website and does other techy stuff but mostly just playing w/ fire and sand last I heard.

</comment></comment><comment><USER11> Based on people I know that have bailed - its either management, or craft beer brewers</comment>


Amnesty: Chinese anti-censorship activist gets 2 years in jail - <AUTHOR> https://www.amnesty.org/en/documents/asa17/9641/2019/en/ <comment><AUTHOR> The guy's name is Zhen Jianghua. His story and photo: [https://www.rfa.org/english/news/china/activist- trial-090620...](https://www.rfa.org/english/news/china/activist- trial-09062018130014.html)

Only 2% of the 1.3 billion people in China get uncensored information, according to the Berkman-Klein Center at Harvard. Breaking censorship in China is a worthwhile project, if you are looking for one.</comment>


Intimate Apps tries to protect your sanity and privacy - <AUTHOR> https://www.facebook.com/pages/Intimate-Apps-Incorporated/426648564046450

<comment><USER2> This is a photo app? That puts black bars on photos?</comment>


The Decline in Illegal Immigration From Mexico-Becker - The Becker-Posner Blog - <AUTHOR> http://www.becker-posner-blog.com/2013/03/the-decline-in-illegal-immigration-from-mexico-becker.html <comment><AUTHOR> Rebuttal from Posner: [http://www.becker-posner-blog.com/2013/03/mexican- immigratio...](http://www.becker-posner-blog.com/2013/03/mexican-immigration- to-the-united-statesposner.html)</comment>


Ask HN: How Would You Fund-Raise for your Startup without vast personal network? - <AUTHOR> This issue comes up times and times again: brilliant founder comes up with revolutionary idea. Yet she doesn't know where to find financing to turn this idea into a business. What advice can you share? <comment><USER2> First question I would ask is what kind of business is it, and whether fundraising is necessary. Many times, the answer it is not if you have technical proficiency and/or can gain it on your own, and what your timelines and visions are. Pick 2 of 3 - build it cheap, build it good, or build it expensive. I don't know which ones this "revolutionary idea" falls under, most ideas are worthless anyways including all the shitty ones I have had. Its all pure execution.

I would seek out your local startup / tech incubator and tech meetups in your area as a starting point. Both for building a personal network of people you can rely on. I have lots of fantastic developers I talk to in my city's dev channel, some being among the best in the industry as well. I say hello to the owner of my city's biggest tech incubator, the mayor is a good friend of mine too from nonprofit work I've done. I had a nonexisting network about a few months ago, but show your face enough times people will remember who you are.

You can build a prototype without any technical proficiency. There's lots of off the shelf tools you can just throw wordpress/airtable/zapier/kickstarter etc at it, and see how far you get.

<comment><USER3> Great thoughts here, thanks for sharing.

Shouldn't it be pick two of: build it cheap, build it good or build it fast?

Why would anyone choose good and expensive over good and cheap?

<comment><USER4> I think the gist is meant:

> Fast + Cheap = Low Quality

> Good + Fast = Expensive

> Cheap + Good = Slow to market

<comment><USER2> yeah that's what I meant, got the wording mixed up

</comment></comment></comment></comment><comment><USER5> My answer:

Launch a company in a jurisdiction that allows issuing utility tokens (not USA)

Then get them listed on an exchange or sell them

Use the money to build the stuff

Also pay people in the tokens themselves

The latter thing can be done legally with equity in the USA. Look up the book "Slicing Pie"

My #1 advice to first time entrepreneurs is DONT BE AFRAID TO DILUTE YOUR EQUITY ENOUGH TO GET THE BEST PEOPLE ON BOARD AND MOTIVATED TO TAKE INITIATIVE EVERY DAY/WEEK TO HELP YOU.

</comment><comment><USER6> Ideas are only worth slightly more than zero. You need to prove out your hypothesis (that the market even values your idea, or the execution of your idea) first, before you go to investors...generally. The only way around that (usually) is that you have such a reputation of success that people are willing to take a chance on your unproven idea.

But it doesn't take a runaway success of a product, to be able to raise money. You can build a prototype, get sign ups with a landing page, use crowdfunding to raise funds and pre-sell a physical product, etc. Or if it's a SaaS product, even as few as a dozen customers and a strong target market can be enough to go raise money through angels/accelerators in Silicon Valley or other tech hubs.

</comment><comment><USER7> I'm not trying to be argumentative, but I would work on building a vast personal network. As you go from idea to product to business, you'll reach many points where you need a network, or at least the skills to go out, meet someone and get them to help you. I'd start building those skills and a network while I'm fundraising.

</comment><comment><USER8> My approach:

Build a personal network. I went to work for a startup, and delivered engineering goals on time. Now the CEO thinks I'm the only competent developer on staff. Will let you know how it goes.

</comment><comment><USER9> It is not a revolutionary idea unless you can fund it, it is just another worthless idea.</comment>


"Payload to Mars" Added to SpaceX Pricelist - <AUTHOR> http://www.spacex.com/about/capabilities?mars <comment><USER2> One Apollo astronaut when criticised by a commentator that the NASA moon budget would be better spent on other humanitarian causes such as feeding the poor in Africa, his response was along the lines of:

The money spent annually on cosmetics in the USA dwarfs the amount spent on the NASA space program. (Can't find reference on the net.)

In 2015, the global cosmetics market was $61B USD [1], that's a roughly the cost of one thousand trips to Geosynchronous Transfer Orbit (GTO) with a 5,500 Kg payload, or a grand total of 5.5 mega tons to GTO.

We have the resources to become a spacefaring race (at least to the neighbouring planets in the solar system), we simply need to prioritise what's really important.

[1] [http://www.statista.com/statistics/259217/global-make-up- mar...](http://www.statista.com/statistics/259217/global-make-up-market-size/)

<comment><USER3> You simply do not understand what cosmetics is about. As Many others in sub- replies to this one. One could say you do not understand human nature, DNA or anthropology. Cosmetics is not about something "unnecessary" it is about increasing your chances with reproduction.

And now tell me what more important thing that reproduction could be encoded in our genes? Second to reproduction is feeling well. For whatever strange reasons our history shaped society, people today have to live in it and they, of course tend to try to maximizes their happiness.

Some People feel better when they get attention (again DNA and anthropology). Of course YOU want to go to space. And by you I mean all in this thread who despise cosmetics in favour of space travel, simply. Because humans are not simple we have deep contradictions embedded in our DNA and society forged traditions.

Yes I agree with you all very much we should go to space BUT to be able to do so we first need to find consensus on each individual happiness weighted against the demands for happiness from other people, of the whole world. Its as simple as that. And I don't have to tell you that concepts like nations do not necessarily help in achieving that.

We are moving up the ladder([https://en.wikipedia.org/wiki/Kardashev_scale](https://en.wikipedia.org/wiki/Kardashev_scale)), towards a global society. In that we can not ignore a single persons mischief as we do today.

I hope you see see that its not about "superficial" cosmetics, but about us as humans. And how to be happy, all around the world. We can and should do it but it will look very different to what the world looks today. And of course our anthropology is fighting us here hard again. We want the result of change but not change what is necessary to do that, that is to change ourselves (To acknowledge other people, be more peaceful and thoughtful about resources, etc..)

So again what do you think about cosmetics?

<comment><USER4> Cosmetics is a cause that justifies itself, an escalation of "arms" that encourages others to race to the bottom in cosmetics spending, a race in which the richest are the fittest. There's no intuition for us to entertain the idea that a world without cosmetics is a world with less happiness or biological fitness, but this world would probably never happen.

Space travel, and with it, scientific understanding, space mining, and perhaps colonization, is an abstract thought that goes beyond thinking of local maxima, and that's what makes it deep, as opposed to the cosmetics arms race that is myopic in what it maximizes. That's what makes it shallow.

People naturally have many values, and these values often come in conflict. How we resolve these conflicts can demonstrate a direction toward broad vision and aforethought -- or shallow local maxima.

Anyways, I don't believe that the underlying point of cosmetics argument is about cosmetics. I think it's about the activity of moral posturing, as opposed to a sincere moral commitment toward moral results.

<comment><USER3> Yes exactly my point(people having conflicts) but to resolve them we can't simply "stop" doing cosmethics, we have to be concious about why we use so much of that ( human nature + history) and then think of alternatives.

If you like we need ome kind of migration or negoating strategy.

The problem is people do not live in a vacuum , we live in a attention economy. And people go straight for what they where thaught with ( tradions and values from social environment) [https://en.wikipedia.org/wiki/Maslow's_hierarchy_of_needs](https://en.wikipedia.org/wiki/Maslow's_hierarchy_of_needs)

Love (cosmetics) is at a lower level ( which means it has a higher priority for most people) then Self-actualization or Self-transcendence (space). Do not forget where we came from, thousands of years there were concepts like cosmetics. But space is alien to most people they can not touch it, they can not percieve or concieve it.

Thats the problem we should tackle IMO.

</comment></comment></comment></comment><comment><USER5> Reusing the 1st stage seems to impose a massive penalty on the payload. Chopping it down to 1/3 for the Falcon Heavy to GTO (8000 kg vs 22000 kg).

In case I'm misunderstanding, do these term have these meanings?

mT = metric tonne? The standard symbol is "t". It's odd that they also use kg on the same table for the same quantity so maybe it really means something else? Not millitesla I'm sure :P

"fully expendable vehicle" means dumping the 1st stage into the sea instead of landing and recovering it?

<comment><USER6> Yes fully expendable means dumping the whole rocket like other launches.

It takes a good amount of fuel to kill all the horizontal velocity the first stage built up before detaching and then a bit more for landing. Due to just the physics you're losing some of the most effective (in terms of dV per unit mass of fuel) burn in the first stage.

<comment><USER7> So hopefully someone can answer this, but what's the reason they don't put the droneships WAY down range of the rockets?

So instead of having to fully stop and reverse, they position them so they can arc back down and only has to stop its momentum.

<comment><USER6> CRS-8 which was the one that successfully landed on the barge recently was going 6600 kmph at 71 km when the first stage cut off, most of that was horizontal speed. They have to reduce that speed to both not break apart in the atmosphere. They can't have a lot of horizontal momentum low in the atmosphere and still land straight up on the barge. The rocket has hard limits on how much it can control it's orientation inside the atmosphere because it only has small cold gas thrusters and the grid fins to really control roll pitch and yaw.

</comment></comment></comment></comment><comment><USER8> So the only numbers I can find on price for the Atlas V that delivered Curiosity to Mars is 20% of $2.5 billion. If I'm reading this right, a single Falcon 9 could have launched the same payload (3,893 kg) all the way to Mars for $62 million instead of ~$500 million. Am I reading this right?

<comment><USER9> No, as the Falcon Mars capability is theoretical and not before 2018.

</comment></comment><comment><USER10> It hasn't been added to the pricelist - it's been added to the rocket's capabilities.

Doing a bit of napkin math would get you a similar number.

<comment><USER11> So is it the same fuel load to LEO, GTO, and Mars? Just less mass to move?

<comment><USER12> Yes, it's the exact same rocket with the exact same fuel. The further you go the less payload you can carry because heavier means spending more fuel.

</comment></comment></comment><comment><USER13> Where are the "to the moon" prices?

I assume they're about halfway between GEO and Mars (or does aerobraking on Mars save you enough mass that they are practically the same?)

<comment><USER14> Probably not a lot of market demand for it. Good question though.

</comment></comment><comment><USER15> ... but no delivery mode specified. Mars orbit insertion or any landing is up to your 4020 kg of payload, I'm assuming. Wonder what delta-v you need to handle?

<comment><USER16> Assuming they'll deliver you onto a Mars transfer orbit, you need ~2 km/s for the Mars capture maneuver. Assuming you have an engine with ~300s Isp, you need a mass fraction of exp(-2/3) ~ 0.5. So you need your payload to be about 50% fuel by mass.

Also, this doesn't account for any aerobraking, which should save you some fuel.

[http://space.stackexchange.com/questions/12660/delta-v-to- lo...](http://space.stackexchange.com/questions/12660/delta-v-to-low-mars- orbit)

<comment><USER17> > Assuming you have an engine with ~300s Isp, you need a mass fraction of > exp(-2/3) ~ 0.5.

So would taking a longer earth-mars route that allowed the use of some more efficient drive (e.g. ion engine) improve the amount of payload that could be delivered?

<comment><USER16> Yes, definitely. If you had an engine with 3000s Isp, which according to Wikipedia wouldn't be unreasonable for an ion thruster, then your mass fraction would be about exp(-2/30) ~ 0.94. So you'd only need 6% of your payload for fuel in that case.

[https://en.wikipedia.org/wiki/Specific_impulse#Examples](https://en.wikipedia.org/wiki/Specific_impulse#Examples)

</comment></comment></comment></comment><comment><USER18> It's all fun and game to put the price online until you actually want to place an order and can't find the paypal button.

</comment><comment><USER19> Is the pricelist there to market SpaceX itself because it doesn't seem like you would merely accept the price on the pricelist?

<comment><USER20> As I understand it, this price list is similar to the list prices you see for large commercial aircraft. That is, these prices have only a vague relation to the actual prices customers end up paying. With deals as large and complex as these, each one is a little different so it's inevitable that they get negotiated individually.

<comment><USER21> Sounds like dealing with Oracle. :)

</comment></comment></comment><comment><USER22> I think it should read: "Call for Pricing" under Mars, as the Standard Payment Plan price is "to GTO"

<comment><USER23> For $90 million you can use their Falcon Heavy to send 8 tonnes to GTO.

SpaceX does not yet have a vehicle to take you to Mars. The idea is that your GTO payload would be such a vehicle supplied by the customer. The numbers below just shows the limits of what is possible, i.e. such a Mars Transfer vehicle could weigh up to 22 tonnes and possibly contain up to 13 tonnes of payload.

<comment><USER23> For comparison: The GTO vehicle for the Curiosity rover was about 8 tonnes. SpaceX is about half the price of Atlas V a few years ago.

</comment></comment></comment><comment><USER24> About $6600 to get 1kg to Mars "-)

<comment><USER25> That seems... surprisingly cheap. $6600 could also get you a small apartment for two months in NYC, about 10% of the way to the TSA randomizer app, or a lawyer for a day. Sending something to Mars is by far the most incredible of those things!

</comment></comment><comment><USER26> So the Falcon Heavy can get 13,600 kg to Mars for $90M.

By comparison, the Apollo 11 lunar (landing) module was 11,900 kg and the command/service module was 28,800 kg at launch. There were also other components that added at least 6000 kg. (according to some quick Wikipediaing)

So > 46,700 kg total.

<comment><USER27> Yes, the Saturn 5 was a truly ludicrously powerful rocket.

<comment><USER28> A single Rocketdyne F-1 engine from the bottom of the Saturn V had about the same thrust (about 1.5 million lbs.) as the whole first stage of a Falcon 9. And it had 5 of those. A proposed new version of the F-1 would produce even more thrust, 1.8 million lbs.

</comment></comment></comment><comment> grey-area Also payload to Pluto: 2,900kg

[http://www.spacex.com/falcon-heavy](http://www.spacex.com/falcon-heavy)

</comment><comment><USER29> Just curious, what happens if a rocket fails and the client's payload is destroyed?

<comment><USER30> That depends on the customer. In the case of most commercial launches, the insurance policy that was required by the investors financing the launch pays out. In the case of government launches (who didn't need to borrow money for the specific purpose of the launch), they just eat the cost of the payload.

</comment></comment><comment><USER31> Can we stake a claim on Mars yet? I figure it'd be relatively cheap to fly something to Mars, say you own the whole planet and recoup more than the $60 million to get there...

<comment> Tuna-Fish Why would anyone respect your claim?

<comment><USER32> Seriously, depending on how long your game is, it might make sense. You would expect at first the claim would be completely disregarded, and then in some number of centuries enough inter-planetary infrastructure could develop that includes a legal framework under which you could sue for damages. Or, something...

I wonder if you could send over some type of networking equipment, and then anticipate charging one heck of a bandwidth premium?

<comment><USER33> I have a feeling that those claims aren't valid if you, or your robots aren't standing on them.

</comment></comment></comment></comment><comment><USER34> What would a group want to send to Mars at this point? I can imagine research equipment, but I'm wondering what else besides scientific interests.

<comment><USER35> some extremophiles from underneath the polar ice caps.

some billionaire has to be thinking that their ultimate "mark on the universe" would be to start seeding life on mars.

Call it the 21st century version of the Carnegie donation program. The Gates Path to Life. Sounds romantic.

<comment><USER34> I'm pretty sure cargo like that is at the top of their rejection list in bold letters. Don't space agencies work super hard to disinfect and sterilize equipment that needs to land on other planets? It might actually be illegal to seed life on other planets, if I recall correctly.

<comment><USER36> I don't think it's illegal, but it is enforced by COSPAR's recommendations on Planetary Protection. Missions to Mars actually have a much higher threshold for avoiding contamination than, say, missions to the moon. [https://en.wikipedia.org/wiki/Planetary_protection](https://en.wikipedia.org/wiki/Planetary_protection)

</comment></comment></comment></comment><comment><USER37> Do the prices include tax?

<comment><USER9> It's customary in the US to list prices without tax, so I would guess not.

<comment><USER38> Since SpaceX has a presence in Texas, I wonder if they pay state sales tax?

</comment></comment></comment><comment><USER39> Have issues of long term radiation and micrometeorite impacts been solved while I wasn't looking?

<comment><USER40> For unmanned payloads - the only type SpaceX has flown thus far - that's been solved since the 1970s.

<comment><USER39> I was thinking about Musk's planned 2018 manned mission.

<comment><USER6> 2018 isn't manned it's just tossing an unmanned Dragon variant at Mars and landing it. It's a technology demo and test mostly.

<comment><USER39> My bad!

</comment></comment></comment></comment></comment><comment><USER41> Honest question:

Why do space rockets and rockets in general always so closely resemble penises?

<comment><USER42> Maybe it's more interesting to ask, "why are penises so aerodynamic?"

<comment><USER43> because they're aerodynamic</comment></comment></comment>


Ask HN: Movies for Hackers? - <AUTHOR> I will be interested to know what kind of movies will you recommend to hackers. <comment><USER2> Primer.

Wonderful movie, the script is smart and complex, budget is tiny, ideas are huge. Watched it 5 times, still don't get parts of it, but it's brilliant.

<comment><USER3> The best thing about Primer is that I come away with the feeling that I can go out to my garage and do something amazing.

</comment></comment><comment><USER4> Glengarry Glen Ross

Kinda cliche but still a fantastic movie about hustling and desperation.

Of course, one simply cannot talk about this movie without referencing, at least once, one of the greatest motivational scenes in movie history.

<http://www.youtube.com/watch?v=8kZg_ALxEz0>

</comment><comment><USER5>
        * Pirates of Silicon Valley (1999)
        * Revolution OS (2001)
        * Code Rush (2000)
        * The KGB, the Computer and Me (1990)
        * Infinity (1996)
        * Antitrust (2001) -- mildly entertaining and fun

</comment><comment><USER6> The Conversation(1974): <http://www.imdb.com/title/tt0071360/>

<comment><USER7> A great hardware hacker movie, and one of the greatest movies of all time. Excellent character study of the withdrawn hacker personality type. It's even set in San Franciso. Coppola's best work, bar none. And that's saying something.

At times this has been my very favorite movie.

</comment></comment><comment><USER8> Sherlock (TV series) very modern and high paced, love the way they put SMS messages in view <http://www.imdb.com/title/tt1475582/>

<comment><USER9> First time I saw it the thought on my mind was: "What did just happen? That was very cool. I like that. Why haven't this been done before"?

Has it been done before?

<comment><USER10> You see it a lot in Korean movies and TV from the last decade. Very cool effect. I appreciated it in the excellent Sherlock series too, although in general season one was much more enjoyable/original/faithful than the second.

</comment></comment></comment><comment><USER11> The Millennium Triology (Thou shall watch the 2009 version. The Hollywood one is crap). 3 movies. Involving hacking + The hacking parts are not total garbage as in other movies. But there's one scene where they say that she needs a faster computer to download things faster -.- I dunno if the movies are available in English. But there should be at least swedish, norwegian and german ones.

Edit: I checked it. There's an English one too.

</comment><comment><USER12> Brick (2005): <http://www.imdb.com/title/tt0393109/>

</comment><comment><USER8> Moon (2009)

</comment><comment><USER13> These are some movies/tv series that I deeply enjoyed and (some I) wish I had known about earlier.

9.9 Hitchhiker's guide to the universe, BBC TV series

9.9 Contact (1997) based on a novel by Carl Sagan. Very few people seem to know about this movie.

9.3 War Games

9.0 most Akiro Kurosawa movies:

        Seven Samurai

        High & Low

        The Bad Sleep Well

        Ikiru

        Red Beard

9.0 Terminator 1 (watch again)

8.8 Terminator 2 (watch again)

8.7 Pirates of Silicon Valley

8.7 Matrix 1 (watch again)

8.7 The Italian Job (featuring Napster's original inventor)

8.7 Live Free or Die Hard

8.5 Track Down or Takedown (about social hacker Kevin Mitnick)

8.5 Revolution OS (2001)

8.5 Dr. Strangelove

8.5 2010 A space odyssey

8.3 Antitrust (2001)

8.3 Sneakers

8.3 COSMOS

8.2 Minority Report

8.2 2001 A space odyssey

8.2 Paycheck (2003)

8.0 The Thirteenth Floor (1999)

8.0 The Net

<comment><USER13> Some highly rated movies that I didn't like:

\- Bladerunner

\- Memento

\- The Prestige

\- Old Boi

</comment></comment><comment><USER14> Inception (very interesting idea)

Source Code (also nice idea, but crappy end)

</comment><comment> why-el Old Boy. Fantastic South Korean thriller about the perils of the revenge mentality.

<comment><USER8> I can also recommend the The Chaser (2008): <http://www.imdb.com/title/tt1190539/>

<comment> why-el Great recommandation, I saw that last year.

<comment><USER8> In that case you probably also have seen I Saw the Devil (2010) <http://www.imdb.com/title/tt1588170/>

</comment></comment></comment></comment><comment><USER15> Hackers (1995) WarGames (1983)

<comment><USER16> Can't believe I had to scroll down the entire page to see this. It's so obvious!

<comment><USER17> And so awful... (Hackers - not War Games)

<comment><USER18> That's an interesting way of spelling amazing

</comment></comment></comment></comment><comment><USER8> The man from earth (2007)

<comment><USER19> Amazing film.

</comment></comment><comment><USER20> Frequently asked questions about time travel - 2009: <http://www.imdb.com/title/tt0910554/>

</comment><comment><USER21> 1\. Ghost in the Shell 2\. Ghost in the Shell Stand Alone Complex - series not a movie 3\. Primer 4\. Zizek The Movie 5\. Pi 6\. Gattaca 7\. Waydowntown

</comment><comment><USER22> Waking Life (2001)

</comment><comment> chris-j Pi (1998)

</comment><comment><USER23> Southland Tales (2006) - <http://www.imdb.com/title/tt0405336/>

</comment><comment><USER24> Macon County Line

<http://en.wikipedia.org/wiki/Macon_County_Line>

</comment><comment><USER25> Limitless (2011) - A writer discovers a top-secret drug which bestows him super human abilities. With Robert de Niro.

</comment><comment><USER26> Takedown (2000)

<http://www.imdb.com/title/tt0159784/>

</comment><comment><USER27> Sneakers (1992). Too many secrets.

</comment><comment><USER8> Dragon: The Bruce Lee story (1993)

</comment><comment><USER28> If you've had enough of thinking for one day, grab a cold one and put on: The Core(2003).

<comment><USER7> The Core has perhaps the highest degree of (ridiculousness times budget) of any film ever released.

I love it.

</comment></comment><comment><USER8> Castaway on the moon (2009)

</comment><comment><USER8> The Andromeda Strain (1971)

</comment><comment><USER29> Timecrimes

</comment><comment><USER30> Timecrimes. One of the best time travel movies I have ever seen.

</comment><comment><USER8> Pitch Black (2000)

</comment><comment><USER8> District 9 (2009)

</comment><comment><USER31> Buckaroo Banzai

</comment><comment><USER32> Flatland (2007) - Hacker Jr. friendly!

</comment><comment><USER16> Also, Ghost in the Shell.

</comment><comment><USER8> Death Note (Anime series)

</comment><comment><USER16> Swordfish (2000)

</comment><comment><USER33> The Life Aquatic

</comment><comment><USER34> Memento (2000)

</comment><comment><USER31> Donnie Darko

<comment><USER9> It took me a couple of times to understand that it was a SciFi movie.

</comment></comment><comment><USER31> Real Genius

</comment><comment><USER35> Cube (1997)

For all you A/B, MAB testers out there.</comment>


Ask HN: Is it worth investing in learning Rust? - <AUTHOR> I'm interested in your feedback regarding my question,In my case, I'm planning to learn Rust, but I'm really struggling between going for Go or Rust. Thanks ! <comment><USER2> I have written non-trivial code in Rust and Go. The thing about Rust is that it needs a bit of perseverance and experience of writing a bit of non-trivial code in Rust to really appreciate it. Writing tutorial like code won't cut it.

Life-cycle of a Rust developer: [https://imgur.com/kNkV7jm](https://imgur.com/kNkV7jm)

Good, bad and the ugly: [https://imgur.com/udNcZXa](https://imgur.com/udNcZXa)

With Go, in my head it is best explained in terms of the scene in the movie: Pursuit of Happyness

 _Boss: Chris. What would you say if a guy walked in for an interview, without a shirt on, and I hired him? What would you say?_

 _Chris Gardner: He must have had on some really nice pants._

People (including me) find lot of issues with Go in terms of some choices in the language. But boy it does have some really nice pants and that is the ease of writing networking services + Go routines

<comment><USER3> I recently started using Go for a bunch of small services a new product needed. I was amazed at how easy and fast it is to get up to a point of high productivity in Go. The language is really straight-forward to begin working in. Probably the most fun I've had learning a new tool in many years.

</comment></comment><comment><USER4> Learn both, Rust is a great general purpose language that can be used to build almost anything. Go is a great general purpose language that can build a nice set of things.

If you need to, you can even use Rust to build firmware, boot loaders, kernel drivers, user mode drivers and operating systems. Basically anything that you want to run fast and have less errors Rust would be a pretty good choice to use, especially when speed, performance and app reliability is a high requirement.

I use Rust at work to help reduce error prone programs and speed up capabilities of our distributed apps (calculations and pre-processing of data from systems) that naturally run slow using their original language implementation. I use Go for writing our blazing fast web applications that provide an fast interface to our apps for our internal users.

<comment><AUTHOR> Yes, on the performance side of things, Rust is blazing fast, but the learning curve is hard though, that's why I'm wondering if it's really beneficial for me as a programmer especially in the long run, since it's not used widely in the moment.

<comment><USER4> It is worth learning about it, the biggest part of the learning curve is learning how to right programs better using the language guidelines. I use it daily and it has been a wonderful tool in the toolbox to improve performance, reliability and security of our systems and low level processing systems. You will more then likely still need to use C and C++, but learning Rust will help you program better in C and C++ along with other languages as Rust can call those C and C++ based programs.

The use of Rust is rising, especially for new systems level projects or rewrites of older programs. This is especially true where unexpected issue reduction is a high priority (high frequency trading systems, industrial systems, security systems, video transcoding, packet switching and routing systems, video monitoring systems, virtualization and emulation, web servers, other embedded etc.)

I would recommend getting started learning Rust by having a few projects. I would recommend starting off by building a multi-threaded web server. [https://doc.rust-lang.org/book/second- edition/ch20-01-single...](https://doc.rust-lang.org/book/second- edition/ch20-01-single-threaded.html) See how many concurrent clients it can handle and make adjustments to increase it's max capacity. After you have done that I recommend building your own daemon to handle log parsing and analysis from your web server to give you a nice table of stats. To spice thinks up I would recommend trying to do this without the dependency on external resources after you have downloaded all the resources you need: [https://doc.rust- lang.org/cargo/reference/source-replacement...](https://doc.rust- lang.org/cargo/reference/source-replacement.html) [https://crates.io/crates/crates-mirror](https://crates.io/crates/crates- mirror) then try to build the projects.

You can also do some much needed checks on your programs input by using Valgrind and several other tools. Once you are satisfied with your program insure you use Rusts tools to also build the documentation and check your coverage: [https://github.com/huonw/travis- cargo](https://github.com/huonw/travis-cargo)

<comment><USER5> What resources would you recommend for a beginner programmer with no experience of C or C++?

I'm a mature student studying a computer science degree but wouldn't say it's providing anything in the way of proper programming experience, though I do understand the most common data structures and algorithms as result.

</comment></comment></comment></comment><comment> nevi-me Many things are worth investing in, if you justify it.

The case between Rust and Go is an interesting one, as many of us have observed that the two languages seem to get paired together (for people wanting to learn).

I wanted to start learning both beyond the basics, about 2 years ago. A few weeks ago I decided to write my Hello World in Rust, and I've been hooked.

What I'd advise is for you to have a use-case that you work on while learning the language. You can spend a lot of time on the basics and std, but unless you start also picking up a few external libraries (e.g. SQL, web framework), you might find progress to be slow.

The other benefit is that you'll get more exposed to the community. It's important to know where to go when you need to ask for help.

In my case, I got comfortable with gRPC in Rust, then moved to Actix, and now (if I get diesel.rs to compile) I'm moving to SQL. Next will be "fearless concurrency", threading and futures, streams, integrating with NodeJS and other languages, etc.

A roadmap which gets one comfortable with the standard language while being productive.

<comment><USER6> My advice would be to not just focus on a use case, but actually have a small "starter project" in mind that you can prototype an MVP for.

My starter project[1] was a set of bindings for pandoc-types, so you can manipulate Pandoc ASTs in Rust. It's a very small library, but it's enough to plausibly do something interesting. It's also big enough to get me to play with serde and some serialization stuff in Rust. So it was a pretty good size to start with.

[https://github.com/elliottslaughter/rust-pandoc- types](https://github.com/elliottslaughter/rust-pandoc-types)

[1]: Technically, I did work in Rust prior to this, but it was all long before 1.0, so I had to relearn when I picked it back up.

</comment></comment><comment><USER7> Is it that big of an "investment" that you need to agonize over it? Flip a coin, learn whichever one. Then assuming you're not currently dying of cancer and don't get hit by a bus etc., _learn the other one next._ You've got plenty of time.

Your thoughts as revealed by the question fall into a pattern I recognize from when I was younger, where I used to think (for example) 6 months was like this _eternity_ , and (for another example) what I was gonna major in was super important because it would define my life for 40 years. Ha ha, I should've been so lucky! Or rather, unlucky, because reality is much more interesting. The reality is, in 10 years you'll be learning something else entirely, and when you've been at this game a while, you start to lose count of the languages and paradigms you've learned. You get so you can pick up a language in a couple of weeks, or a weekend. Each one of them is worth it, for the things you learn along the way, and the ways it teaches you to think. Any rock is sufficient for sharpening your knife.

</comment><comment><USER8> Go is a much, much easier language to learn; it's one of the easier mainstream languages to learn.

If you really have to ask, like it's a headscratcher between the two, learn Go first and see if you're happy where you land with it. Go is the more popular of the two languages; there's not much "risk" to either of them, but there's marginally less risk for Go.

Rust is the more ambitious of the two.

<comment><USER9> I've written fairly complex projects in both languages, but have a great deal more experience in go. I think tptacek nails it with this advice: go is much easier to learn. One of the things i really like about it is how easy go code is to read coming from almost any language.

It makes sense to get comfortable with go first because the time commitment to achieve basic competence with rust is much greater. Rust will definitely open your mind but it will take some time to get there.

</comment></comment><comment><USER10> If this is a career thing, it's usually better to be an expert in one language than an amateur in a dozen of them. Try them both, proceed with the one you like best, because in the end, you will be judged by what you produce with it.

No matter how much nerd-cred a language has, it is hard to be productive with a language that you hate.

edit: FWIW, we are commenting on a site by a billionaire who seeded his fortune by writing a program in LISP back when almost everyone else thought that LISP was long-dead and buried.

<comment><AUTHOR> I absolutely agree with you that it's usually better to be an expert in one language than an amateur in a dozen of them.It's not really for a career thing right now, but I like to expand my knowledge especially in systems programming languages, but if Rust become widely adopted, I will be more than happy that I made the right decision to learn it.

<comment><USER10> If by systems you mean drivers/kernels/etc, that kicks Go out of the running anyway.

</comment></comment></comment><comment><USER11> Depends on what you're doing. If you're doing web backend stuff, use Go. That's what it's for, and it has solid libraries for that because Google uses them internally. Go is reasonably easy to learn - it's just not that big.

Rust is fascinating, but there's just so much stuff in there. The borrow checker is a major advance, but unless you're doing heavy parallelism or can't use garbage collection, the complexity of the language is a problem. I'd hoped Rust would kill off C++, but that's not happening.

<comment><USER12> No language has ever "killed off" any language as popular as C++. Perl isn't dead yet. C hasn't even killed COBOL and Fortran.

Anyway, if Rust doesn't unseat C++, of all languages, it won't be because of language complexity. There's very little complexity in Rust that isn't inherent to the language goals anyway.

</comment></comment><comment><USER13> If it's for learning, learn both. They teach you different models of thinking. As far as pure knowledge, Rust probably has an advantage. If you're looking to get things done quick, or for employment, Go would be the safer choice today.

</comment><comment><USER14> Don't see anyone asking why are you learning either?

Your objectives should come first, then you figure out the tooling. Some have touched on what either is good for, but it really comes to what type of work you are doing/want to do.

In a comment, you mention that you are currently doing JS/Node work. Golang is going to be the closest in terms of use cases - it's excellent for services. We've used it in production with great success, especially when you can leverage goroutines to make things happen in parallel very fast. It's also fairly maintainable for the web services use case.

I don't know much about Rust unfortunately.

</comment><comment><USER15> Think of Go as a better Python and Rust as a better C. Which type of programming do you do more?

Rust is harder to learn but solves some harder problems and arguably you'll learn more valuable concepts as a result.

<comment><USER16> > Think of Go as a better Python and Rust as a better C.

That's an interesting position, because the Go designers specifically intended for Go to be a better C.

<comment><USER17> > That's an interesting position, because the Go designers specifically > intended for Go to be a better C.

So what? Go is not a better C. The C interop overhead by itself is proof enough for that.

</comment></comment></comment><comment><USER18> If you are a C++ programmer, learn rust. If you are a C or other programmer, learn go.

If you are doing this for job prospects, pick go.

<comment><AUTHOR> Can you explain please why is that ? btw I'm coming from a JS/Node background, but I worked with C and C++ before (mainly school projects, nothing serious).

<comment><USER19> Maybe I can try to chime in:

Go is not an OOP language, you get the dot notation on structs and that's pretty much it.

Rust is all about advanced OOP and very fussy static type checking.

That said, IMHO, Go to me feels more like a replacement for Node more than a replacement for C.

<comment><USER20> Rust and OOP are no more related than Go and OOP. What "advanced" OOP features of Rust are you talking about?

<comment><USER19> Then I must have gotten the wrong idea.

I saw a few examples of Rust code with a good amount of generics sprinkled in and given what (seemed to me) the parent comment was suggesting, I assumed that was the case.

That said, I remember reading in the docs about many usually OOP related concepts like RAII, boxing/unboxing, operator overloading, the aforementioned generics.

You mostly don't care about these things in Go. Can we agree that Rust is a bit more OOP oriented than Go at least?

<comment><USER21> No!

\- Parametric polymorpism isn't OOP, pretty much every halfway-decent language has it (including Haskell, which is as functional as they come).

\- Boxing in Rust isn't what you think it is - it's just heap allocation (more like malloc than the monstrosity that is boxing in Java).

\- Again, operator overloading isn't OOP either. Seriously, is it that hard to believe that "you get to use + and - with your own types" is an expectation independent of any paradigm?

> I must have gotten the wrong idea.

Yes. Go and Rust are both very far from what most people would consider "OOP".

<comment><USER19> You make it sound like OOP is an inherently bad thing, and OOP is not mutually esclusive with FP as you seem to imply with your Haskell reference.

Funcional can be considered an alternative vs imperative and declarative, and usually languages are a mix of the three. And any of these 3 style can support OOP.

BTW, plenty of half-decent languages don't have generics.

<comment><USER22> Objects are parametrizations of functions that possibly close over variables. Having types with functions defined in types with dot notation is a different thing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> I really think it is about the kind of dev you want to be. Judging from your question you're early in your carreer / a student: so in order to choose between these two (I'd recommend both, by the way, or as many languages as you can, but do become an expert in one), you need to choose where you want to head. Rust is often (not exclusively) used for more low level stuff, down to firmware, where Go is generally used for higher level stuff, among others networking, web and such.

I think if you find what level of programming interests you, the tools will follow from that.

</comment><comment><USER24> What are your goals? Are you trying to find a job, get into some sub-field of development? Do you have some particular thing you want to build? Or just satisfy some personal itches?

</comment><comment><USER25> Both are great languages.

I learned Golang about 2 years ago and have done a small web app in it to understand and learn about the libraries.

I recently started reading the Rust book and its an eye opener. Its important to understand how the language is designed and with Rust, its different concepts compared to Go. I would suggest to read the documentations/manifestos of both the languages and decide to go ahead based on what you want to do.

Community and ecosystem is an important requirement when choosing a language.

</comment><comment><USER26> Having thought about this myself; the main thing I would note is that I am seeing more and more companies start to write things in rust. It seems on a definite uptrend.

So there is quite possibly work for you in the field, especially since its emerging, you could be in early.

Having said that golang is also on the up and up and probably currently there is more work I would guess; but obviously also more competition.

Lastly; to the average person like myself who is half-sysadmin half-developer (I'm not a software engineer, but I can read and write many languages "well enough") -- Rust is definitely more complex from my small amount of playing both in Syntax and basic things you need to do to "get started" \-- I am sure these would evaporate quickly once you actually learn it properly early on but if you have little other language experience you may struggle with it a little as a 'first' language. Where-as go feels a little more script-like and a little easier to "bounce off the walls" in early learning.

So; is it worth learning? IMHO, yes. Is it the best choice? That may depend a little on your previous programming experience and what job market you are in (for example probably easier to find an onsite job doing rust in Los Angeles, USA than Perth, Australia)

</comment><comment><USER27> This looks like a Perl vs Python question from late 90s.

Back then Perl had a huge traction, mostly from sysadmins. Python got traction from web backend, and systems (redhat used to have a good python conde for starting-up servers).

I think both Rust and Go will coexist un different industries/use cases.

IMHO the killer app/use for GO are lambdas/cloud functions because they are cheaper to execute than python.

For Rust, I expect to see someday a unikernel that boots an app into a VM/light container.

</comment><comment><USER28> > I'm really struggling between going for Go or Rust.

If you want to pick a skill to put on your CV I would recommend Go.

If you want expand your knowledge of programming paradigms I would recommend Rust. As a side note you will also be able to put it on your CV.

edit: for the down voter, what boundaries in language design did golang push? Unlike Rust with its unique memory management?

</comment><comment><USER29> Yes, it is worth investing in learning Rust. As is learning Go. Which depends on what you want to learn and what you already know.

I like to learn languages like building a toolbox. I try to pick up popular, well known tools that don't have a ton of overlap with my existing tools. My go-tos: Java, Python, and C can get you pretty far. Go is a great statically compiled, GC language, with decent memory layout control and with a good concurrency story and a nifty type system (coming from Java). Rust has novel borrow-checker that's probably worth learning and seems to let you solve tasks suited for C but with more structured types and a better/simpler multi- threading story.

</comment><comment><USER30> Forget about the language. What kind of systems do you want to build, or want to learn to build? If it is networked systems, Go gets the job done pretty well. If you want to build a game, or want a superior c++, go for Rust.

<comment><USER31> > If you want to build a game, or want a superior c++, go for Rust.

Does Rust have the libraries, frameworks, engines, and communities for developing games? In my opinion, development of any software, whether it's a REST API or a AAA 3D game, isn't just about the language but is actually about 10 other things.

<comment><USER32> If you want to make a 3D game you can get started much quicker by using an existing engine like Unity and C#.

If you're interested in building a game engine then C++ will have the most resources.

<comment><USER31> That's what I'm thinking, yes.

</comment></comment></comment></comment><comment><USER33> I my humble opinion, Go and Rust will be the go-to programming languages for system software. Go has an edge, but Rust has its own strengths. Go is easier to get productive than Rust.

( But Rust has generics :) )

</comment><comment><USER34> To answer your question, it would be good if you indicated what your experience is already and what you want to do!

Just my opinion (given my own experience and goals; if your experience/goals are different the below may be irrelevant):

As a constant waverer, my answer to the "Go or Rust" question was, after much time, "no".

Instead I'm returning to C++ and trying to learn how to use modern C++ idioms and finding this very productive.

It's a bit frustrating, as C++ is a bloated mess of a language with way too many dark corners, but good discipline can allow you to use a version of it that is really nice. As someone who learned C++ in 1992 (when much of the language _wasn 't even really there yet_) and has only fitfully engaged with good C++ practices over the years, the payoff from learning new parts of C++ has been really much better than a new language.

Plus, neither Rust nor Go are particularly mind-expanding if you're a native C++ speaker (as compared to Python, Prolog, Forth, assembly, Haskell, Lisp, ...).

<comment><USER35> I write modern C++ as my day job and work on mobile apps in swift/objc/kotlin/dart, and services in python for fun on the side.

I don't know if it's just cuz I code modern C++ so much, but I've learned to love c++, even when compared to much easier and theoretically more productive languages like swift and kotlin.

</comment></comment><comment><USER36> learn both until you know which one is your favorite.

<comment><AUTHOR> I think learning both languages to figure out what's my favorite is a bit hard to do, I don't want to actually learn some basics then switch to another language to explore.

<comment><USER37> Learning and using multiple languages is absolutely vital to being able to choose the right tool for the job. You have time to learn both and switching is a necessary skill if you want to program professionally

<comment><USER28> > to learn both and switching is a necessary skill if you want to program > professionally

There is a hoard of professional Java or C# developers that invalidate the idea that you need to know more then one language to program professionally.

While this might seem odd to a hn reader, where there is weekly blog posts of comparing languages or trying out the new shiny thing at a startup.

One need to remember the audience is single digit percentile of the computer industry. The rest of the industry actually use jdk or .net in the enterprise.

<comment><USER37> My advice is sound for anyone working as a programmer because it gives them more options. Many of those Java/C# devs are stigmatized in a mold and will have more trouble applying to jobs outside large enterprise.

<comment><USER38> My last job was for a small startup.

They used Java. The rest of my programming jobs, -large and small, has been either Java, PHP, .Net and once a bit of Delphi. Lately there's also been a lot of TypeScript.

There's been a few jobs I wanted to apply for but couldn't because I'm not good enough with C/C++ and Qt.

Maybe things are different in Silicon Valley but around here the most exotic language I see is Python.

</comment></comment></comment></comment></comment></comment><comment><USER39> The answer depends on who you are, what you've done, and what your goals are. Developing a Rust skillset is absolutely an investment-- but is it a worthwhile investment _for you_?

<comment><USER40> To rephrase Dowwie's point: It's an investment. What would "return on investment" look like to you?

Knowing a new way to think about code? Rust is probably worth it for that, even if you never actually use Rust much. Go is less of a new way of thinking.

Increasing your ability to get hired (or you paycheck when you do)? I'm less clear that you'll get paid back in those terms. Go might be a better bet.

Scratch the itch that you like learning new things? Well, if you learn Rust (or any language), sure.

</comment></comment><comment><USER41> Yes. Understanding of concepts that make Rust's learning curve steep make you a better programmer regardless of which language you'll use later.

</comment><comment><USER42> I don't know Go, so I cannot make a comparison, but studying Rust has been very useful to me as someone interested in the principles of programming because it forces you to think deeply about pointers.

In C, pointers are used for many different things: they stand for arrays and strings (which IMHO is a questionable choice); they are used in types where the structure of an object changes at runtime (linked lists, trees); they provide a way for different parts of the program to refer to a common state; they allow subroutines to modify objects 'owned' by calling routines; they provide a cheap way to pass big structures as arguments to subroutines even when they won't be modified; they provide a way of incorporating large structures as elements of other structures which allows replacing one value with another without a full copy.

Some troubles with pointers are specific to the ways that C uses them: manual memory allocation means that you can use before alloc or after free; the NULL value means that you can dereference an invalid pointer; pointer arithmetic means that a valid pointer can be used to produce an invalid pointer. At possibly some small runtime cost we can eliminate these problems.

But there is one unavoidable problem at the heart of the use of pointers. When you are referring to something with a pointer, are you doing it just for convenience, to avoid copying large structures; or are you doing it to share state with other parts of the program? Things will go horribly wrong if you end up doing the latter when you just wanted the former.

Rust's type system is an attempt to keep track of different uses of pointers to catch such errors without compromising on efficiency. There have been other attempts ([1],[2]) but Rust finally has a rich enough language and library to attempt writing serious programs in.

I think it will be interesting to see whether the authors of such programs find the mental effort of keeping the borrow checker happy worth the efficiency gains of using pointers for both purposes on an equal footing, or whether they fall back to the extreme models of Python (and many other languages) where everything is a pointer which shares state or that of Haskell where there are no pointers by default and one has to switch to a explicit and cumbersome syntax (using the IO or ST monads) when one wants to use shared mutable state.

[1] [https://en.wikipedia.org/wiki/Substructural_type_system](https://en.wikipedia.org/wiki/Substructural_type_system) [2] [http://pauillac.inria.fr/~fpottier/slides/fpottier-2007-05-l...](http://pauillac.inria.fr/~fpottier/slides/fpottier-2007-05-linear- bestiary.pdf)

</comment><comment><USER43> Learn a lisp like Clojure/Clojurescript, or a functional language like Elm or Haskell. Learning a lisp is quite mind opening.

</comment><comment><USER44> I'm guessing Go is the more marketable skill. I imagine learning both would make you better at both, too.

</comment><comment><USER45> Could I have a tangential question: I did learn what is Rust for, but if there is a steep learning curve, it is that much better comparing to C++? I worked about 15 years professionally in C++, it's a solid language, and it is used by many open source projects and companies as well. You can also do "anything" in it, like in Rust, and the abstractions don't incur performance penalties.

<comment><USER46> Are you one of the three people in the world who can write C++ code without security holes? If not, I'd say it's worth it. That was half joking. :)

The half serious answer I can give is: Do you have a job offer you want to take or at least a solid plan how you can use it professionally? There are so many C++ jobs, that you can most likely find another one that meets all your other requirements (location, salary, domain, etc.), should you decide to leave your current one. I don't think that is the case for Rust yet (But I'm rooting for it! :)

The second point is also my answer for OP.

<comment><USER45> Yes the second point is exactly what I was getting at - how exactly is Rust so much better that it justifies to learn it instead of C++. (but I don't imply it isn't, just curious to see some real points).

<comment><USER46> AFAIK, the design goals of Rust are better security and correctness in general, than C++. Have you looked at Rust and decided that it does not achieve that goal?

<comment><USER40> If I'm starting my own project, then I can pick the language that I think gives me a better shot at security and correctness. If Rust is better than C++ at that, and if that's my criterion for picking a language, then knowing Rust opens new doors for me.

If someone hires me to work on a project, in the current state of affairs, they're much more likely to have picked C++ than Rust, and I don't get the choice (other than choosing whether to take the job). Rust doesn't (yet) open that many doors for me as an employee.

</comment></comment></comment></comment></comment><comment><USER47> I spent around 30 minutes reading "Rust for functional programmers" [1] to get overall perspective and then around 3 hours more reading selected chapters from "The Book" [2] about borrowing, lifetimes etc.

Then I managed to write a simple program which reads a password from stdin, applies scrypt KDF to it and prints the result in hex encoding. It took me less than 2 hours. Mostly I just tried to do something, and when it didn't work, I'd find a solution for my problem on stackoverflow or r/rust. Compiler error messages were also quite helpful.

So I managed to write a useful (for me) simple CLI application in 1 day. The next day I added option processing (salt, scrypt parameters), split the code into functions etc. I didn't encounter any problem which I couldn't solve in under 1 hour. The biggest struggle was trying to return a reference to local variable from function, and it was covered in [3].

TLDR: don't try to master the language, just give it a try for a few days, writing a simple program.

[1] [http://science.raphael.poss.name/rust-for-functional- program...](http://science.raphael.poss.name/rust-for-functional- programmers.html)

[2] [https://doc.rust-lang.org/book/](https://doc.rust-lang.org/book/)

[3] [https://bryce.fisher-fleig.org/blog/strategies-for- returning...](https://bryce.fisher-fleig.org/blog/strategies-for-returning- references-in-rust/index.html)

</comment><comment><USER48> Clojure and Datomic.

</comment><comment><USER49> yes</comment>


Django 3.0 alpha 1 released - <AUTHOR> https://www.djangoproject.com/weblog/2019/sep/10/django-30-alpha-1-released/ <comment><USER2> Django is a better monolithic framework. But in Python world users will be equally productive with any WSGI or ASGI based framework.

With Django 3.0 alpha there is an issue with orm which is still not async, so not sure how mixing async code with sync code will behave.

Personally I haven't moved to any async framework in Python for project which need db access until the database adapters like psycopg and orm like sqlalchemy support them completely.

Now a days since most of my startup work involves developing REST API using Python backend without worrying about templates prefer micro framework like Flask [1], bottle [2], web.py [3], Pyramid [4], TurboGears 2 [5], cherrypy [6] etc.

For async might use uvloop based micro framework like sanic [7], quart [8], or starlette [9] vibora [10] etc.

These days in development we try to use these framework more like a library than framework per se. The difference is using them as library our code call library code and it's inline with one of the zen of python " _Explicit is better than implicit_ ".

[1] [https://palletsprojects.com/p/flask/](https://palletsprojects.com/p/flask/)

[2] [https://bottlepy.org/](https://bottlepy.org/)

[3] [http://webpy.org/](http://webpy.org/)

[4] [https://trypyramid.com/](https://trypyramid.com/)

[5] [https://turbogears.org/](https://turbogears.org/)

[6] [https://cherrypy.org/](https://cherrypy.org/)

[7] [https://github.com/huge-success/sanic](https://github.com/huge- success/sanic)

[8] [https://pgjones.gitlab.io/quart/](https://pgjones.gitlab.io/quart/)

[9] [https://www.starlette.io/](https://www.starlette.io/)

[10] [https://vibora.io/](https://vibora.io/)

<comment><USER3> > so not sure mixing async code with sync code will behave.

I believe there are safeguards in place to be sure you don't accidentally do this.

<comment><USER2> It will trigger an error to review the code. It still is bit of a trouble to debug async code with sync code.

" _Note that as a side-effect of this change, Django is now aware of asynchronous event loops and will block you calling code marked as "async unsafe" - such as ORM operations - from an asynchronous context. If you were using Django from async code before, this may trigger if you were doing it incorrectly. If you see a SynchronousOnlyOperation error, then closely examine your code and move any database operations to be in a synchronous child thread._ "

</comment></comment></comment><comment><USER4> Biggest news is ASGI support, which should enable a ton of new features and performance improvements in the future.

<comment><USER5> ASGI is disgusting. It's WSGI (not very good in the first place) with asyncio tacked on (even worse!).

<comment><USER6> I don't know ASGI. Could you argument please ? Your comment is not useful to me as is.

<comment><USER7> [https://www.google.com/search?q=WSGI+vs+ASGI](https://www.google.com/search?q=WSGI+vs+ASGI)

</comment></comment></comment></comment><comment><USER8> As someone who built his business on django, I'd say I'm super happy with it. However, my biggest gripe with it is it's continued push for updates with breaking changes.

Moving from django 1/python 2.7 was quite painful but possible and now they're suggesting that third party developers stop supporting django 2.2? It was released in April this year!

I know I'm not using any new django features that weren't there in 1.0. I imagine most django users are the same. I'd love to just have a LTS with security updates and conservative non-breaking changes.

<comment><USER9> I'm not sure if you're trolling, but if you're serious about having a business based on Django you should know that v2.2 have support until 2022.

The current LTS (1.11) ends in April 2020, which gives you a little more than 6 months to upgrade current projects to 2.2.

</comment></comment><comment><USER10> I like django, I really do. But the other day I had to reinstall a site built with Django 1.4 and was disappointed to find that the docs for it are no longer online :-(

<comment><USER11> First hit when googling "Django 1.4":

[https://django.readthedocs.io/en/1.4.X/](https://django.readthedocs.io/en/1.4.X/)

<comment><USER10> I didn't think to google because [https://docs.djangoproject.com/en/1.4/](https://docs.djangoproject.com/en/1.4/) 404s (and it was 4am). At least they're still online somewhere (but on the main site or a link to RTD would have been handy)

<comment><USER11> Good point. I wonder how you would notify the Django team about simple things like that. They do get commercial backing so I think they have capacity to maintain old documentation as a matter of good habit.

</comment></comment></comment></comment><comment><USER12> When I run my tests with python -Wa I get a lot of warnings that seem to come from inside Django. Is this caused by my code? How can I silence them?

      /home/cody/.virtualenvs/37/lib/python3.7/site-packages/django/db/models/sql/compiler.py:1030: RemovedInDjango30Warning: Remove the context parameter from MultiSelectField.from_db_value(). Support for it will be removed in Django 3.0.
      RemovedInDjango30Warning,
      /home/cody/.virtualenvs/37/lib/python3.7/site-packages/django/db/models/sql/compiler.py:1030: RemovedInDjango30Warning: Remove the context parameter from MultiSelectField.from_db_value(). Support for it will be removed in Django 3.0.
      RemovedInDjango30Warning,

<comment><USER13> A quick Google search suggests that this is caused by the django- multiselectfield package, which seems unmaintained (it hasn't been updated for 2 years) and doesn't claim to be compatible with Django 2 or 3.

<comment><USER12> Thanks I will look at removing this.

</comment></comment></comment><comment><USER3> Release notes here: [https://docs.djangoproject.com/en/dev/releases/3.0/](https://docs.djangoproject.com/en/dev/releases/3.0/)

</comment><comment><USER12> > jQuery is upgraded from version 3.3.1 to 3.4.1

Is there a plan to stop requiring jQuery?

<comment><USER14> Given companies are still using old versions of IE in 2019 or are forced to use compatibility mode with hinting falling back to IE 7,8,etc engine I feel like jQuery is more of a commodity than writing custom code for certain scenarios.

I also thought we would've been better off without jQuery until I started receiving calls that multiple users with different browsers had problems with the app... and telling the users to update would either need approval from the IT department or the user refuses because it'd break compatibility with existing legacy apps that they also use. Having jQuery is just a cheap price to pay.

Ideally I would love everyone to be on the latest browser and that companies moved out of said legacy apps or at least invested in improving them...

<comment><USER3> Right, why break compatibility when you don't have to?

</comment></comment></comment><comment><USER15> I'm really pleased to see Django is still going strong. I started using it since version 0.96 and have been in love ever since.

I'm currently supporting two major business applications built on Django (custom ERP/CRM software) and the speed with which our teams can develop new features is astounding.

</comment><comment><USER16> Migrate to python 3. Migrate to Django 3. Migrate to next version of Django Rest Framework.

The cost of maintenance is very high in the Python/Django stack those days!

<comment><USER17> You should take your car for an oil change regularly. You should go to the dentist every 6 months. And you should consider updating your software dependencies when they announce end-of-life sometime over the next 10 years. It's been 10 years.

[https://www.python.org/dev/peps/pep-0373/](https://www.python.org/dev/peps/pep-0373/)

</comment></comment><comment><USER18> Could anyone provide a bit of context about what asynchronous features are coming and how they compare to how, say, Node handles asynchronous actions?

</comment><comment><USER19> ASGI, finally! I was so happy to see the first alpha newreleases.io notification for version 3.</comment>


Ask HN: Did the Slashdot crowd from the late 90s and early 2000s migrate to HN? - <AUTHOR> <comment><USER2> Maybe via Digg first? There was an old article from 2005

Digg Just Might Bury Slashdot [https://www.wired.com/2005/11/digg-just-might- bury-slashdot/](https://www.wired.com/2005/11/digg-just-might-bury-slashdot/)

"Digg's status as the new Slashdot is further enhanced by digg vs dot, a comparison project that finds diggers are usually first to the punch, though users of each site often submit identical stories."

</comment><comment><USER3> Not sure about migrate exactly, but this definitely feels like early Slashdot in that it is "for love and celebration of curiosity" as opposed to trying to maximize page views. HN being sort of a side effect of YC helps insure it doesn't commercialize into Something like Hack-a-day (no disrespect, it's still a good site). Thanks to Dang and everyone that makes this community what it is.</comment>


Custom splash page & personal analytics dashboard - <AUTHOR> http://about.me

<comment><USER2> Prefer that on my own domain, like this <http://petervandijck.com/>

<comment><USER3> I agree. Some kind of API to put this on your own domain would be really nice.</comment></comment>