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

开源日报

  • 开源日报第730期:《C/C++面试知识:interview》

    28 3 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《C/C++面试知识:interview》
    今日推荐英文原文:《Keeping an Eye on AI: Building Ethical Technology at Salesforce》

    今日推荐开源项目:《C/C++面试知识:interview》传送门:GitHub链接
    推荐理由:技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。
    今日推荐英文原文:《Keeping an Eye on AI: Building Ethical Technology at Salesforce》作者:Lauren Finkle
    原文链接:https://blogs.nvidia.com/blog/2020/03/25/salesforce-ethical-ai/
    推荐理由:人工智能飞速发展,人工智能也得到了更大的自主性,我们未来不仅要关注人工智能的技术,更要关注人工智能在道德层面上的发展.

    Keeping an Eye on AI: Building Ethical Technology at Salesforce

    Kathy Baxter, the architect of the ethical AI practice at Salesforce, is helping her team and clients create more responsible technology. To do so, she supports employee education, the inclusion of safeguards in Salesforce technology, and collaboration with other companies to improve ethical AI across industries.

    Baxter spoke with AI Podcast host Noah Kravitz about her role at the company, a position she helped create as the need for AI ethicists became apparent.

    She’s helped construct practices such as release readiness planning, in which teams brainstorm any potential unintended negative consequences, along with ways to mitigate them.

    In the future, Baxter predicts more global policies that will help companies define ethical AI and guide them in creating responsible technology.

    Kathy Baxter, architect of ethical AI at Salesforce.

    Key Points From This Episode:

    • There are several ways to correct bias in AI. This includes making edits to the training data or editing the model itself (for example, not using race or gender as a factor).

    • Einstein is Salesforce’s AI platform. The company implements in-app guidance through a feature called Einstein Discovery. One of its functions is to alert users when they might be using sensitive variables such as age, race or gender. Administrators can also select the variables they don’t want to include in their model, to avoid accidental bias.

    Tweetables:

    “We have to understand that everything that we build and bring into society has an impact,” — Kathy Baxter [2:29]

    “One of the magical things about AI is that we can become aware of biases that we might not have known even existed in our business processes in the first place.” — Kathy Baxter [10:18]

    You Might Also Like

    How Federated Learning Can Help Keep Data Private

    Walter De Brouwer, CEO of Doc.ai — a company building a medical research platform that addresses the issue of data privacy with federated learning — talks about the complications of putting data to work in industries such as healthcare.

    Good News About Fake News: AI Can Now Help Detect False Information

    If only there was a way to filter the fake news from the real. Thanks to Vagelis Papalexakis, a professor of computer science at the University of California, Riverside, there is. He discusses his algorithm that can detect fake news with 75 percent accuracy.

    Teaching Families to Embrace AI

    Tara Chklovski is CEO and founder of Iridescent, a nonprofit that provides access to hands-on learning opportunities to prepare underrepresented children and adults for the future of work. She talks about Iridescent, the UN’s AI for Good Global Summit and the AI World Championship — part of the AI Family Challenge.


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/

  • 开源日报第729期:《JavaGuide》

    27 3 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《JavaGuide》
    今日推荐英文原文:《Working Remotely: Connecting to Your Office Workstation》

    今日推荐开源项目:《JavaGuide》传送门:GitHub链接
    推荐理由:【Java 学习 + 面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。
    今日推荐英文原文:《Working Remotely: Connecting to Your Office Workstation》作者:Sandeep Gupte
    原文链接:https://blogs.nvidia.com/blog/2020/03/25/connecting-to-office-workstation/
    推荐理由:这篇文章很好的展示了疫情期间,NVIDIA公司的开发人如何应对,以及向我们展现了一些云办公的工具。

    Working Remotely: Connecting to Your Office Workstation

    With so many people working from home amid the COVID-19 outbreak, staying productive can be challenging.

    At NVIDIA, some of us have RTX laptops and remote-working capabilities powered by our virtual GPU software via on-prem servers and the cloud. To help support the many other businesses with GPUs in their servers, we recently made vGPU licenses free for up to 500 users for 90 days to explore their virtualization options.

    But many still require access to physical Quadro desktop workstations due to specific hardware configurations or data requirements. And we know this situation is hardly unique.

    Many designers, engineers, artists and architects have Quadro RTX mobile workstations that are on par with their desktop counterparts, which helps them stay productive anywhere. However, a vast number of professionals don’t have access to their office-based workstations — with multiple high-end GPUs, large memory and storage, as well as applications and data.

    These workstations are critical for keeping everything from family firms to multinational corporations going. And this has forced IT teams to explore different ways to address the challenges of working from home by connecting remotely to an office workstation.

    Getting Started: Tools for Remote Connections

    The list below shows several publicly available remote-working tools that are helpful to get going quickly. For details on features and licensing, contact the respective providers.

    • HP ZCentral Remote Boost
    • LogMeIn
    • Microsoft Remote Desktop
    • NoMachine
    • Splashtop
    • TeamViewer
    • TGX Remote Desktop
    • ThinLinc
    • Managing Access, Drivers and Reboots Once you’re up and running, keep these considerations in mind:

    Give yourself a safety net when working on a remote system

    There are times that your tools can stop working, so it’s a good idea to have a safety net. Always install a VNC server on the machine (https://www.tightvnc.com/, https://www.realvnc.com/en/ or others) no matter what remote access tool you use. It’s also a good idea to enable Access to Microsoft Remote Desktop as another option. These run quietly in the background, but are ready if you need them in an emergency

    Updating your driver remotely

    We recommend you use a VNC connection to upgrade your drivers. Changing the driver often changes the parts the driver the remote access tools are using, so you often lose the connection. VNC doesn’t connect into the driver at a low level, so keeps working as the old driver is changed out to the new. Once the driver is updated, you can go back to your other remote access tools.

    Rebooting your machine remotely

    Normally you can reboot with the windows menus. Give the system a few minutes to restart and then log back in. If your main remote-working tools have stopped functioning, try a VNC connection. You can also restart from a PowerShell Window or command prompt from your local machine with the command: shutdown /r /t 0 /m \[machine-name]

    App-Specific Resources

    Several software makers with applications for professionals working in the manufacturing, architecture, and media and entertainment industries have provided instructions on using their applications from home. Here are links to a few recent articles:

    • Altair Blog: Combating Global Concerns Through Responsiveness, Support, and Technology Access
    • Autodesk News: How Autodesk is helping customers and employees impacted by COVID-19
    • Dassault Systems: Business Must Go On, Smart Working Safe Working on the Cloud
    • Helping You Stay Connected with Autodesk BIM 360 Design
    • PTC Blog: PTC’s Commitment to You, Our Customers, During COVID-19
    • Siemens Blog: NX Deployment options in a Virtual Working World
    • SOLIDWORKS Blog: Office Closed due to coronavirus? Here’s how to use SOLIDWORKS at home
    • Virtualization of ArcGIS from the Cloud and On-Premise Platforms
    • Working from Home with ArchiCAD Where to Get Help

      Given the inherent variability in working from home, there’s no one-size-fits-all solution. If you run into technical issues and have questions, feel free to contact us at [email protected]. We’ll do our best to help.

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/

  • 开源日报第728期:《砌墙 masonry》

    26 3 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《砌墙 masonry》
    今日推荐英文原文:《How to Work Better Remotely》

    今日推荐开源项目:《砌墙 masonry》传送门:GitHub链接
    推荐理由:这个项目提供了一种新的布局想法:计算页面大小和元素大小,将其以绝对定位的方式展现在屏幕上,这在应对不同尺寸的屏幕时是一种不错的想法,即使用户使用更小的显示屏,也能保持页面的内容不会凌乱。

    今日推荐英文原文:《How to Work Better Remotely》作者:Amanda Woo
    原文链接:https://medium.com/better-programming/how-to-work-better-remotely-c71dae64ad6d
    推荐理由:少出门比较安全,如果能在家工作自然更好

    How to Work Better Remotely

    8 ways to master remote working

    Most of us dream of working on a white-sand beach with the temptation of blue ocean waters just a few steps away. Our fantasy of a flexible working schedule, productively working in your pajamas from the couch and avoiding the long, stressful commute to and from work sounds amazing.

    It really is until the honeymoon period of the remote work fades. Reality starts to kick in, and a whole new set of challenges begins to appear with remote working. From time-zone differences to feeling isolated and disconnected from the organization, remote work can be intimidating. A study revealed 70% of remote workers felt left out of the workplace.

    Having said that, remote working is growing in popularity at a rapid rate. Between 2005-2017, there was a 159% increase in remote work. Another study found that 55% of remote workers would be likely to look for another job if they were no longer allowed to work remotely.

    Then, there are global events like the coronavirus (Covid-19) outbreak we’re currently in the mist of. The WHO declared coronavirus a pandemic, which has forced many organizations to try the remote-working trend, particularly via working from home. It’s become a mandatory norm.

    Companies like Slack, GitLab, DuckDuckGo, and Buffer have established remote working across the globe for a while now. But there are many companies that are just starting to figure out how to enable and set up their employees for remote work.

    This is no simple shift. Evolving an organizations culture to accept and integrate the remote-working practice is often one of the biggest challenges. Then there’s also the need to cover the foundational aspects, such as reliable, high-speed internet. But we won’t unravel that aspect in this article.

    Today, we’ve become comfortable with integrating the internet into almost everything we do. This has made remote working highly attractive for both employers, employees, and freelancers. Businesses can benefit from significant cost savings and increased access to top talent while also improving employee retention and reducing mental illness. Remote working can help employees and freelancers to reduce stress, to improve their health and work-life balance, and to be more productive.

    Whether you’re new to remote working or already work remotely, here are eight ways that have worked well for me over the past decade to establish a routine that keeps me productive when working outside of an office.

    Note to reader: Please don’t feel like you need to try these all at once. You may already do some of these well. My suggestion would be to pick one to start with. Once you’ve got that working well, pick another.

    1. Have a Routine

    When we work at an office, we often have a morning routine that keeps us on some schedule.

    This implicitly motivates one to plan and/or time box their activities (e.g., getting ready, workouts, making breakfast, etc.) in the morning. For example, if you need to be in the office by 9 a.m., you’d likely plan your wake up time by the number of activities you need to do and the time each activity will take.

    How to establish a routine

    • Set a time that you’ll start or “go to” work
    • Define your getting-ready morning routine
    • Wake up at the same time every day for work
    • Change out of your pajamas so you’re mentally prepared for work
    • Block out a break for lunch, even if its only 10 minutes
    • Schedule in workouts and/or social activities after work in the same way you’d do when working at an office
    When it comes to working from home or remotely, it shouldn’t be different to working at an office except with the added benefit of a much shorter commute. Regardless, defining a routine and being consistent with it is key.

    2. Be Organized

    Being organized isn’t always easy, but it’s a habit worth practicing. Organizing has several benefits — from giving you a sense of control to reducing the feeling of being overwhelmed. Additionally, it helps to clear your head of clutter and helps you to be more productive at work while reducing stress.

    How to become organized

    • Set daily and weekly goals
    • Plan out your day before it starts
    • Estimate and be reasonable with the time things will take to do
    • Think about who you might need to collaborate with in advance
    • Schedule meetings and discussions in advance so they happen in a timely manner
    • Have a clear view of your tasks for the day (i.e., by using a notepad and/or calendar)
    Whether you’re in a work-from-home environment or you’re working remotely at a cafe, we’re all vulnerable to distractions. Being organized is a great tool for staying focused on the important stuff so you can meet deadlines and feel accomplished at the end of a day’s work.

    3. Set Priorities

    Have you been in a situation where you’ve worked extra hard on an initiative, then for some reason the direction changed and your effort and time felt wasted? There’s a high probability the priorities were not well defined before beginning this initiative.

    The key to managing your time well and making progress on your goals is having a set of clearly defined priorities. Having well-defined priorities brings clarity to decisions you make, which then results in higher productivity. The reality is our work often involves and impacts the colleagues and stakeholders we need to collaborate with, so having a set of clear priorities enables good communication with others.

    How to establish priorities

    • Define/understand the goals
    • Determine which goals are the most important and why
    • Assess value, urgency, and importance
    • Obtain an estimated effort
    • Be adaptable and flexible toward change and uncertainty
    Ensuring you’re working on the right items fosters motivation and keeps a good level of momentum. Furthermore, clear priorities foster freedom of thought and effective use of our time. The key to establishing priorities is self-discipline (see #8 below).

    4. Eliminate Distractions

    Eliminating distractions is interrelated with some of the other ways to master remote working: having a routine(#1) , being organized (#2), taking breaks (#7), and practicing self-disciplined (#8).

    It’s important that boundaries for working hours are defined — such as no Netflix during working hours.

    How to minimize distractions

    • Block out time for you to do work
    • Define an area of your home that’ll be the working space
    • Set up a working space that’s optimized for productivity (i.e., maybe you’d like a laptop stand, keyboard, office chair, etc.)
    • Maintain a clean, clutter-free working space
    • Enable “do not disturb” on all things to increase focus
    • Recognize when you’re being unproductive, and switch tasks or take a break
    The takeaway here is to ensure your surroundings are optimized for productivity and focus.

    5. Communicate With Intent

    To communicate effectively is to communicate with intent. When working from home or remotely, the quality of communication is magnified.

    Either things are lost in translation because we lack the complementary visual of facial expression and the tone of voice or we’re forced to think more carefully about the purpose of our communication before acting on it, which can create nonaction. It tends to be the former. There are also less opportunities to have ad-hoc conversations, such as the random afternoon coffee mingling sessions or the quick in-between meeting talks.

    How to communicate with intent

    • Speak both candidly and empathetically
    • Use visuals (e.g., video chat or diagrams) as often as possible
    • Be explicit about the purpose and desired outcome of the conversation
    • Articulate your goal for the conversation
    • Share your feelings openly
    • Be an active listener
    Working remotely will either break down or accelerate based on the quality of communication. Therefore, high-quality communication plays a key role in the success of working remotely.

    Finding alternative opportunities to simulate face-to-face and spontaneous communication are necessary for encouraging information flow and relationship building across teams and the broader organization.

    6. Use Your Video

    Did you know that people retain 65% of the information three days later if a relevant image is paired with that same information compared to remembering only 10% of that information three days later if an image isn’t used?

    Conducting video instead of voice calls enables us to have more empathetic and engaging conversations. We can observe in real time how our colleagues and stakeholders are reacting to the conversation.

    This visual context creates a better understanding and awareness of other people’s body language (e.g., facial expressions) as well as our own. Video also helps to create better engagement on the calls since it gives you the opportunity to use hand cues and facial expressions and to continuously gauge when you’re losing people’s attention.

    How to get comfortable with video

    • Pretend as if this meeting was in person (dress comfortably)
    • Test your video setup before getting on the actual call
    • Turn your camera on by default for meetings
    • Use “gallery mode,” so you can see all of the participants in the meeting
    • Consider using icebreakers/energizers
    Video calls are the next best thing to face-to-face conversations. Furthermore, the visual interaction enables effective communication.

    7. Take Breaks

    We work in demanding, fast-paced environments where it’s often difficult to pause and take a break during the day. Usually, we’re caught eating lunch at our desk or during a meeting.

    However, being deliberate about taking breaks can help to reduce distractions and stress. It’s about practicing self-care so you’re motivated and performing well. This ensures you’re more focused and fosters critical thinking — thus increasing productivity and creativity.

    How to incorporate breaks

    • Regularly block out some time in your day for lunch
    • If its a nice day, eat your lunch outside (e.g., at a nearby park)
    • When you can’t focus, go for a short walk or stand up and stretch
    • Treat yourself to a coffee at the local cafe
    • Leverage breaks as an opportunity to get to know colleagues
    Your mental wellness is also an essential aspect in performing at your best. We make thousands of decisions within a day, and a lack of breaks can leave you with decision fatigue.

    8. Practice Self-Discipline

    Studies show people with self-discipline are happier. Owl Labs also found people who work remotely at least once a month are 24% more likely to be happy and productive. Discipline helps to create a separation between work and personal time, especially when you’re working and living in the same place.

    How to learn self-discipline

    • Recognize your weaknesses
    • Remove distractions (i.e., out of sight, out of mind)
    • Focus on accomplishing achievements (e.g., set and meet your goals)
    • Pick one new habit at a time to instill
    • Adjust your perception
    Ultimately, discipline is about staying in control and recognize when to move forward, when to reward yourself, when you need a break, and when to avoid temptations.

    Conclusion

    Working remotely is a trend that’s here to stay and will only continue to evolve. Practicing all the approaches above will help you become a master of remote working, whether it’s at home, a coworking space, a cafe, or the beach.

    However, it’s worth keeping in mind there are some prerequisites, such as having a high-quality internet connection. Without this, communication will break down. leading to a rapid decline in productivity due to frustrations building up between you and your colleagues.

    The best way to get started is to just get started. Pick one of the approaches above. Practice and refine it until it becomes a habit. Then, pick another to start mastering.

    Thanks for reading!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第727期:《编程语言 Julia》

    25 3 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《编程语言 Julia》
    今日推荐英文原文:《How to Build a Chess Board With JavaScript》

    今日推荐开源项目:《编程语言 Julia》传送门:GitHub链接
    推荐理由:Julia 是一个面向科学计算的高性能动态高级程序设计语言,其语法与其他科学计算语言相似,整合了C、Python、R等诸多语言特色,在许多情况下拥有能与编译型语言相媲美的性能。
    今日推荐英文原文:《How to Build a Chess Board With JavaScript》作者:Matthew Croak
    原文链接:https://medium.com/better-programming/how-to-build-a-chess-board-with-javascript-480ab182739e
    推荐理由:宅在家里的时候,下棋似乎是个不错的选择。棋盘已经完成,接下来可以开始写棋子了。

    How to Build a Chess Board With JavaScript

    Checkmate!

    (Photo by sk on Unsplash)
    My friend and accountant, Jon Sarowitz, has been kicking my butt in chess lately so naturally, I was inspired to build a chess app.

    While the logistics will take me a while to implement, I was able to generate the rank and file game board. To render the board, I needed to consider the parameters involved in the rank and file system.

    • Number of squares: 84.
    • Square colors: White, black.
    • Color organization: alternating*.
    I put an asterisk next to alternating, because it’s not as simple as alternating every time.

    For instance, the firsts row starts with a white square and ends with a black one. The next row starts with a black square and ends with a white one. If you were to render the squares with pure alternation, you’d end up with identical rows populating the board.

    So, how do we properly render the squares on the board? We can do it one of two ways.

    Option 1: By Rows

    One way would be to alternate the direction in which the rendering takes place. First row, render left to right. Next row, render right to left, etc.

    This direction of render can be determined by the CSS property flex-direction. If the index of the row is odd, don’t apply the flex-direction. If it is, apply flex-direction: row-reverse;.

    We can determine which is an odd/even row by using the modulo operator. If i % 2 === 0 then it’s an even row. Otherwise, it’s odd. See below.
    var board = document.getElementById('boardInner');
    const renderBoard1 = (useLabels) =>{
      for (var i = 0; i < 8; ++i){
        var row = document.createElement('DIV')
        row.className = 'row'
        row.style.flexDirection = i % 2 === 0 ? '' : 'row-reverse'; 
        for (var j = 0; j < 8; ++j){
          var square = document.createElement('DIV')
          square.className = 'square'
          square.style.backgroundColor = j % 2 === 0 ? 'white' : 'black'
          row.appendChild(square)
        }
        board.appendChild(row)
      }   
     }
    
    While this does use a nested loop (which translates to On²) and is an example of an exponential regression, since you’re looping through a dataset of 8 items, and for each of those items, you’re performing another loop of 8 iterations, this can be seen as 8 iterations by 8 iterations.

    This translates to 64 total iterations; the same amount of iterations for our next option.

    Option 2: By Squares

    By initializing a variable (we’ll call it change), we can determine when to change the initial color, and then starting from that color continue the alternating color assignment.

    So, for the first row, change = falseand the initial color is white. As we move down the squares, we alternate between black and white until we reach the last square.

    This is where we change the value of change to true, before continuing the pattern. Repeat the procedure until you’ve rendered all 64 squares. See below.
    var board = document.getElementById('boardInner');
    const renderBoard2 = (useLabels) =>{
      var change = false //initialized variable
      var backgroundColor = 'white'
      for (var i = 0; i < 64; ++i){
        var el = document.createElement('DIV')
        el.className = 'square'
        change = i % 8 === 0 || i === 0
        backgroundColor = change ? backgroundColor : backgroundColor === 'white' ? 'black' : 'white'
        el.style.backgroundColor = backgroundColor
        board.appendChild(el)
        change = false
      }
    }
    
    By initializing a variable, we can determine when to change the start color. The start color determines the next color and so on. We can determine when it’s time to change the initial color by checking if i % 8 === 0 || i === 0.

    This conditional checks if the value of index divided by 8 is 0, meaning it is a multiple of 8 and indicates the end of a row. The i === 0 check is for the first index.

    At the end of the function, we change change back to false so as to not re-initialize the start color accidentally and throw off the pattern.

    Both of these options consist of the same number of lines of code and perform the same amount of iterations.

    One could argue that the second option declares more variables than the first one, but in this case, it doesn’t amount to much of a difference (if any) in performance. Both options render the below result.

    There you have it! A quick file and rank game board generator. Stay tuned for my next blog as I continue to build out my own chess game using React. The code for this post can be found at this code pen.

    References

    Exponential Regression:https://www.varsitytutors.com/hotmath/hotmath_help/topics/exponential-regression

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 76 77 78 79 80 … 262
下一页→

Proudly powered by WordPress