I recently created a static site with technical documentation using Antora. Antora uses asciidoc source that it pulls from git repositories. It has a lunr extension for search. It took some time to get familiar with the setup, but I find it very nice to work with. I use it for the documentation of a set of code libraries, and it is a really good fit for that.
HN user
rvdginste
A good course will teach you everything on a topic in a structured way. Personally I believe there is a lot more value in well-structured material than in a bunch of responses on rather ad-hoc questions to ChatGPT. Also be aware that not everything ChatGPT answers, is correct. In the case of a decent course, one can assume that the information is correct.
I feel this is similar to asking whether there would be value in paying for a well-written book on a topic, compared to just searching and reading information online on that topic, be it official documentation, or be it third-party information from blog posts, other articles.
In my opinion, a well-written course or book will give you a much deeper knowledge in a much more efficient way than what you get from ChatGPT or from searching the internet.
Email is one of the few protocols that was designed out of the box to be decentralized, that in the mean time is implemented by a lot of big tech players and that has stayed compatible for communication between accounts at one of those big tech players. And that is also the reason it won't disappear soon.
And aside from that, what the article mentioned is human error. And honestly, I do not think that other online communication protocols will eliminate human errors.
A lot of big words in the summary (reimagine, crafting tools, transformative functionality, smoother workflow, push beyond typical CI/CD boundaries, empower developers, ...) and still, with that summary I have no clue what exactly this thing does.
Context: I am very familiar with several JetBrains IDEs and CI/CD in general, and a bit with GitHub Actions.
Please, can someone describe in a couple of sentences what this actually does?
There's something that seems very satisfying about loading software from tape, too.
Uhhh.. as someone who used to load software from tape on a CPC 464 ages ago, I can tell you that it was painfully slow. Nothing satisfying about it for me...
As a software engineer, I insist on giving developers high-end laptops. The reason is very simple: a lot of development environments are very heavy to run, and developers should not waste time on their development tools running slowly. I also don't want developers to disable tools that are meant to keep an eye on the quality of the code. High-end laptops generally serve well for development for up to 5 years.
Developing on high-end laptops should definitely not be an excuse to deliver slow software, and in the teams I work in, we do pay attention to performance. You are right though, a lot of software is a lot slower than it should be and my opinion is that the reason is often developers that lack fairly basic knowledge about data structures, algorithms, databases, latency,... One could say that time pressure on the project could also play a role, but I strongly believe that lack of knowledge plays a much bigger role.
Now, aside from that, also keep in mind that users (or the product owner) become more and more demanding about what software can and should do (deservedly or not). The more a piece of software must do, the more complex the code becomes and the more difficult it becomes to keep it in a good state.
Lastly, in my humble opinion, the lowest range budget laptops are simply not worth buying, even for less demanding users. I think that most users on a low budget would be better off with a second-hand middle or high range laptop for the same price. (I am talking here about laptops that people expect to run Windows on, no experience with Chromebooks.)
Ok, I agree, if there is enough (ad-hoc) communication within the team, you don’t need those meetings every day.
I think one should not use advanced language features just because, but I also think one should not avoid using advanced language features where it is useful.
Why would the code base be worse when advanced language features are used?
I don’t understand your comment: if you develop software as a team, it seems important to communicate and to know what the others in your team are working on?
Also, I really don’t see it as ‘social’ meeting, to me it’s a focused technical meeting about the work that is going on.
Because all the code I write is high quality…
That is a big claim to make…
I do follow you on the complexity of code and that good code should avoid unnecessary complexity (‘unnecessary’ being key here).
When I read about people using AI to write code, it always seems to me that it would be a lot faster and less hassle if they would write the code themselves, without even considering the fact that it would give them more experience and make them better.
I have used some of those tools myself, and for the code that I could use help of an AI tool, I, again and again, receive junk: code that looks plausible but that does not compile, uses apis or libraries that do not exist and so on. In the end, it just made me waste time.
Sounds kinda cursed, but running something like Debian sid sucks because there's not many other people doing that.
I am not sure that is correct. I think it is very common for (experienced) people that run Debian to use Debian Testing or Debian Unstable on the desktop and Debian Stable on servers.
Personally, I run Debian Testing with selected packages from Unstable. I rarely have problems with that setup.
I really like to work with snapshot isolation and rarely have any problems with it, but you do have to be aware what guarantees it gives and does not give.
In the example given in the article, there would not be a problem if the links on the removed node would be reset (which is cleaner imho) as then an update conflict would be triggered.
When using snapshot isolation, I sometimes implement ‘dummy’ updates (using a version field for example) on ‘root’ objects to trigger update conflicts when concurrent updates must be prevented to data linked to that same ‘root’ object. (This is similar to implementing optimistic locking using a version field on a root object.)
Well… if you know the data is real, then knowing everything about that someone can seriously limit the number of people it could actually be, which makes that someone identifiable.
Like if you only know the full address, and you see that only one person lives at that address. Or you know the exact birthdate and the school that someone went to. Or the year of birth and the small shop that the person works for. And so on…
For a lot of projects, I have 2 worktrees, where one is for my own work on the project, and the other one is for reviewing other people's code.
That means that I can easily do a review (I like having the code open in my IDE during a review), without having to stash my own work.
I am trying to create an account (using a gmail address as email address), but I do not receive a code through email. I already tried multiple times. Any idea what is going on?
Clear, thanks!
I did not test it yet, but it looks like something that would be very useful for me. So, I will definitely try it.
I will add that me too, I have some concerns regarding the data being "locked" in your service, but I read in other comments that at some point it will be possible to create an export of some sort. When using this to carefully craft a knowledge base during months, it would be very painful if that is all lost when stopping the service for whatever reason.
As others asked, I would appreciate an Android/iOS app to register new content when reading something on the phone.
Regarding the pricing, it mentions a fixed price per month, but is there any limit on the amount of data that is uploaded (for example when uploading PDFs) ? Is there any limit on the amount of content in the knowledge base?
I still consider semver better. When it is used correctly, the version number gives a clear indication of what kind of changes to expect when upgrading. Obviously this is done to the best of knowledge of the author and might not always be 100% correct.
Either way, the amount of work to do for an upgrade depends on which parts of the product you are using and whether those parts have any changes in the new version. For this reason, most projects also have a changelog which gives you more detailed information about the upgrade. When preparing for an upgrade it is advised to read the changelog.
Not the original poster, but still not clear to me.
Say I mark a page that contains really usable information. For some reason, 2 months later that page goes offline because the domain was not renewed (or whatever). Some time after that happened, I need that information. Will I still be able to see the original content, or not?
Similar thing, I mark a page. The author updates the url with different content 2 months later. Some time after that happened, I need that information. Will I still be able to see the original content, or will I just find the new updated content?
I guess the question is: is a snapshot taken from the actual content at the time I mark it as interesting and can that snapshot be shown, or not?
I think forum/mailinglist and Slack/Discord/IRC are different kinds of communication: the first is rather asynchronous/offline while the second is rather synchronous/online. I believe they can exist next to each other within a project or community.
For keeping track of specific questions and how those can be answered, a forum is a lot better. But random chatter can also be useful and that is a better fit for things like IRC.
I agree, I think forums and things like Slack/Discord/IRC is used for different kinds of communication. Forums are rather asynchronous, while the others are rather synchronous.
When a forum is used to help someone fix a problem, there is a communication thread that (as you say) can be searched and followed by other people. In things like Slack/Discord/IRC, this kinda of thing "disappears". Even if you have seachable logs, I think these are a lot harder to search than a forum that is more "structured".
I do believe there is value in having both forums and Slack/Discord/IRC.
I find the following article from some time ago more informative. It contains a very good explanation of isolation levels and how they are implemented in postgresql.
I am a .NET developer. I recently read "Concurrency in C# cookbook, 2nd ed" and found that one very interesting and clear. I mainly wanted a decent explanation on async-await, and the book has that. But aside from async-await, the book also explains other mechanisms for concurrency in modern .NET.
I am also reading Pro ASP.NET Core 7. I am not new to ASP.NET Core, but was surprised to learn some new things from the book.
That one is on my to-read list. Only hear good things about that book. And I see that C# 12 in a nutshell is just released.
I see that the iX magazines are also from Heise. Have seen these before in supermarkets in Germany and it seemed like those magazines have interesting and technical articles. Sadly seems to be available in German only.
We are not just experiencing the demise of PC magazines, but also the demise of printed press and of major old news outlets.
I have the impression that nowadays most people no longer want to invest the time to read in-depth articles or books on a topic. Myself, I recently read a couple of technical books and came to the conclusion that a good technical book is still worth it. It explores a topic in a structured way and in-depth, and the information in a technical book is supposed to have been reviewed. If you read good technical blogs, you can pick up a couple of things here and there, but I think it will never be as efficient as reading a good technical book on a specific topic.
Bah… I doubt that, but might depend on location.
Some people should really try to take an objective look at C# and .net and decide about its merit, separately from the company that developed it. I know the latter also plays a role in the decision to invest in technology, but most of modern .net is open source with MIT license.
Would I be wrong in thinking that this "bi-directional logical replication" is only usable in a very limited number of use cases? As you mention, unique constraints pose a problem, and a lot of tables would have unique constraints to protect business keys?
The article references another article on this, the refers to the PostgreSQL documentation:
- conflicts [1]
- restrictions [2]
You need to be very aware of the limitations to decide whether this is usable in a specific context. I don't think this is really intended to be used for "bi-directional" logical replication.
[1] https://www.postgresql.org/docs/current/logical-replication-...
[2] https://www.postgresql.org/docs/current/logical-replication-...
I hope that people say they hate UML and then just make UML (class, database, activity, ..) diagrams according to their own conventions, but I am afraid you are right and that a lot of software is just "hobbled together"...
I never got the hate against UML. To me, UML is just a language to communicate about several aspects of a technical design, and to visualize a technical design to make it easier to reason about it.
I did not read the book "a philosophy of software design", but I just scanned the table of contents, and it is not clear to me how "a philosophy of software design" contradicts with using UML.
Are you telling me that in those 7 years of working, you never once used a class diagram? Or a database diagram? Or an activity diagram, deployment diagram, sequence diagram, state diagram?
I find that hard to believe... how do you explain your design to other people in the team? Or do you mean that you do make that kind of diagrams, but just use your own conventions instead of following the UML standard?
Personally, I often use UML diagrams when I am working on a technical design and I use those diagrams to discuss the design with the team. On almost every project I create a class diagram for all entities in the system. I rarely make a database diagram because that often is a direct translation of the class diagram. For some of the more complex flows in the system, I create an activity diagram. For stuff that goes through state transitions, I create state diagrams. In my case, this really helps me to reason about the design and improve the design. And all those diagrams are also very useful to explain the whole software system to people who are new on the project.
That does not mean that my diagrams are always strictly UML-compliant or that I make a diagram for every little piece in the software system. The goal is not to have UML-compliant diagrams, but to efficiently communicate the technical design to other people, and UML is nice for this because it is a standard.