• 开源镜像
  • 开源沙龙
  • 媛宝
  • 猿帅
  • 注册
  • 登录
  • 息壤开源生活方式平台
  • 加入我们

开源日报

  • 开源日报第686期:《重启项目 PowerToys》

    13 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《重启项目 PowerToys》
    今日推荐英文原文:《How Not to Give Up on Your Creative New Year Resolutions After January》

    今日推荐开源项目:《重启项目 PowerToys》传送门:GitHub链接
    推荐理由:PowerToys 是一套非常实用的系统增强辅助工具集,能提高电脑使用效率,填补了 Windows 10 原版很多缺失的高级功能。PowerToys 早在 Win95 和 XP 时代就已经面世,而20年后,微软重启了该项目,再次为 Windows 10 推出新的 PowerToys 套件。
    今日推荐英文原文:《How Not to Give Up on Your Creative New Year Resolutions After January》作者:Olena Prusenkova
    原文链接:https://medium.com/the-ascent/how-not-to-give-up-on-your-creative-new-year-resolutions-after-january-442bb4b082ba
    推荐理由:2020的开始并不怎么令我们满意,但是新年目标可不能过早夭折,我们还要继续向前,保持激情和创造力。这才刚刚开始。

    How Not to Give Up on Your Creative New Year Resolutions After January

    (Photo by Svetlana Pochatun on Unsplash)

    For many of us, the dawn of the new millennium has begun with setting New Year resolutions and goals to achieve by the end of this year. It’s the time when we decide to get more creative and pursue a new hobby like dancing, writing, playing an instrument and many other things. Unfortunately, more often than not, life gets in the way and the enthusiasm we’ve had in the beginning wears off. According to some studies, most people are likely to give up on their New Year Resolutions right before they get into mid-January.

    I can attest to that: many times in the past, I have struggled to find time to be creative and often ended up falling back into my everyday routine which left bleeding my creativity dry. After many failed attempts, I have found some strategies that work for me and I want to share with you how you can stay on top of your creative goals and not give up all the way until January next year.

    Identify and break it down

    Even though a hobby is something many of us want to be spontaneous, it’s a good idea to have a plan in place, or at least a rough idea of what exactly you want to achieve. If you want to write more — what is that you want to write? Short stories, blog posts, poetry? If it’s an instrument — then, what do you want to play? Pop songs, rock music, classical music?

    Once you have identified what you want to get out of your creative hustle, think how you can break it down into smaller goals and set strict deadlines. For example, challenge yourself to write 10 poems over the course of one month or learn to play five songs of your favorite band. Try to be realistic about what you can actually achieve to avoid setting impossible standards for yourself.

    The reason why it helps to break down your goals into smaller milestones is because generic resolutions that sound something like ‘I want to write more this year’ or ‘I want to learn an instrument’ aren’t helpful. Actually, having a broad, ill-defined goals is a perfect way to set yourself up for a failure because:

    a) generic resolutions are useless as they don’t give you any idea on what you’re actually supposed to do with them;

    b) the less specific your goal is, the more overwhelming it appears to be which is why you are tempted to give up sooner.

    The secret to staying motivated and keeping up with your creativity is small, continuous wins over a long period of time.

    Get a habit tracker

    Habit tracker is an awesome tool and it’s something you should definitely try out in 2020. This tool is a step up from an old-fashioned calendar: it helps you track the progress over time, measuring your performance over different periods of time. There are many versions of habit trackers and a handful of them are free as well. One of the habits I was able to improve using habit tracker was a reading habit. I set up a habit for myself to read at least 20 minutes a day and for every day when I completed the task, I would tick it off on the tracker board. I found it to be a good trick to help myself keep up the momentum as well as have a visual representation of how far I’ve come and my ongoing progress which proved to be incredibly motivating.

    Learn more about the lives of famous people that truly inspire you

    Sometimes, procrastination can hit hard and there is no escape from it. In that case, you might as well go ahead and procrastinate with a purpose.

    I like to find stories of people that inspire me to be a better version of myself. I am personally inspired by singers, film directors and, of course, writers and what I like doing is finding their interviews where not only they talk about their success, but where they get personal and talk about their struggles and how they manage to find and maintain inspiration no matter what happens in their lives. It’s always helpful to know that someone has already been through the challenges I’m going through and found a way to overcome while staying true to their creative self.

    Stephen King, for example. He is known for his incredible, mind-blowingly captivating novels as well as his famous tips for aspiring writers. Yet not many people know that for years he struggled with depression and addiction — he even claimed that he doesn’t remember writing one of his best works as at the time he was under the influence of drugs. Eventually, he managed to recover with the help of his family and close friends. Often, the media portrays celebrities as semi-gods that are constantly bathing in their fame and have it all, but at the end of the day, they are people just like us — and their real stories might give you hope and inspire you not to give up on your creative pursuit once it gets difficult.

    Let go of perfection and let the first draft(s) suck

    The expression ‘first draft’ or ‘first attempt’ in a sense implies that we are only allowed one mistake. But the thing is to get good at something, we should let ourselves fail — many, many times — and try not to judge ourselves for it. Creative process or learning a new skill is basically a process of repetitious failure. At one point, whatever you’re creating, you need to let go of your need to be perfect and learn to be okay with sucking. Whenever we put ourselves under pressure to be 100% perfect at everything we do, being creative no longer feels like fun and it kills our inspiration. Instead, tap into your curiosity and adopt a learner mindset.

    Take breaks and reward yourself

    It’s very hard to ride into the sunset of the creative flow on the will alone. The reality is, our brains will always try to outsmart us. Somehow, instead of sitting down and finishing the final draft of that sketch, we find ourselves cleaning the entire apartment and arranging DVDs in alphabetical order and whoops… we’ve just run out of time to work on what we love.

    Trying to stay realistic and scheduling breaks and rewards helps and has been scientifically proven to work.

    Finding time and motivation for a hobby or a side hustle is not easy. At the end of the day, it’s important to have compassion for yourself and stay positive about your progress no matter how small it seems.

    Our ability to be creative can be impacted by so many factors that are outside of our control, such as our mood, levels of stress, events happening in our lives as well as the lives of people around us. Finding your own strategies to stay creative during your busy life takes time as well as trial and error. Hopefully, these tips will help you tame this mysterious beast motivation and keep it on your leash all the way until the end of 2020 before you get to make your new resolutions. Happy creating!


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第685期:《图解LeetCode:LeetCodeAnimation》

    12 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《图解LeetCode:LeetCodeAnimation》
    今日推荐英文原文:《Open source vs. proprietary: What’s the difference?》

    今日推荐开源项目:《图解LeetCode:LeetCodeAnimation》传送门:GitHub链接
    推荐理由:用动画的形式呈现解LeetCode题目的思路,图文并茂,清晰直观,对于编程小白来说可以大大地降低入坑难度.
    今日推荐英文原文:《Open source vs. proprietary: What’s the difference?》作者:Seth Kenlon (Red Hat)
    原文链接:https://opensource.com/article/20/2/open-source-vs-proprietary
    推荐理由:今天,我们享受着开源软件给我们带来的便利.那么,开源究竟代表什么,它和私有到底有哪些区别?我们可以通过以下文章进行了解.

    Open source vs. proprietary: What’s the difference?

    There’s a lot to be learned from open source projects. After all, managing hundreds of disparate, asynchronous commits and bugs doesn’t happen by accident. Someone or something has to coordinate releases, and keep all the code and project roadmaps organized. It’s a lot like life. You have lots of tasks demanding your attention, and you have to tend to each in turn. To ensure everything gets done before its deadline, you try to stay organized and focused.

    Fortunately, there are applications out there designed to help with that sort of thing, and many apply just as well to real life as they do to software.

    Here are some reasons for choosing open tools when improving personal or project-based organization.

    Data ownership

    It’s rarely profitable for proprietary tools to provide you with data dumps. Some products, usually after a long battle with their users (and sometimes a lawsuit), provide ways to extract your data from them. But the real issue isn’t whether a company lets you extract data; it’s the fact that the capability to get to your data isn’t guaranteed in the first place. It’s your data, and when it’s literally what you do each day, it is, in a way, your life. Nobody should have primary access to that but you, so why should you have to petition a company for a copy?

    Using an open source tool ensures you have priority access to your own activities. When you need a copy of something, you already have it. When you need to export it from one application to another, you have complete control of how the data is exchanged. If you need to export your schedule from a calendar into your kanban board, you can manipulate and process the data to fit. You don’t have to wait for functionality to be added to the app, because you own the data, the database, and the app.

    Working for yourself

    When you use open source tools, you often end up improving them, sometimes whether you know it or not. You may not (or you may!) download the source and hack on code, but you probably fall into a way of using the tool that works best for you. You optimize your interaction with the tool. The unique way you interact with your tooling creates a kind of meta-tool: you haven’t changed the software, but you’ve adapted it and yourself in ways that the project author and a dozen other users never imagined. Everyone does this with whatever software they rely upon, and it’s why sitting at someone else’s computer to use a familiar software (or even just looking over someone’s shoulder) often feels foreign, like you’re using a different version of the application than you’re used to.

    When you do this with proprietary software, you’re either contributing to someone else’s marketplace for free, or you’re adjusting your own behavior based on forces outside your own control. When you optimize an open source tool, both the software and the interaction belong to you.

    The right to not upgrade

    Tools change. It’s the way of things.

    Change can be frustrating, but it can be crippling when a service changes so severely that it breaks your workflow. A proprietary service has and maintains every right to change its product, and you explicitly accept this by using the product. If your favorite accounting software or scheduling web app changes its interface or its output options, you usually have no recourse but to adapt or stop using the service. Proprietary services reserve the right to remove features, arbitrarily and without warning, and it’s not uncommon for companies to start out with an open API and strong compatibility with open source, only to drop these conveniences once its customer base has reached critical mass.

    Open source changes, too. Changes in open source can be frustrating, too, and it can even drive users to alternative open source solutions. The difference is that when open source changes, you still own the unchanged code base. More importantly, lots of other people do too, and if there’s enough desire for it, the project can be forked. There are several famous examples of this, but admittedly there are just as many examples where the demand was not great enough, and users essentially had to adapt.

    Even so, users are never truly forced to do anything in open source. If you want to hack together an old version of your mission-critical service on an old distro running ancient libraries in a virtual machine, you can do that because you own the code. When a proprietary service changes, you have no choice but to follow.

    With open source, you can choose to forge your own path when necessary or follow the developers when convenient.

    Open for collaboration

    Proprietary services can affect others in ways you may not realize. Closed source tools are accidentally insidious. If you use a proprietary product to manage your schedule or your recipes or your library, or you use a proprietary font in your graphic design or website, then the moment you need to coordinate with someone else, you are essentially forcing them to sign up for the same proprietary service because proprietary services usually require accounts. Of course, the same is sometimes true for an open source solution, but it’s not common for open source products to collect and sell user data the way proprietary vendors do, so the stakes aren’t quite the same.

    Independence

    Ultimately, the open source advantage is one of independence for you and for those you want to collaborate with. Not everyone uses open source, and even if everyone did not everyone would use the exact same tool or the same assets, so there will always be some negotiation when sharing data. However, by keeping your data and projects open, you enable everyone (your future self included) to contribute.


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第684期:《C++测试 Google Test》

    11 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《C++测试 Google Test》
    今日推荐英文原文:《The Exhausted Programmer》

    今日推荐开源项目:《C++测试 Google Test》传送门:GitHub链接
    推荐理由:Google Test 是一个由 Google 的测试技术团队开发的测试框架,它考虑到了谷歌的特定需求和限制,可以帮助我们更好地编写 C++ 测试用例。无论你使用的是 Linux、Windows 还是 Mac,只要你编写 C++ 代码,Google Test 都可以帮到你。它支持任何类型的测试,不只是单元测试。
    今日推荐英文原文:《The Exhausted Programmer》作者:Meriam Kharbat
    原文链接:https://medium.com/better-programming/the-exhausted-programmer-ad5b2893c560
    推荐理由:是人总会累的。作为程序员,努力变强,同时与变秃作斗争。

    The Exhausted Programmer

    How I prevent mental and physical fatigue

    (Photo by Annie Spratt on Unsplash)
    At my first programming job, I worked at a very early stage startup. It was one other person and me. We met at a library in the suburbs of Paris at opening hours and stayed there until 8 pm, or sometimes until it closed. I was young and full of energy — I enjoyed the challenge and was motivated to work overtime.

    Maybe it was because I felt ownership over the project. Perhaps it was the excitement of building something from scratch or the thrill of being in Europe for the first time.

    I loved it. The only problem was I couldn’t sustain it.

    When you spend too much time at work, you don’t have time for much else. You don’t have time for family and friends, you don’t have time for your hobbies. It quickly and inevitably wears you down.

    You can feel it happening. Your energy levels drop no matter how much caffeine you ingest. You end up staring at the screen and scrolling up and down the code editor instead of producing something of real value.

    You feel less creative. Less motivated. Irritable. Unhappy.

    One of the biggest lessons I learned as an engineer is to work around my energy levels and know when to go home.

    Overwork Culture

    Some people take pride in being busy all the time and working overly-long hours. I have friends like that. They brag about how busy and tired they are. They wear their overwork as a badge of honor. At the same time, they’re utterly oblivious to what they’re missing out on. They’re the ones who ask me how I find time to paint and write, and they are the ones complaining about never having the time to do other activities!

    Overwork culture honestly drives me nuts.

    I believe in doing good work, and spending my free time with my family and friends or on my hobbies.

    I know that if I am well-rested and not distracted at work, mental exhaustion does not occur. Trust me, eight hours a day is plenty of time to get a good job done!

    Learn to Pace Yourself

    When I find myself working overtime to finish something or am pressed by a deadline, that’s a good sign that I didn’t estimate my tasks and stories well.

    Learn to pace yourself and don’t commit more than you can deliver! As Jason Fried says in “It Doesn’t Have to Be Crazy at Work”:
    If you can’t fit everything you want to do within 40 hours per week, you need to get better at picking what to do, not work longer hours. Most of what we think we have to do, we don’t have to do at all. It’s a choice, and often it’s a poor one.
    Another thing to consider is to plan appropriately. Splitting projects up into smaller tasks that I can complete in a few hours helps me to get ahead and feel more productive.

    Breaking the problem into smaller tasks also helps me with procrastination. If I notice that I’m struggling to get into the flow, I will start with something, anything. For me making the first step is the hardest part. Once I start, it’s easier to keep going. Soon enough, I dive into the problem I’m working on.

    I also prioritize the tasks depending on my energy levels. Research says that we have less willpower as the day progresses. If it were up to me, I would do more programming and problem-solving tasks in the morning and attend estimation and grooming meetings in the afternoon, when my energy has dropped.

    Dealing with Interruptions

    I recently changed jobs and made the transition from working remotely to working in an office. My friends started noticing that I spend more time at work and I’m usually tired when we meet up. I started wondering why. I found my self saying things like: “Yeah, I try to start very early to get some work done” or “sometimes I stay late because the office is quieter.”

    Think I read that exact sentence, in Tom DeMarco’s book Peopleware! In that book, he states that overtime is not so much a means to increase the quantity of work time as it is to improve its average quality.

    Once I became aware of that, I started experimenting with a few things:
    • Finding a quiet room to work from.
    • Asking people in the office to use the meeting room for their calls.
    • Using a noise-canceling headset in the open space.
    • Working mornings from the office and afternoons from home.
    I feel like I’m still trying to find my balance, but so far, the last option is what worked best for me.

    Dealing With Bad Bosses

    We have all been in companies where your colleagues stare you down if you leave work at a proper time. I had a boss who in our 1:1 meetings kept insisting on how we are at a critical time of the startup and how we should all put in overtime. Overtime for which I was not going to be paid. For the whole time I worked there, we never had a “non-critical” time!

    It’s not just a question of being paid for my time. I will gladly put in more time if I am in the flow. Or if being in the office is beneficial for me, in the sense that I get to have interesting conversations with my colleagues and learn from them. Being forced to stay overtime in a gloomy or a noisy room is not improving my life in any way. So, thanks, but no thanks!

    Some managers still live in the industrial age. They seem to think that people are like machines: If they spend more time in the office, they will produce more. Productivity doesn’t work like that. You’d be amazed at how much time people can stay at the office without doing any actual work. As DeMarco writes:

    “Overtime for salaried workers is a figment of the naïve manager’s imagination. Oh, there might be some benefit in a few extra hours worked on Saturday to meet a Monday deadline, but that’s almost always followed by an equal period of compensatory “undertime” while the workers catch up with their lives. Throughout the effort, there will be more or less an hour of undertime for every hour of overtime. The trade-off might work to your advantage for the short term, but for the long term it will cancel out.”

    If you have to deal with such managers, keep in mind that no one is going to tell you when to go home. You need to learn to value and protect your time. If the manager pushes you to work over hours, you have to learn to push back.
    (Photo by Olena Sergienko on Unsplash)

    Take a Break

    I take breaks every few hours. Usually, I put my water bottle at my desk, which automatically pushes me to take bathroom breaks. I stand up, stretch, and talk to my colleagues over the coffee machine.

    After a long meeting, if I’m feeling drained and unfocused, I go for a walk. There is a park near my office that makes you forget that you are in the center of Berlin!

    Going for a walk also helps with daylight cravings during the winter, and when I’m back at my desk, I feel refreshed and able to concentrate again.

    Embrace Procrastination

    Sometimes it also helps to take a mental break, step away from the problem, and switch context. During my lunch break, I sometimes read a book or an article unrelated to my work. If I’m at home, I sometimes make a small sketch.

    I learned that, for me, caffeine and sugar are temporary solutions. They usually wear off in an hour or so. But taking a break and doing something completely different is refreshing and gives me a much-needed creativity boost.

    If you don’t take care of your mental health, you risk burning out. Everybody is different and what I suggested here might not work for you, so the best is to try to develop your techniques. Understand what circumstances lead you to your most productive work and try to replicate them.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第683期:《传奇历史 nCovMemory》

    10 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《传奇历史 nCovMemory》
    今日推荐英文原文:《How to Ask Questions About Programming》

    今日推荐开源项目:《传奇历史 nCovMemory》传送门:GitHub链接
    推荐理由:这段以后在人们心中无法忘却的历史,现在正在不断的向我们展现它的一切;或者应该说,这世界上的所有人,现在此时此刻,正在不断的完善这段历史。
    今日推荐英文原文:《How to Ask Questions About Programming》作者:Martin Andersson Aaberge
    原文链接:https://medium.com/better-programming/how-to-ask-questions-about-programming-dcd948fcd2bd
    推荐理由:问问题可是门学问

    How to Ask Questions About Programming

    Programming isn’t about writing code. Programming is about problem-solving. The actual code, anyone can learn. If you are good at problem-solving, the coding part is basically learning syntax and how to search for functions, libraries, and tricks to solve the task.

    Questions that don’t deserve an answer

    This article is based on a series of real questions asked in various Facebook groups. The questions are legit, it’s just how you approach your audience I want to look into.

    If your question is along these lines, why should anyone bother spending their personal time helping you?
    • “How do I solve this?” (Random screen shot of an obvious school assignment.)
    • “How do I do this? I have tried everything.” (Clearly didn’t try everything in the whole world.)
    If you just dump out a question where you expect people to do all the work for you, you’re being disrespectful. You’re basically asking random strangers to do all the work for you while you sit back and harvest from their work.

    Example 1: Area of a Triangle

    “How do I calculate the area of two triangles making up a square in Python?”

    Photo by Shapelined on Unsplash

    The autoreply to all questions should be, “What did you try so far?” (Or, if it’s a philosophical question, “What are your thoughts on the subject so far?” Please post your current code when asking questions.

    If your answer is “I haven’t tried anything yet. I just have issues solving it,” please come back when you have tried something.

    The example above is a terrible way to ask that question. Here’s what I consider a good way to ask a question:

    “How do I calculate the area of two triangles making up a square in Python? So far I have tried the following:

    The math behind the area I believe is pretty straightforward. A square has equal sides, so we know the base and the height because they’re also the same. We don’t even need to invite Pythagoras — yay! I googled the area of a triangle, and this is the formula:
    A = 1/2 bh
    Here’s my current code:
    def find_square_area(length):
        return int(length)*int(length)def find_triangles_area(length):
        return (1.2*int(length)*int(length))side_length = input('length of square sides: ')
    print (f'The area of the square is {find_square_area(side_length)}')
    print (f'The area of each triangle making up the square is {find_triangles_area(side_length)}')
    
    The code seems to run, but I’m expecting half of that square area because I think that’s what it should be. I mean, I’m just slicing it in half. Am I thinking wrong or coding wrong? Appreciate the help!

    A question of this caliber I would love to see more of. Clearly, the imaginary user has given it some serious thought. They have read up on the theory of the problem they want to solve and have also done the code.

    The code seems to work, and the user is also reflecting on the logical error here. This one could easily slip, but if you stop and think, the area of each triangle can’t be bigger than the square itself. Something is clearly wrong.

    I’m sure several people would help, and we’d be able to pinpoint that the math in the find_triangles_area() function is incorrect. Maybe the discussion would also lead to talk about operators like *= — not that you need to use it, but it could spark more creativity.

    For this session, we have several wins. Firstly, the original poster has learned a lot by almost figuring out the issue. Secondly, the question is appealing to answer. This is an answer I want to reply to.

    Photo by Andre Hunter on Unsplash

    Example 2: Pythagoras

    Let’s invite Pythagoras to the party anyway and create a question related to the theory.
    “I don’t understand The Pythagorean theorem — explain it to me.”
    Well, that’s a seriously vague question. Where do I even start? Considering how many sites there are online that explain this brilliantly, I don’t believe that’s the real question.

    If I were to answer it, maybe I’d ask something along these lines:
    What exactly about the Pythagorean theorem do you have trouble with? The concept, the math, or something else?
    That should trigger some thought, and the user posting the question could go:
    “Well, after it’s set up, we have numbers on both sides right … 24² = 16² + b². Then, suddenly we’re doing the square root of 320 and b. Where did all the numbers go? Why are we suddenly working on 320?”
    It turns out the user actually just has issues with the expression. Maybe they were looking at examples that skip a few steps and, therefore, made it more confusing.

    Now that we fished for more information, we can go through that piece step by step, and the user would probably get a nice reply.

    That wasn’t such a bad question though, was it? Well, if the information was there from the start, we wouldn’t have wasted a bit of time. Just a tiny snippet of information would help everyone out here.

    In Conclusion

    Whenever you want to ask a question about programming or problem-solving, make sure you have done something yourself first. If you want to actually learn from it, you have to do something. It’s also the best way to learn in general. You can watch all the tutorials you want, but if you never try anything out, how can you get a feel for it?

    If you want decent replies, make sure you post decent questions. You’d be surprised how many people actually enjoy helping others, myself included. I love to teach, and I love to learn. Let’s make teaching and learning great again. Thanks for reading!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 87 88 89 90 91 … 262
下一页→

Proudly powered by WordPress