Semaphore, a CI/CD platform vendor, publishes tutorials on testing, Docker, and microservices, along with Python usage surveys.
HN links it for its hiring posts and commenters recommend the service, one saying it was the only place their Selenium tests ran reliably.
Cross-post from Indie Hackers:
No, not like that! I'm talking about that visceral feeling of getting yourself out there, of being vulnerable and outside of your comfort zone, in person or in front of a camera. Just you, the real you, and the tides of the Internet; dropping Internet cliches of pseudonyms, handles, cat GIFs and avatars. You do this to promote yourself, your product or some part of the ecosystem that you dedicate your life to.
For this I recently took part in a live stream (as in, a real-time broadcast, gulp) chat/interview with Darko Fabijan, co-founder of Semaphore CI (https://semaphoreci.com), as part of their Semaphore Uncut series where they discuss IndieHackers favourite topic(s): the problems that we face as software industry professionals, how we're solving them, and what we're working on that excites.
For our session, we chatted about our experiences and passions as founders, about building Enterprise-class SaaS products, about how package management (the domain of Cloudsmith, https://cloudsmith.io) integrates with CI/CD, and what's coming up next for both of us - You can watch it the full thing here (with a podcast to follow):
https://www.youtube.com/watch?v=zHLy0IV4Yq8
It was a pleasure chatting with Darko, although it was my first experience doing a live stream. Darko was obviously a lot more practiced, calm and measured than I was; he was fantastic and I can only thank him for directing the conversation smoothly. Having watched it back I think…
It is easy to look at this from a functional and practical standpoint, take any program in your stack, and look at what it does vs what you need it to do.
There is a parallel to this where people were trying to where people write c++ programs in visual studio realize they often can do so without needing the microsoft visual studio runtime and its routines and their program drops from 68k to 2k and a dash of code to bring back what is missing in most cases, if it is even needed. https://hero.handmade.network/forums/code-discussion/t/94
I love looking at things and thinking about this, people in this field often find themselves over-implementing(or using software that is a source of over-implementation), setting up a tremendous amount of foundation to get a little thing done, getting carried away, and finding out it got too involved and over-engineered when there is a tight and simple solution that matches exactly what is needed.
Of course there are situations where microservices are still needed: https://semaphoreci.com/blog/2017/03/21/cracking-monolith-forces-that-call-for-microservices.html Everything should be thought out and joining the latest craze isn't necessary. If you really need it, you will find yourself looking for or implementing the solution, regardless of what it is currently called, microservices have been around in one form or another before the hype, and used as needed when needed, instead of getting being used to wax a resume.
Your accidental vs…
I don't think your comment tries to paint the best case for the point of view you are opposed to or show an understanding of the philosophy you reject.
Tests represent truth in the same way code represents truth. In many ways the tests represent truth more than the code represents truth. Tests state "this is what I want" and then interrogate the code to verify that the code itself does what I want.
Tests by definition can not be stale (unless they are never called).
The ruby community is where I first learned about test driven development which is philosophically the idea that tests are the highest level of semantic importance.
There are DSL's in ruby land for writing tests like you might write comments: https://semaphoreci.com/community/tutorials/getting-started-with-rspec
If tests describe what you want, and code describes how it happens, then the major piece left is why it is the way it is, which almost everyone in this thread agrees is the most important thing to comment.
Visual tests are more general, and are more akin to putting up barriers on either side of a bowling lane so the bowling ball stays within it's lane (with room to move about still). For example when using Angular, you write 'Page Objects' that have methods such as .getTitle(), .clickListItem(3) and so on, and can then write assertions to make sure the UI changes as expected by inspecting properties [1].
I usually find I build a general page object first ('this text is somewhere on the page'), then write the UI, then make the test more specific if I can after (but it's an art, as too specific and you risk creating too many false negatives when you make UI changes).
(Also as you are interacting with the UI, these would be known as integration tests.)
[1] https://semaphoreci.com/community/tutorials/using-page-objects-with-protractor-and-cucumber-in-angular-applications
Semaphore | Full-Time | Remote | https://semaphoreci.com
Build an industry-defining product with a great team.
Semaphore is a leading CI/CD platform for testing and deploying code. Our customers are companies across more than 100 countries, from tech industry heavyweights to startups just about to make their dent in the universe. They all need their products to move as fast as possible — and Semaphore enables them to do that.
All Semaphore careers - https://apply.workable.com/semaphore/
Learn more about us - https://semaphoreci.com/about
Currently open roles:
* Developer Evangelist
* Director of Content
* Head of Customer Success
* Marketing Project Manager
* Technical Writer
* Senior Product Designer
I just came across another article that talks about alternatives for doing what Heroku does, and it's from a Heroku consulting company: https://semaphoreci.com/community/tutorials/creating-a-heroku-like-deployment-solution-with-docker
It seems like there's a lot of discussion recently about Heroku alternatives.
I wouldn't say those discussions have as much to do with Heroku's limitations as much as they have to do with all the details and complications technology companies encounter as the bulk of adopters continue moving to the cloud.