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

开源日报

  • 开源日报第662期:《新开始 30DaysOfJavaScript》

    6 1 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《新开始 30DaysOfJavaScript》
    今日推荐英文原文:《Ugly Truths About Working From Home》

    今日推荐开源项目:《新开始 30DaysOfJavaScript》传送门:GitHub链接
    推荐理由:新年自然应该尝试些新玩意,比如从这个 JS 编程挑战开始学习 JS 相关知识。顾名思义,从第一天开始这个挑战会由浅入深的介绍 JS 及其相关知识,从如何安装如何 helloworld 到语法再到更复杂的玩意们,找不到新东西可学的话这会是个好的选择,技多不压身嘛。

    今日推荐英文原文:《Ugly Truths About Working From Home》作者:Anupam Chugh
    原文链接:https://medium.com/better-programming/ugly-truths-about-working-from-home-e9907c7091ba
    推荐理由:万物有利必有弊,这次要说的就是远程工作

    Ugly Truths About Working From Home

    Anything that’s too good has a hidden cost. Repercussions, rather.

    Working from home has been a dream for many people for a while now. It still is a very desirable option for some. Offer any introvert or a lazy person a remote job and, more often than not, they’ll grab it with both of their hands.

    No wonder, since it comes with its own sets of benefits that are hard to ignore—saves costs and time on transit, more time for self-care and family, better productivity (at least it seems initially, more on this later), freedom, flexibility, and control over your work—the list could go on and on.

    With the perks it has, it isn’t surprising that the number of people working from home is at an all-time high at the beginning of this decade. Tech startups, especially the ones in their early stages, prefer remote workers more and more nowadays—saves them some employee costs as well making it a win-win for both.

    While work from home may look all glitter and gold in the beginning (it did for me), with time you’d realize that it is overrated. The perks that made it a lucrative deal at the start would be the ones that’d haunt you after some time.

    Work from home is boring, to put it straight. It creates a monotonous life. It makes it difficult for people not working from home to understand your situation. For office-working peers, returning from home and putting on some TV show is the best end of the day, while for remote workers, all they want is to go out after being at home for the major part of the day.

    There are plenty of drawbacks to working from home. I’ll be talking about just a couple of them that I’ve experienced in my journey as a remote worker.

    Work-Life Balance Goes for a Toss

    It may take some time (maybe months) to realize this, but when working from home, your work-life balance would certainly become a mess after some point. You can easily lose track of your working hours since the freedom of working from home can distract you, leading to procrastination. The power of freedom you get while working from home can make you lazier than before, and soon you’d start binging on TV shows and movies or doing other chores during the work hours. There’s a reason office hours are fixed—to keep you focused on the tasks at hand during those hours.

    Working from home also makes you lazy. It doesn’t require the need to dress up as you’d do for the office. Staying in your pajamas becomes the norm after some time. Even staying active and working out becomes a challenge since we as humans love Netwon’s First Law Of Motion and the principle of inertia: An object at rest stays at rest unless driven by an external force. A person at home stays at home!

    Work from home can make it harder to evaluate your productivity with the number of distractions that come with being at home. It’s important to maintain and stick to a working schedule when doing remote work so that the boundaries between work and life don’t overlap.

    Loneliness and Depression Come Easily

    We as humans are social animals and require interactions for good health. When you’re at home all day devoid of the office gossips, team outings can lead to isolation. Even with remote colleagues, there’s a disconnect since more often than not, communication pertains to work-related stuff. No wonder office cultures and social interactions are a high priority in all companies.

    Even building a network takes longer than usual for some. In order to not get isolated, an extra effort is required to keep connected with peers.

    Communication helps in sharing ideas and keeping up to date with what’s happening in your community. Working with colleagues in the office can certainly give you more insights and make you better equipped with the latest trends in your field of work.

    When you’re working from home, dealing with depression and handling low phases can get tricky. With depression comes the need to avoid social interactions and activities that you once enjoyed. In such cases, isolation creeps in since you’re all on your own. Making an effort to keep social interactions gets even more difficult. This isn’t the case when you’re working from offices (I now prefer that over remote any day), as you have colleagues around you for talking and gossiping, an inevitable part of that routine.

    For some, working from coffee shops, co-working spaces, or visiting the office sometimes helps in maintaining social interactions and keeping their sanity in check.

    To conclude for fellows aspiring to work remotely, I hope you consider these harsh realities. While everyone has their own way of dealing with things, and no two remote workers go through the same journey, it’s important to realize that working from home full-time isn’t as easy as it looks, and it comes with its own set of challenges that you’ll have to deal with.

    Thank you for reading.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第661期:《城市建造 isocity》

    5 1 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《城市建造 isocity》
    今日推荐英文原文:《Is Your Traditional Daily Standup Meeting Wasting Your Time? Do It Differently》

    今日推荐开源项目:《城市建造 isocity》传送门:GitHub链接
    推荐理由:元旦假期已经过去了,接下来熬到过年就好了。难得的周日,自然应当放松一下,这个项目就是一个 JS 实现的城市建造小游戏,你要做的就是把一片地盘变成自己的城市,仅此而已。这游戏没有目标没有任务什么的,但是摆这个是真的很有意思,要想摆的好看还得花花心思。

    今日推荐英文原文:《Is Your Traditional Daily Standup Meeting Wasting Your Time? Do It Differently》作者:Xuan-Gieng Nguyen
    原文链接:https://medium.com/better-programming/is-your-traditional-daily-standup-meeting-wasting-your-time-do-it-differently-f4692f409f1e
    推荐理由:来人想想办法解决日常开会问题吧

    Is Your Traditional Daily Standup Meeting Wasting Your Time? Do It Differently

    How I saved my team 2,200 hours annually by using a different method

    The Situation

    When I joined my team, it was a team of 10 people. We ran a daily standup meeting every day. In the meeting, everyone would have their turn to talk about their tasks and their blockers. Sometimes, a group of people would talk about a specific topic in detail, which only involved some of the team. Let’s say, generally, a person tried to give their update and explain it in 5 minutes. For 10 people, with side stories and activities, the meeting would last for an hour or more.

    It happened every day back then. I felt unproductive and I thought we needed to change. The Solution

    Talking is slow, typing is faster.

    You heard it right. As a team of engineers, we spend most of the time on the keyboard typing. Some of us might get in trouble with communication sometimes. Therefore, doing a standup meeting via typing will boost the speed, as everyone can type their updates with status and blockers at the same time, even in advance.

    1. Partially digital daily update

    My previous team also had the same problem of wasting time. Our team standup meeting was long, and sometimes it was unnecessary for some people to stay until the end just to listen to what they don’t really need to. We decided to create a Slack channel to let everyone to write down their updates in advance before joining the real stand-up meeting.

    A sample update that I used to write on the daily-update channel on Slack.

    As you can see, there are two points of time in the update I wrote.

    Yesterday is where I list down what I did yesterday.

    Today is where I list down what I plan to do today.

    Pros

    We saved a lot of time by reducing the meeting time from 30 minutes down to 7 minutes on average, which is more than 4 times faster. Mostly, we spent the minutes to talk about our blockers and to move the notes, which stand-in for our JIRA tickets on our physical board.

    Cons

    As we still depended on the physical notes, it required us to gather around and move the notes to its correct status. Sometimes, the blockers took a lot of time at the meeting, too.

    2. Digital Daily Update

    As my team is not using notes to map with the JIRA tickets, we can easily eliminate the first cons of the previous solution. For the blockers, we included it to the update, and then everyone could just discuss it on the channel instead. Moreover, as we sat next to each other, the one that got blocked can just easily swing by and talk directly with the person they need to talk to. It helps to free other team members.

    A better version of my daily update nows a day.

    Similarly, we have Yesterday and Today sections to let people know about what we did and what we plan to do. Besides, if you look at my update a little longer, you will see a lot more information that could help others to navigate and understand better, such as links and explanations. I also separated the meetings into another category named Meetings and mentioned the time of each meeting so that my teammates could easily know my plan through the day, in case they wanted to find me.

    Pros

    We don’t have standup meetings anymore. Everything is now logged and we all can clearly go back and know what we did in the past. It is super helpful to me when I want to know my achievements for a cycle of the performance review. It could be helpful for your resume later, as well.

    We are free to write the update whenever and wherever we want. This advantage enables us to work remotely without worrying about missing “important” team meetings.

    Cons

    We don’t have the standup meetings anymore. That means we need other activities in order to spend time together.

    More typing, less talking.

    The Result

    We have been using these digital daily updates instead of standup meetings for more than eight months, and I can confidently tell you that it boosts our productivity significantly. Now, people are spending five minutes to write down their updates, plus five more minutes to read others. Compared with the 60 minutes I mentioned at the beginning of the article, our team saves 83.3% of that time, which is 50 minutes per meeting per day. With ten people in a team working 22 days a month, let’s do a simple calculation to see the number in a year:

    50 minutes x 10 people x 22 days x 12 months = 132,000 mins = 2,200 hours

    Thanks for reading!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第660期:《NTB nodetube》

    4 1 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《NTB nodetube》
    今日推荐英文原文:《Tips to Improve Your Code Today》

    今日推荐开源项目:《NTB nodetube》传送门:GitHub链接
    推荐理由:如果有一天 youtube 开源了……那现在当然不可能,最起码现在只有梦里才会这样。既然没有那就造一个吧,这个项目就是开源的 youtube 替代品,因为借助了 Node.js 的力量,顺手也把名字合起来,就成为了 nodetube。作为开源替代自然提供了不少方便的功能——比如说更方便的下载等等,可以期待它今后的发展。

    今日推荐英文原文:《Tips to Improve Your Code Today》作者:Dhananjay Trivedi
    原文链接:https://medium.com/better-programming/tips-to-improve-your-code-today-2c70b6af7a76
    推荐理由:新的一年,新的 tips

    Tips to Improve Your Code Today

    Next steps for beginners looking to become a pro in 2020

    Coding is a skill that needs refinement, you are not born a programmer. It’s just people who put in those thousands of hours to improve upon that as a skill.

    You just can’t expect to become a great programmer if you only code during your 9-to-5 job. If you are a guitarist and the only time you play is during the concerts, you won’t be able to find new ways of adding value to your band as a guitarist.

    Similarly, you, as a programmer, always need to find ways of doing things better, I am sure that is why you are here at Better Programming, so let’s get to it.

    Pair Programming

    This one is really cool.

    According to Wikipedia:

    Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently.

    Your peer and you both can learn from each other, you might know a way to optimize things while your peer might now how to write cleaner code, this way, you both compliment each other’s skills, get your work done, and learn from each other. Isn’t that cool?

    It might be awkward at first but it’s fun, but find someone you want to pair with, you don’t have to do it with everyone.

    Build Projects

    This is fun.

    Build an app for everything!

    Build Twitter, Instagram, Tinder, or even Medium, that’s totally up to you.

    This way, you will get to learn how to implement certain complex features and get a better understanding of how things are being done in real-world apps that we all love.

    Try Out Different Programming Tools

    Your programming language is a tool too.

    Be open to trying out the hottest programming languages of your time.

    Build the same app with the new programming language you are trying out, whether it be Ruby, Go, Python, or Clojure. This way, you experience the pros and cons of various languages and advocate for them when needed.

    That will be your biggest strength as a good programmer and one you can develop over time.

    Strive for Code Readability

    As a beginner, this is something you should definitely aim for. It doesn’t require many skills and gives good returns.

    We, as beginners, try to jump into writing the highest performing code even without knowing all the tools that will help us achieve the same.

    It’s good that you intend to write the most efficient programs but writing cleaner code will help you boost your efficiency as a programmer and your team’s and it doesn’t require much effort.

    Don’t abbreviate variable, function, or class names. Use long, descriptive names that clearly explain what you want out of the function.

    The following are some tips that you can implement right now to improve your code.

    Be Careful With Comments

    int b = 5;
    int c = 4;// I am sure you are reading about comments after a long time
    // the more comments I write here,
    // the longer it will take for you 
    // to read this codeblock and make sense of it.
    // BTW, it's just a simple addition.int a = b + c;
    
    We tend to comment-out code at times, thinking: “I may come back and use it later” and, most of the time, you don’t come back. That code sits there to haunt its victims.

    When somebody else is reading your code, that commented-out code comes out of nowhere and slows down the reader. The reader/programmer can’t delete it thinking that it’s important which is why it’s there.

    If comments are misleading, that is even worse! To know more about this, here is an interesting story about comments which is worth your time.

    Do Just One Thing Right

    Here, read this function.
    int addTwoNumbers(int a, int b) {
        displayToUser("Adding two numbers");
        setFontColorTo(Colors.RED);
        return a + b;
    }
    
    The function name is very innocent, addTwoNumbers, and when you read the name, what comes to mind?

    It should just add two numbers, but when you see its implementation, it is doing a lot more than just adding two numbers which are hidden from the user at first.

    This is a very common mistake we tend to make when writing our code. Functional programming teaches atomic functions which do one, and only one, thing.

    This way, you are very clear with your code and don’t leave any room for bugs or surprises. Learn about SRP (Single-Responsibility Principle), it is the heart of cleaner code.

    When you are striving for single responsibility, your functions will tend to be short which is exactly how long they should be!

    Function Arguments

    You know how long the function should be but what about the arguments?

    The fewer the numbers, the better. Zero is ideal.

    The higher number of arguments/parameters make your code inefficient in multiple ways:
    • Understanding the function takes longer.
    • Becomes harder to test.
    • More chances of messing things up.
    • Higher chances of violating SRP.
    Sad but true.

    Simplify Conditional Statements

    You tell me, which one is easier to read?
    if(person.age > 60 && person.salary > 5000 && person.score > 300 && person.score < 600 && person.retiredYear > 2014) {
        enrollForRetirementPension();
    }
    
    Vs.
    if(isPersonEligibleForPension(person)) {
        enrollForRetirementPension();
    }boolean isPersonEligibleForPension(Person person) {
        return (person.age > 60 && person.salary > 5000 && person.score > 300 && person.score < 600 && person.retiredYear > 2014);
    }
    
    You don’t really have to waste your time reading through the implementation if the function name is clear to you, hence, improving your efficiency and making your code very clean.

    Hence, refactor your complex conditions into a function and give it a descriptive name. Clean and simple.

    Declaration of Variables

    Declare them as close to where they are being used.

    Some of us (including ex-me) may have a practice of declaring all variables names at the top of our class/file, even though it might be used only in one place.

    If you declare variables like that, then all the methods of your class have access to them and can modify the value, hence increasing the number of probable suspects for some bug.

    Hence, just try to declare the variable exactly where they are being used.

    That’s all folks!

    From one of my favorites — Jim Kwik.
    “Knowledge is not power, it’s potential power”

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第659期:《数独答案生成器AI_Sudoku》

    3 1 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《数独答案生成器AI_Sudoku》
    今日推荐英文原文:《Should You Use The Most Dangerous Writing App?》

    今日推荐开源项目:《数独答案生成器AI_Sudoku》传送门:GitHub链接
    推荐理由:该项目能从照片中提取数独难题并解决。我们可能理所当然地认为这就是计算机的工作,或许称不上人工智能,但是,更重要的是我们能看到它的算法,它的实现逻辑总不会是若干个简单的循环判断吧?
    今日推荐英文原文:《Should You Use The Most Dangerous Writing App?》作者:Mathias Barra
    原文链接:https://medium.com/@barra.mathias/should-you-use-the-most-dangerous-writing-app-983c873419af
    推荐理由:这篇文章介绍了一个“最危险”的文字编辑应用,如果短时间停止书写,文本将开始消失,并在5秒钟后被完全擦除。如果使用得当,此工具将非常有用,在开始写作时,这是进入正确思维方式的绝佳工具。它是面向作者人群的,那试试用它敲代码会如何?
    网站链接:https://www.squibler.io/writing-prompt-generator

    Should You Use The Most Dangerous Writing App?

    If you have never heard of it, The Most Dangerous Writing App is a simple website for which the motto is:

    Don’t stop typing, or all progress will be lost.

    If you stop writing for a short while, the text starts to fade away and will be entirely erased after 5 seconds. At that point, everything written will be lost without hope to get it back. You can choose the limit by which you can download or copy the text based on two settings: time or amount of words.

    The time limit goes from 3 to 60 minutes while the word limit goes from 75 to 1667 (god only knows why he chose such a weird number as a limit).

    There is also a hardcore mode in which only the letter which just got typed can be seen for a split second. This allows you to focus on the content directly, not correcting typos and such. This tool can be incredibly useful if properly used but there are some risks as well.

    1. Advantages


    Obviously, the first reason to use it is to enter a flow at the beginning of a writing session. Every writer has had at one point difficulties entering a state of mind in which words are flowing like a cascade without stop. Having an idea for an article, book, etc. is a start but we often find ourselves stuck with the very beginning.

    Thoughts are present but you cannot seem to find in which order they should come nor how to connect them. In such cases, this website forces you to keep writing.

    Your mind gets pushed to think and find on the spot a following to whatever you have already written.

    As a result, while the text may not be perfect, you have at least created a basis on which you can build and then turn everything in a proper piece of writing as you originally had in mind. This website can also be a great way to find new ideas.

    It can be used as some sort of blank page on which you can write words or expressions that are somehow connected to the previous ones you have written.

    Doing this for even just 5 minutes can create an array of ideas which are originally supposed to be all connected together.

    However, if you look at the first ideas with the last keywords you have entered, you will usually find a distance between them. This exercise indeed forces your brain to make connections which you probably wouldn’t have made.

    This is a sort of musculation exercise for your brain, your thought process. Taking the time to train to make unconventional connections will allow you to think on your feet more easily in daily life, but also to discover new ways to organize your text and new article ideas even!

    2. Risks


    The first and obvious risk is to just use a text created on it directly as is. While important not to overthink your text, it is also crucial to not let it become too plain.

    Processing an article based on the first draft created will only make it be of poor quality. While it is a good idea to force your brain to think quickly so you don’t lose your text, it can also create unnatural connections only you could follow due to your past experiences.

    This is why you need to think about those clearly, taking the time to edit your text the right way.

    Furthermore, if you already have a clear idea of how you plan on setting your text, it is better to avoid using this website. It is greatly useful to get you started but in the midst of the rush your brain gets in, you may forget one important aspect and have trouble putting it back in later on.

    All in all, The Most Dangerous Writing App is an incredible tool if well used. Most of my articles were originally started on it and even after finishing my 5 minutes session, I would just keep on writing there, enjoying the blank surroundings, free of distractions.

    When starting a writing session, this is a great tool to get into the right mindset and as the creator says on his website:
    • Because ’tis better to have written and lost, than never to have written at all.

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 93 94 95 96 97 … 262
下一页→

Proudly powered by WordPress