Reluctantly town building.

preface

I would like to introduce myself briefly. My name is Nightmare Beast, a sophomore scholar.

The name is taken from dreamland and was mentioned on my blog.

Personal Interests:

  • Folk guitar
  • Write the code
  • The dream
  • The game
  • basketball

Order determines degree.

Denver really brought me a lot in terms of technical learning, coming here two years ago because of Flutter.

I don’t know why when it comes to writing articles like this, you just

2020 is indeed extraordinary. For me, online courses have given me more time to devote to development. This article is also my first summary.

A year ago, the legacy of the problem

At the end of 2019, the first semester of my sophomore year, I left some extremely difficult requirements and bugs to solve for various reasons due to the fact that I could not be distracted in school.

I think I’ve never been a procrastinator technically, I just think I should know what I’m doing more in the moment.

1.AndroidThe image secondary packaging is lostCapabilities

You don’t usually care about the Capabilities property of Unix files, but losing it can have serious consequences.

(1) Causes

I spent a lot of time developing the Rom recapabilities tool, and lost some of the file’s capabilities properties in unzipping and regenerating the System. img image.

(2) Cause problems

This directly led to the secondary modification of Android system can not connect adb, logcat, this performance is extremely difficult to locate the error, because the log is completely unable to catch, and only on individual devices, I should be glad that the redmi Note8 had this problem.

When this problem happened, I was just near the exam. After several days of continuous attempts, I gave up temporarily. The time spent had forced me to take several important courses naked.

(3) Start to solve

After countless times of comparing the mirror information after secondary encapsulation, there is still no difference with the normal system. Comparison method:

ls -l system >x.txt
Copy the code

Looking at the file information with the ls command and redirecting the output to the file for comparison is a silly way to do it.

It took a lot of Googling, days and weeks, and finally an answer was found in ext4, a repository that currently only has a star of 9, but which allows you to view the properties of internal files without decompressing an ext4 IMG image. I found the capabilities property I had missed, and finally added it.

If you are interested, please refer to the issue I mentioned.

Wanted to rewrite a terminal emulator with Flutter

The specific reason for this idea has been mentioned in previous articles. The specific time of the idea may have occurred shortly after the Flutter was contacted, i.e., a year ago.

(1) Causes

I’ve always wanted my program to be able to execute other binaries or sh scripts internally and have access to all of its output. Back when I was using native development, I did this through the Java Runtime series.

(2) Encapsulation

After some self-encapsulation, I found that its experience was extremely unfriendly and I could not keep a continuously open process. To put it simply, when I was executing some programs requiring root permission, I found that I used some functions in the same app startup. Repeatedly applying for root to the Magisk root administrator, and magisk will pop up after receiving the application, which is extremely unfriendly.

Not only that, I found that the app “refrigerator” with a long history still has this phenomenon.

Therefore, after some attempts, I found some open source libraries, such as Android shell, which solved this problem well. However, later in the development, I often encountered that I needed to interact with the existing command line. At that time, I had no idea, so I went to raise issues in the reservoir area unrelated to this demand. For example, the above repository, but I knew at that time that my foundation is too much, it is better to calm down and slowly learn later, and then put down again.

(3) Understand buffering

After a long time of thinking about this, I picked up the question again and asked a classmate who knew more about it. Then I came to realize that the output of both android native Runtime and the Dart Process of Flutter came from pipes. Pipes, however, There is a buffer, and by the time I learned that, I had almost finished the basics of C at school.

The school curriculum greatly slowed down my learning speed.

(4) Continue research

At a later point, Flutter opened up the use of DART: FFI, so I picked up the problem again. Finally, I found out the underlying implementation principle of terminal simulator in some blogs. Then I put a lot of practice into Flutter, and finally realized a terminal simulator that could interact with the process. It can be used on Linux and Mac with very little extra learning.

(5) Continuous optimization

One of the most difficult points is that the terminal sequence rewrite, which involves an extremely large number of string handling algorithms, has so far failed to bring it anywhere near the native terminal in terms of display or performance.

But I was constantly optimizing, rewriting a small number of commonly used terminal sequences to make it what I wanted.

It’s more invoked by other pages and passed in scripts that run automatically, like this:

Open source address

Article —–>Flutter terminal Simulator implementation – Principle analysis and integration

Two, always thinking about things

The code is written so rubbish, so that I, who is not rich, even worse.

1. Make money, make money, make money!

Childhood is not so good, plus a variety of reasons, led to more than 20 years old age still like a little girl child, so I thought all the money by skill, go to college is the first time I formally free learning opportunities, there will be no family opposition, because in any place outside of school, will think I am playing all day.

This is what I have been thinking about since I went to college. I tried all kinds of ways to earn income with my skills. I will never slack off until I achieve what I want one day.

  • Make Rom money: 0 popularity, energy points not down, failure, total income is not more than 200 (don’t laugh at me).
  • Outsourcing: I failed to receive any outsourcing in the first half of 2020. In fact, I did not have time to find all kinds of outsourcing.
  • Earning income as an individual developer: In the first half of the lesson on the Internet again under the condition of development, constantly continued development and maintenance to the function, 8 k + in the first half of the income, the project has total 15 k +, emmmmm, also pretty small, but meaningful for me, really remarkable, for the first time, let me think, I can not trust them soon, very soon, perhaps…
  • Entrepreneurship: this is a little big, cause in my ability to control, and a friend opened the company, I in addition to providing project in WeChat public, WeChat all small procedures, single-chip microcomputer technology, is the company’s things to the fishing, run with their legs under, the company has, took the first place, school track team project as to want to really implement the money, personally, I don’t think about it.

