HN user

kerneldeveloper

163 karma
Posts11
Comments27
View on HN

I will read the first few chapters to learn the basic knowledge. In the meantime, I will try my best to understand every example and run it. And then I will do something interesting such as writing a more complex program. Practice is my motivation to learn advanced topics. If I only read the book, I will lose interest quickly because this is very boring, especially for some difficult chapters.

After I think I have mastered the basic chapters, I will continue reading the subsequent contents. I won't try to understand everything in the advanced parts. Instead, I just read some useful content and treat other content as a technical dictionary so I can refer to it in the future.

I like learning a language/tool as quickly as possible, and then try to use it more skilled.

I once found a book called "Machine and Assembly Language Programming of the PDP-11" in our university library. It is very old and was published in the 1980s. It includes some interesting knowledge about two pass assembler, relocation and two pass linker.

If you want to use a powerful gdb visual interface, you may want to try DDD. However, DDD has an old-fashioned GUI which is very crude. I have tried several visual debugging tools, such as RedHat Insight, DDD, Nemiver and kdbg, but none of them is enough powerful or stable. As far as I know, DDD can't display non-English comments in source code.

Now I'm using an awesome GDB init file to construct a convenient debugging interface. It's an open source project and you won't regret it: https://github.com/cyrus-and/gdb-dashboard

There is also a browser-based frontend for GDB: https://github.com/cs01/gdbgui

If you want to try more, search the keyword GDB on GitHub and sort by stars, then you will find many GDB enhancement tools.

You are lucky. Some projects have difficulty because everyone wants to use it but no one wants to contribute to it. The inbox of the maintainers may be full filled with bug reports and they have to spend one or two hours to handle these problems. They are tired.

In China, open source licenses don't have any legal effect, so it's hard to safeguard legal rights. In recent years some open source organizations have been founded and they hope their efforts can change the environment of open source in China. However, there is still a long way to go.

When I submitted this topic, I hesitated about whether should I add "Elixir" to the title. I know this may confuse some people because "Elixir" is also a programming language. However, I think project's name may also help people to distinguish it from other projects, so I add it. It seems that this title indeed causes it to be mistaken for something else and I'm sorry for that.

I must recommend two books, both of them are awesome. One is Algorithm by Sedgewick and the other is The Algorithm Design Manual by Steven S. Skiena. You can read the first book and then the other. If you want some challenges and practice, try LeetCode and HackerRank. By the way, it'd be better to keep a discrete math book at hand, it would help you if you encounter some mathematical proof problems. I would recommend Discrete Mathematics and Its Applications by Kenneth H. Rosen for reference.

Besides that, from the open source perspective, RedHat's contribution is greater than Canonical, especially the linux kernel.

I think some people may want to take over Unity 8 and continue developing it. An obvious characteristic of the open source community is divergence, which means forking an existing project or reinventing wheels. Although I'm a GTK developer, I also think Unity is a good desktop environment because of its usability to the non-technical user. But, I still don't like the Canonical's work style that reinvents too many things, such as Bazaar. I like Launchpad for its convenience, while I think Bazaar is awful compared with Git.