384 karma · joined July 13, 2019
https://www.youtube.com/watch?v=9Nx09pigZRI
in the first few minutes, Bernstein explains that it is hard to play Bach because there aren't many clues left in the score, leaving interpretation of the music on the conductor / musicians.
some data mining companies were quite stubborn in removing my data even though they had instructions on their website on how to request a removal. Once I brought up COPPA they immediately complied with my request. This is ridiculous. I should not resort to such moves to remove data that should not be there in the first place
if you are interested in clearing your footprint take a look at this site: https://inteltechniques.com/index.html
they host a weekly podcast where they discuss all things privacy including how to remove your data from the net and how to do it the right way. They also used to have list of links where you could go one by one and request opt-out but cant find it right now.
one note of caution. Your anon identity can be traced back to you by your writing patterns. There was a ddiscussion on hn about it some time ago. I think about it just as I type ...
Yes, you don't roll your own security. You use powerful primitives provided by Ruby and Rails, such as bcrypt, has_secure_password/has_secure_token, encrypted sessions, secure httponly cookies with prefixes + samesite attrbiute all served over TLS 1.2+, with HSTS and CSP
I have seen both sides of it, that's why I decided to vent it out.
P.S. Don't get me wrong, I have tons of respect for people doing open source and don't want to badmouth Django folks. But in my limited experience, it just wasn't a great experience.
If I were to bring in 3rd party gem for auth, I'd have gone with Sorcery rather than Devise.
So if you are ever in a position to pick between Django and Rails for CRUD-y SaaS app, go with Rails. You can't go wrong with that.
That's when I decided to pick up Rails tutorial and it was probably one of the best tech-related decisions I made in my businesses.
I shouldn't use cookiecutter templates, plugins, scripts to make working with the software tolerable. It should just work and get out of my way. Well, at least when doing a greenfield development.
Take a look: https://rubyonrails.org/doctrine/
I am only familiar with Django and Rails, can't comment about Laravel.
If you are building a basic CRUD app, definitely stick with Rails. If you are doing some kind of CMS or need machine learning pipeline, go with Python.
A warning about Ruby/Rails: some folks have moved on to shinier languages/frameworks and as a result there are lots of unmaintained gems (gems are 3rd party libraries in the Ruby world) out there. For instance, I needed a curl wrapper written in Ruby. Nothing worked for me so I ended up forking Ethon [0]. I am hesitant to send PRs, since I doubt that they will get merged. Now I am maintaining two codebases at once. I will probably rewrite it from scratch at some time.
A warning about Python/Django: dependency management is kind of a mess [1]. See linked discussions [2][3][4][5].
[0] https://github.com/typhoeus/ethon
[1] https://xkcd.com/1987/ (Add pipenv and poetry to the mix)
[2] https://news.ycombinator.com/item?id=20672436
[3] https://news.ycombinator.com/item?id=18612590
I don't want to start a flame war here, but I think Rails (and gem ecosystem in general) is a better choice than Django, at least for SaaS apps.
These are all my personal opinions, take it with a grain of salt. Having said that, here we go:
* Authentication - it is a pain if you'd like to deviate from the standard Django User model (using username to login instead of an email). I don't like Devise either.
* Asset pipeline, even though it is not updated anymore (sprockets) and partially replaced by the webpacker, is still better in Rails
* Configuration spread across multiple files, by environment, instead of a single config.py file
* Sidekiq has a better API compared to Celery. Also, Celery's default broker is RabbitMQ, not Redis. It is really hard to find managed RabbitMQ hosting, for Redis there are plenty
* Mailer previews, small but quite useful utility
* Better security by default: Rails comes pre-configured with a bunch of security headers[0].
* Testing - Minitest and Capybara is just a joy to work with.
* I prefer ActiveRecord over Django ORM
* Rails isn't afraid to deprecate things and move forward. This isn't the case with Django, which is big on backwards compatibility. I don't like it, since it puts into a disadvantage folks who are starting new projects. Different strokes for different folks, I suppose
I could go on and on, but I remember struggling a lot with Django/Celery when building a SaaS app. I decided to switch to Rails and haven't looked back (Rails has its warts as well). YMMV
[0] https://guides.rubyonrails.org/security.html#default-headers
EDIT: Added last point about backwards compatibility
about:config -> extensions.pocket.enabled: false
CPU: 2.7 GHz Intel Core i5
RAM: 8 GB 1867 MHz DDR3
Storage: 128GB SSD
Screen: 13" Retina
Personal comments: Purchased a few weeks ago for $850 (110 charge cycles). My first Apple computer and it has been great so far. Great screen, plethora of ports, long-lasting battery (6-8 hrs), usable keyboard, speedy SSD, and there is a Magsafe! Screen flickers, especially in Safari and iTerm2 are really annoying tho. Firefox is draining my battery like there is no tomorrow, so don't use it much for now (it was my daily driver on Ubuntu). I couldn't get Airdrop to work, however hard I tried, even though Bluetooth is working fine.
staying at home too often instead of finding a SO
I am still struggling with that. I am working from home and don't go out too often. I am quite an introverted person, plus not big on dating apps, since they're mostly waste of time :')I realize that this is a problem, but still don't know what to do about it..
Rewriting a side-project in a new language because it will be faster, more organized, more elegant, etc...
I've done that as well, although it wasn't a rewrite per se. It was a great decision and I am glad I made the leap, even though conventional wisdom is to stick with what you know..I decided to roll my own auth, but was very cognizant about the risks of going down this route. I used primitives provided by Rails (has_secure_password, has_secure_token) and made sure that my implementation is not susceptible to known exploits, such as session fixation attack: https://guides.rubyonrails.org/security.html#session-fixatio...
* Following mainstream news -- Lots of clickbait, glad I don't do it anymore.
* Watching random YouTube videos -- however, I've also stumbled upon some great videos that have had huge positive impact on my life (and not only mine)
* Tracking currency exchange rates trying to save few bucks
* Buying cheap electronics -- time you spent fighting with it just doesn't worth the savings, unless you're in dire need
These are all my personal opinions, take it with a grain of salt. Having said that, here we go:
* Authentication - it is a pain if you'd like to deviate from the standard Django User model (using username to login instead of an email). I don't like Devise either.
* Asset pipeline, even though it is not updated anymore (sprockets) and partially replaced by webpacker is still better in Rails
* Configuration in multiple files, by environment, instead of a single config.py file
* Sidekiq has a better API compared to Celery. Also, Celery's default broker is RabbitMQ, not Redis. It is really hard to find managed RabbitMQ hosting, for Redis there are plenty
* Mailer previews, small but quite useful utility
* Testing - Minitest and Capybara is just a joy to work with
* I prefer ActiveRecord over Django ORM
I could go on and on, but I remember struggling a lot with Django/Celery when building a SaaS app. I decided to switch to Rails and haven't looked back (Rails has its warts as well). YMMV
EDIT: wording
I just recalled a Steve Jobs quote while writing this comment: "You can't connect the dots looking forward; you can only connect them looking backwards."
I also understand that potential buyers are bearing more risk than they'd have if the site were live with real revenue numbers; that's why I'm willing to sell it for cheap.