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

开源日报

  • 2019年1月27日:开源日报第325期

    27 1 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《搞个大演讲 awesome-speaking》
    今日推荐英文原文:《What is the most underestimated programming language?》

    今日推荐开源项目:《搞个大演讲 awesome-speaking》传送门:GitHub链接
    推荐理由:顾名思义,这个项目里收集了很多在公共演讲时会用得上的知识。即使我们大部分时间都是对着电脑的,但是在公共场合演讲依然是个相当重要的技能,毕竟没准什么时候就能在开源年会上表达自己的一些观点呢。
    今日推荐英文原文:《What is the most underestimated programming language?》作者:Doug Ross
    原文链接:https://medium.com/skills-matter/what-is-the-most-underrated-programming-language-fafe164a8cd1
    推荐理由:兴许有些语言比想象中的要强,比如 F#

    What is the most underestimated programming language?

    Everyone outside of tech has heard of JavaScript, Java, Python, Ruby and even .Net, but few if any have heard of F#. However, F# may be one of the world’s most underestimated (and underrepresented) languages today, if developer surveys and web chatter are anything to go by.

    StackOverflow’s 2018 developer survey revealed the startling fact that F# is the world’s most highly paid language, and the 8th highest paid language in the US. Is this because F# is the most sought-after language? Not exactly.

    Some have suggested that its high price tag comes from the possibility that those earning higher incomes while using F# were already in the higher earning bracket before incorporating F# into their systems, hence a carryover of F#’s high salary bracket. StackOverflow also shows that those using F# sit outside the bulk of languages in terms of average years of experience (9.5 years rather than 5–7 years), which may support this theory that F# practitioners have simply been working longer and now earn higher incomes.

    In the same survey, however, F# does not even appear in the top 25 most popular languages, nor does it appear in the 2018 State of JavaScript survey as any of the 16 alternative languages used by JS developers — it is still (despite its age) a significantly fringe language, despite a highly active and productive community.

    Why developers love F

    As a multi-paradigm language (incorporating functional, imperative and OOP methods), F# may be the most underrated language out there today for one main reason: concise syntax and all that this promises developers. In essence, the brevity of the code required in F# frees up developers from getting bogged down by debugging, as they are fixed during compilation, thanks to it being a statically typed language. On top of this, being a strongly typed language, incorrect states are easily avoided. Russian developer Roman Liman wrote a great piece on the other benefits of F#.

    Created and maintained by Don Syme, the language is also seen as having been relatively resistant to some of the perceived overcomplications that similar FP languages have adopted (i.e. Scala), and that this resistance maintains accessibility for outside developers who may be interested in dabbling with functional programming.

    F# has been lauded as both a great language for domain-driven development and data-driven development, and thanks to Fable, built by Alfonso Garcia-Caro, it can now be compiled into JavaScript, linking it with one of the world’s most popular programming languages as well as JavaScript’s widely installed base of devices and extensive libraries.

    But F# may not necessarily need JS to grow in popularity. F# has also been marked as highly suited for AI and Machine Learning and associated data analysis. In fact, this was what it was initially designed for when created by Microsoft. Due to the sheer scale and expected influence that AI development will have on language ecosystems and tech in general, having a language so well-suited to this field of development places it in a strong position to dramatically grow in popularity and even challenge languages like JavaScript for their dominance.

    What is keeping F# back?

    In a roundtable discussion (including the previously mentioned developer, Roman Liman), Pavel Smirnov noted that Microsoft has maintained and restricted the language’s popularity, shooting themselves in the foot by placing F# as subordinate to C#, promoting it as a tool to play with in preparation for features within C#.

    This attitude towards the language by its very progenitor is one reason why F# has not yet become highly recognised for its suitability, beyond just data science, for both front end and back end development, while the barrier to its adoption continues to be cyclical: there are few jobs advertising for F# developers because there are few F# developers out there, and there are few F# developers out there because there are a limited number of jobs out there requiring the language. But this is changing.


    One prominent company that adopted F# early on was Jet.com, an online retailer, who have maintained the language, recently utilising it in the company’s adoption of microservices architecture for its ordering system. Other companies include Kaggle (a Google-owned platform for data scientists) and a suite of financial and insurance services companies.

    The main challenge the F# community faces is finding ways to promote the language’s use within companies, especially as a multi-paradigm language and one that can be applied to AI. The best way to do this, perhaps, is in promoting the core benefit of the language’s laconic syntax: shorter runtimes, less bugs and higher productivity. From this the community can begin to break the cycle of underrepresentation in both the job market and in the developer ecosystem, and position F# as a potential game changer in AI development.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 2019年1月26日:开源日报第324期

    26 1 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《课程大全 open-source-cs》
    今日推荐英文原文:《AI: Why it Actually Makes a Difference》

    今日推荐开源项目:《课程大全 open-source-cs》传送门:GitHub链接
    推荐理由:来自斯坦福大学,麻省理工大学等著名大学的免费课程列表——当然了都是关于计算机科学方面的,包括了 CS 基础,编程,数学,理论和应用等等。如果你对它们其中的某些感兴趣的话,兴许可以在假期尝试一下它们。
    今日推荐英文原文:《AI: Why it Actually Makes a Difference》作者:Madhav Malhotra
    原文链接:https://medium.com/@madhav.malhotra003/ai-why-it-actually-makes-a-difference-eecc87c6a3b2
    推荐理由:AI 与人类的不同在于难以进行一些对人类来说简单的决策,作者以开车为例子介绍了这一点

    AI: Why it Actually Makes a Difference

    Simple Human Decisions are Hard for Computers:

    Think of all the decisions you make in a single day. From what you eat in the morning to how you get home from work at night. Many things you do right are like second nature by now, but they’re actually really hard to do. For instance, how do you figure out the right way to pour milk and cereal into a bowl in the morning without spilling any? Or, more significantly, how do you figure out the right time to apply the brakes without ending up in a crash? Surprisingly, some of these small, routine decisions are the ones keeping us alive. While each of these individual decisions is trivial for humans, it’s been hard to replicate them efficiently with computers — a necessary task to avoid catastrophic mistakes and make our lives easier.

    Photo by Bacila Vlad on Unsplash.

    That’s where Artificial Intelligence comes in. There’s many different aspects and types of Artificial Intelligence but they all have the same end goal: to allow computers to cleverly make decisions on behalf of humans, and maybe even better than humans. In the example of deciding when to stop a car, there has been great interest in creating computers which can think like humans for more convenience and safety in transportation. Let’s break down some of the factors which must be considered for that decision:
    1. Speed of car
    2. Stopping distance
    3. Hazards and traffic direction

    Computers Must Consider many Factors like Humans:

    These are just three of many factors and, as you may be thinking, they can be broken down into further considerations themselves. To show how Artificial Intelligence is used to address this problem, I’ll focus in on the last point and highlight one major usage of Artificial Intelligence: object detection.

    Photo by Evan Dennis on Unsplash.

    When you look out for other cars around you, your first priorities might be to gauge the speed and distance of those cars. This, however, skips the task of identifying what you see as a car; this simple step is so automatic for humans, we rarely pause to think about it. Most humans have years of experience identifying objects around them for 100% of their waking lives. Computers, without our human experiences, have difficulty doing this as well as humans: just the first step in making the deceptively complex, yet important decision of braking a car. Recently, Artificial Intelligence has been helping to address this, as well as or better than humans, through Neural Networks.

    Neural Networks Let Computers Teach Themselves:

    Neural Networks were so complicated for me at first, I changed their acronym, CNN, from Convolutional Neural Networks to Convoluted Neural Networks. After some persistence, however, I found an analogy that worked for me. Think about the way your past experiences shape your actions today. If you got something wrong in the past, you’re less likely to repeat it. For instance, if you burned your finger on a hot stove, you would change the way you approach cooking next time. Equally, if you discovered a favourite menu item at a new restaurant, you might order it again next time. This process of using the positive and negative inputs of life gradually increase your capability and understanding over time. Now, imagine what could happen if you were able to go through all of life thousands of times, learning and relearning from such feedback to find the best approach to virtually any problem.

    Photo by Benjamin Elliott on Unsplash

    This is the capability computers offer through Neural Networks. We train computer programs to try solutions to problems, such as identifying cars in images. Initially, they may just randomly guess whether an object is a car based on features like lines, colours, shadows, etc. Sometimes, programs get this right and other times they do not. Using feedback on whether they successfully identified a car, they can modify the way they approach the problem. Perhaps, they look for lighter shadows or straighter lines in the image next time, because that allowed them to more accurately guess for cars. Eventually, computers modify the way they look for the car’s features, or their search parameters, to become more accurate. This would be just like a human learning over time; a baby may be able to tell the difference between a car and a tree but a toddler can tell the difference between a car and a truck. This is where we see the inherent advantage in using Artificial Intelligence in this task; a human can only look at one image at a time at certain times during his/her life but a computer can simultaneously look through thousands of images at the same time, effectively living through thousands of human experiences at once.

    There are Real Advantages from Artificial Intelligence:

    Due to advantages such as this, Artificial Intelligence offers an immediate benefit in creating solutions that previously lacked feasibility.

    By teaching computers to think more like humans, computers are teaching us they can think more than humans.

    Photo by Franck V. on Unsplash

    In fact, they also think more than other computers, as Artificial Intelligence allows computers to learn to better solve problems on their own without requiring additional programming. That is not to say, however, Artificial Intelligence exceeds human ability in all areas just yet. In recognising a car, particularly, there are many outliers neural networks have harder times identifying. For instance, what if a windshield’s sun glare partially masks a car’s outline? Or what if a car is seen at night with only its tail-lights visible? Due to the large variation in even such a simple task, one can imagine how Artificial Intelligence still has difficulty completely meeting or surpassing human capabilities in more complicated tasks. It is important to note, however, that just as the problems Artificial Intelligence must surpass are vast, so are the opportunities in which it can be used.

    Many Practical Innovations are Occurring Right Now:


    Photo by Roberto Nickson on Unsplash

    Currently, using Artificial Intelligence to solve problems like identifying cars and deciding when to brake is part of automated driving, one of many advances in the area. You’ve likely heard about huge companies like Google and Tesla actively working on implementing this in real life. There are many other sectors making use of Artificial Intelligence, from healthcare to marketing, that merit their own articles on the topic. Think of the complicated issues we broke down in just one simple application of Artificial Intelligence here and imagine all the issues that exist across these different fields and applications of Artificial Intelligence. Certainly, the challenges of implementing Artificial Intelligence are great, but so are its promises in many different areas. That is the reason why Artificial Intelligence is so beneficial: it extends the capabilities of computers beyond what we simply program into them and it teaches them to think more like humans to solve problems intelligently.

    3 Things to Understand about Artificial Intelligence:


    Photo by Andy Kelly on Unsplash.

    So here are the key things to remember:
    1. Artificial Intelligence is a broad field but it all comes down to making computers think by themselves in a smarter manner.
    2. There are many challenges in Artificial Intelligence but there are also clever techniques like Neural Networks to make computers overcome challenges themselves.
    3. Many immense companies have important projects in the field right now. It’s easy to get caught up in the hype but it’s harder, and more important, to get informed on the details.

    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 2019年1月25日:开源日报第323期

    25 1 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《简单调试 vscode-browser-preview》
    今日推荐英文原文:《How to be more productive on GitHub》

    今日推荐开源项目:《简单调试 vscode-browser-preview》传送门:GitHub链接
    推荐理由:使用 vscode 来编写网页的朋友们绝对会想要看看这个的,这个项目可以在你的 vscode 界面上张开一个浏览器让你实时浏览你写的网页效果。这样你就不再需要对着你的 html 在浏览器中打开然后看看效果了,只需要使用这个项目就能够看到网页的整体效果,如果经常需要在 vscode 上编写网页的话兴许这会带来相当大的便利之处。

    今日推荐英文原文:《How to be more productive on GitHub》作者:Darren Burns
    原文链接:https://medium.freecodecamp.org/how-to-be-more-productive-on-github-c3cedab043e3
    推荐理由:如何使用 GitHub 上的一些功能提高生产效率

    How to be more productive on GitHub

    With the recent announcement by GitHub of unlimited private repositories, let’s take a few minutes before we push our code we don’t want anyone else to see to the cloud, and make sure we’re making the most of what GitHub has to offer. GitHub is built with some extremely helpful shortcuts and productivity-boosting features. From personal experience, however, it’s clear that these often fall under the radar amongst developers. If I’ve ever witnessed a specific GitHub feature surprise or assist someone, it’s on this page. That said, what follows is by no means an exhaustive list.

    Quick fuzzy file search in repositories

    This is, without doubt, the fastest way to browse a repository when you know what you’re looking for. Open up any repository and press t. You can now search for the name of any file in the repository, and use the arrow keys on your keyboard to move through the results. Press Enter to open the file.

    Code change suggestions in pull requests

    When commenting on a piece of code in a pull request, you can suggest alternative code using the “Suggested Changes” feature. The author of the pull request will be able to apply your suggestion instantly without leaving GitHub. To make the suggestion, surround a code snippet with a multi-line Markdown snippet and add the tag “suggestion”: Now that you’ve made the suggestion, the author of the pull request can immediately apply it to their branch, without the hassle of manually changing the file!

    Navigate the code tree like in an IDE

    This one requires an unofficial Chrome extension, but it’s a slightly more familiar way to navigate your code, compared to the default interface. The Octotree extension lets you browse GitHub repositories with a sidebar tree view similar to what you get in applications like VS Code.

    Jump to a function when reviewing code

    Unless you’re reviewing a single function, a code review often involves a lot of jumping between function calls and their definitions (and therefore a lot of scrolling up and down). GitHub lets you jump to a symbol by pressing t when you’re looking at files in a pull request.

    Creating a permalink to a file

    When viewing a file or directory, press y, and the URL will be converted to a permalink, which you can share safely in the knowledge that the contents of the file will never change. If you send a link to a file or directory on GitHub without making it into a permalink, you’ll need to accept the possibility that the file could disappear tomorrow, breaking the link!

    Viewing the blame and change recency heatmap

    When viewing a file, you can press b to view the Git blame and a heatmap showing how recently each line was changed. It’ll tell you who most recently changed each line of code, and give you a clickable link taking you to the full commit the change was part of. On the right-hand side of the gutter (which contains the commit message and author), you’ll notice an orange vertical bar. The more vivid this bar is, the more recent the change, meaning you can easily scan the file to find the freshest code!

    Powerful code search

    GitHub indexes most code and offers powerful search functionality over it. If you need to find something in a repository, but don’t plan on making any changes to it. There’s usually no need to check the repository out. Press /to search all the code in the repository. If your search contains multiple words and you want to search for occurrences of your specific search query, put the quotations around the query. You can filter your searches by other things too, such as file size, extension, the path the file is on, and much more.

    Saved replies

    If you ever find yourself repeating the same comments, you’ll save some time by creating a saved reply. The next time you find you’re going to type that comment again, you can instead just select it from a drop-down menu: To perform the above action without using my mouse, I can do ctrl + / followed by ctrl+ 1.

    Conclusion

    Thanks for reading. I hope you found at least one thing on this page that will make you a more productive GitHub user. If you enjoyed this post or have any feedback in general, let me know!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 2019年1月24日:开源日报第322期

    24 1 月, 2019
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《来点音乐 awesome-music》
    今日推荐英文原文:《A.I. Demilitarisation Won’t Happen》

    今日推荐开源项目:《来点音乐 awesome-music》传送门:GitHub链接
    推荐理由:这个项目是一个关于音乐的各种方面的列表——音乐的编辑器,音乐的库,音乐的作曲工具,音乐的理论教学……如果你正好对音乐感兴趣的话,这个项目里肯定会有你感兴趣的东西。不管是想要作曲,学习理论或者是找一些库来用都是做得到的。或者说你也可以在最后找到一些关于音乐的其他列表,比如音频可视化这类的,兴许它们也能满足你的需要。
    今日推荐英文原文:《A.I. Demilitarisation Won’t Happen》作者:Josef Bajada
    原文链接:https://medium.com/@josef.bajada/a-i-demilitarisation-wont-happen-92bcf6d4bc7d
    推荐理由:相信大家都可能在各种科幻电影或者动漫中见过 AI 兵器了,兴许这样的事情会发生在未来

    A.I. Demilitarisation Won’t Happen

    Artificial Intelligence is already being integrated in next-generation defence systems, and its demilitarisation is highly unlikely. Restricting it from military use is probably anyway not the smartest strategy to pursue.

    Photo by Rostislav Kralik on Public Domain Pictures

    This year’s World Economic Forum’s annual meeting is about to start. While browsing through this year’s agenda, I couldn’t help but recall last year’s interview with Google’s CEO, Sundai Pichai, who was quite forthcoming and optimistic about how he envisages A.I. to change the fundamental ways of how humanity operates.

    Indeed, the automation of thinking processes, combined with high speed communication networks, instant availability of data, and powerful computation resources, has the potential to affect all mechanisms of society. A.I. will play a key role in the decision making, day-to-day running and automation of health, education, energy provision, law enforcement, economics, and governance, to name just a few.

    Like most other innovations, each technology advancement can be misused for evil purposes, and A.I. is no different. What scares most people is its elusive nature, being such a broad field, and playing a central role in so many science fiction plots that don’t end quite well.

    In his interview, Sundai tried to quell such concerns by proposing that countries should demilitarise A.I. Of course, one should take such comments in context. But expecting such a thing from all countries is like expecting mankind to stop doing war altogether.

    The reason I emphasise all, is because it just takes one country to create an imbalance. What if North Korea decides to integrate A.I. in its ICBMs for high precision autonomous guidance? Is it realistic to expect the U.S. to refrain from doing the same to counteract such threats? It is Mutual Assured Destruction all over again.

    In such a situation you can only achieve a nash equilibrium if both parties have more to lose when they adopt a more aggressive dominant strategy and the opponent retaliates. One would expect the CEO of one of the world’s largest A.I. focused companies to be at least aware of such a fundamental concept of Game Theory.

    Photo Credits Wikimedia Commons

    But of course Sundai is fully aware of this. His utopic vision of a harmonious inter-country peaceful collaboration for the application of A.I. is just playing to the tune of his employer’s agenda. Ironically, this took place at the start of the same year when its “don’t do evil” motto was removed, its own employees walked out in protest over its participation in military projects, and people started to get seriously concerned about the availability and misuse of their private information such as emails and mobile phone data.

    Maintaining a balance of power on opposing sides is already a good enough reason not to impose restraints on one side, without any concrete guarantees that the other side is actually doing the same. But here are some more reasons why A.I. demilitarisation will not happen, and why we probably do not really want it to happen in the first place.

    Funding

    Defence budgets drive a lot of research and innovation in western countries where having a strong military capability is considered critical. They don’t just fund the construction of missiles and stealth fighters. They support the development of ideas that often do not yet have any commercial business model yet, but are still worth having before competing nations do. Of course it is more likely that ideas with clear military application get funded from defence budgets. But technologies such as the Internet (originally ARPANET) and the Global Positioning System started as defence projects and eventually got released to the public.

    Autonomous vehicles may have become more popular due to Google’s self-driving car project (now Waymo), but in actual fact this was the result of a grand challenge by the US Defense Advance Research Projects Agency (DARPA). Google then recruited people from the team that won the 2005 challenge. DARPA also held a robotics challenge, with the objective of developing humanoid robots that are capable of performing dangerous tasks in environments that are too harmful for humans. One only needs to recall the Chernobyl and Fukushima disasters, and the consequences of people working in radioactive environments to deal with their aftermath, to realise how useful such a technology could be.

    JPL’s RoboSimian at the DARPA Robotics Challenge

    DARPA takes A.I. very seriously, and similarly other defence organisations such as BAE Systems and Thales. Expecting the military to fold its hand and distance itself from A.I. is plain unrealistic.

    A.I. Can Reduce Casualties (on both sides)

    One of the main concerns about the use of A.I. in the military is the development of killer robots. This is a legitimate concern that needs to be addressed through the right policies and treaties, although I doubt that if the technology components were available, any country would publicly admit to having autonomous weapons (until it is constrained to bring them out and use them). Furthermore, if it becomes possible for one nation to obtain such a technology, it is probably a very bad idea to leave the playing field unbalanced.

    Given that Artificial General Intelligence is still very far off, and a “Terminator-style” killer robot is unlikely, maybe we should focus more on the immediate benefits of A.I., such as Battlefield Intelligence. What if a soldier’s visor was equipped with augmented reality that uses A.I. to identify friend from foe, or civilian from threat, more accurately than an adrenaline pumped human fearing for his life? Autonomous armoured vehicles can be used for high risk missions, like delivering supplies through a hostile route, or extracting casualties from an active combat zone. Robots could accompany soldiers and assist them in investigating threats or carrying heavy equipment.

    Photo by Sgt. Eric Keenan

    What if missile guidance systems were equipped with on-board algorithms that verified their targets before detonation? “Surgical strikes” would just hit their intended targets, instead of causing collateral damage and innocent civilian deaths. What about smarter air defence systems that make use of A.I. to track and intercept incoming airborne threats, or even detect them before they are actually launched?

    A.I. is not Well Defined

    Most A.I. techniques involve crunching data streams, applying mathematical techniques such as calculus, probability and statistics, and putting them together using a handful of algorithms to arrive to a solution. There is nothing really cognitive, sentient or self-aware going on.

    Unlike nuclear weapons, where you can clearly determine whether a country has stockpiles or not (assuming you can find them), there is no clear way to classify the software technology that is integrated in the various defence systems. Furthermore, one can’t really expect the military to refrain from using the data and computing resources it has available to obtain faster, smarter, and machine-verified decision support, while the general public has it at their finger tips. A.I. demilitarisation is just not happening.
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 178 179 180 181 182 … 262
下一页→

Proudly powered by WordPress