2, the study of technology

(1) Continuous learning of Flutter

Most of the content shared in Denver is related to Flutter learning, so Denver has witnessed my progress. I always like to try new things.

Try to exercise their expression ability, lecture and preach X2.

(2) Study of Rom development

A big reason is that the function of their project is to make it more convenient to do Rom development, so want to continue to maintain, and the development of new functions, need to keep learning new things.

(3) Miscellaneous skills

  • Familiarity with Git.
  • Learn how to build a personal blog.
  • Familiarity with Linux.
  • Familiarity with cross-compilation.
  • Code optimization.

That’s all I can think of for now.

There are still a lot of non-standard “junk codes” out there, but for at least one part, I now know how to optimize it.

Three, regret

  • Because often focus on the code, sitting for a long time, there is no doubt, the third lumbar transverse process, psoas muscle strain, the most serious time, I sit for an hour can not stand, and then, a long time from the massage, so far 😶.
  • Have more serious anxiety, and more serious insomnia.

4. Experience to share with you

Want to share more with your peers. Most senior people know how to study, after all, they are faced with life.

1. Stop making excuses

Because in my school, the vast majority of people on the learning of technology is not cold, a sentence I am a postgraduate entrance examination, every day while saying that postgraduate entrance examination while playing games, yes, the two are not conflict, but, your technology 0 progress. Or maybe I haven’t had a lot of exposure to the big boys at school.

  • You need to think that you are not guaranteed to get in.
  • A few years after entering graduate school may not make you worthy of your diploma.

2. Make the most of the time we have.

For me, my handling of the situation was a huge failure, and it wasn’t that I spent a lot of money on it, it was just that I was a terrible sleeper, as mentioned above.

What you need to say is: if you really want to constantly improve your skills, use your game time to learn, if your dream is to play the game 🤔, forget I said.

(1) My Experience:

When I was in high school to give up my life, not to hand in mobile phone, every night to stay up late playing king glory, to play for a whole day in the class nap during the day, grades plummeted, later all not voluntarily, I am still not handed in to stay up late, but I learn by Aide android native development, I don’t think I can, but I will need some technology, After a dark childhood, I would smile happily every day, doze off all day and feel happy. I was recognized as a happy nut in my class. I would make all kinds of people happy, and I even took that as the meaning of my life.

To three grades plummeted I resolutely to the teacher to apply for to be in the final semester of the last two months into a review class learning together with them, from the point of I, this is a very confusing, had the honour of the college entrance examination promoted 200 points, from spelled a life also can test to 300 to 510 in chengdu, in the review class of the day, He didn’t have any friends. He couldn’t get into junior college after every weekly exam. He would get his weekly exam results on Sunday all night and didn’t want to do anything.

Get results after I bought the first time I received red envelopes with a game, myself also added all the money I will play this video card with 1060, in order to can play four years in university, feel day finally over, although I still because of personal interest in learning, the development but far less time I play a game.

To university, found that can provide the money in the home, not even the basic cost of living, all doesn’t have the money for the social, have no money to buy want to buy clothes, no money in mobile phone, have no money to buy want to buy a harp, even to buy books, in the competition, even the tuition fees will delay to hand in, I can’t pay for the one you like from then on, I don’t play games, School lesson I shall not be useless, hard to outsource, I spend all day to $30, 100, 200, 1000, 2000, the new technology is not suspended, do anything to make money, and finally all of this, completely changed my this person, let me become anxiety, sleep becomes poor, temper also is bad, almost don’t laugh, In the end, she didn’t even keep her favorite person. She hated the way I changed my personality. And that’s when I lost the only thing that ever made me happy.

(2) What would you like to say?

So, you may be a sophomore like me, about to enter a junior year, you may also be 21 years old, you may not have experienced the difficulties of life, but one day, you will face those so-called growing up, the so-called life, you will experience one by one. Any time you’re wasting right now, you might be wasting a chance for a better life.

3. Choose a quiet environment

  • Study room: I usually do not in the dormitory, often in the school’s milk tea shop, coffee shop, there are some specially provided for students to study room, sit for an afternoon, a night, there, I am very yearning for the development environment.

  • Library: This place in our school gives me a bad impression, the seating situation is serious, I even want to sit down and start writing code, but it is cold in winter and hot in summer, I finally give up, but if your school library is good, it is also a good choice.

4. Broaden your horizons

  • You need to know what learning will bring you. If I choose to learn Flutter, for example, you may think that this technology is not even required by the school. There is nothing to learn, but it is really wrong.
  • You can trust your teacher, but you can’t rely on him. Only when you get used to solving problems by yourself, can you really exercise your ability.
  • Talk to people who are interested in technology. Some people are the same age, but technically you have to call them senior.
  • The right to choose is always in your own hands.

My desk

A pile of single-chip equipment, electric soldering iron, multimeter, there is a remote control car developed by myself, a pile of books bought by myself to earn money, by my mother in order to take the development of television with the bracket.

The last

Thank you for your time, thank you for everything.

The nuggets essay | 2020 years and I summarize the campaign is under way…