Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Tech News - Application Development

279 Articles
article-image-net-core-3-0-and-net-framework-4-8-more-details-announced
Prasad Ramesh
05 Oct 2018
4 min read
Save for later

.NET Core 3.0 and .NET Framework 4.8 more details announced

Prasad Ramesh
05 Oct 2018
4 min read
.NET Core 3.0 was announced in May this year, it adds support for building desktop applications using WinForms, WPF, and Entity Framework 6. Updates to .NET Framework were also announced which enable use of new modern controls from UWP in existing WinForms and WPF applications. Now, more details are out on both of them. .NET Core 3.0 .NET Core 3.0 addresses three scenarios asked by the .NET framework developer community. Multiple versions of .NET on the same machine As of now, only one version of .NET Framework can be installed on a machine. An update to the .NET Framework poses a risk of a security fix, bug fix, or new API breaking applications on the machine. Now Microsoft aims to solve this problem by allowing multiple versions of .NET Core  to reside on one machine. The applications that need to be stable can be locked to one of the stable versions then later on be moved to use the newer version as it is ready. Embedding .NET directly into an application Since there can only be one version of .NET Framework on a machine, to take advantage of the latest framework or language features, the newer version needs to be installed. With .NET Core, you can now ship the framework as a part of an application. This enables developers to take advantage of the new features of the latest version without having to wait for the framework to install. Taking advantage of .NET Core features The side-by-side nature of .NET enables introduction of new innovative APIs and Base Class Library (BCL) improvements without the risk of breaking compatibility. WinForms and WPF applications on Windows can now take advantage of the latest .NET Core features. These features include more fundamental fixes for a better high-DPI support. .NET Framework 4.8 .NET Framework 4.8 also addresses three scenarios asked for by the .NET Framework developer community. Modern browser and media controls .NET desktop applications use the Internet Explorer and Windows Media Player for displaying HTML and playing media files. These legacy controls don’t show the latest HTML or play the latest media files. Hence, Microsoft is adding new controls to advantage of Microsoft Edge and newer media players thereby supporting the latest standards. Access to touch and UWP Controls The Universal Windows Platform (UWP) contains new controls to take advantage of the latest Windows features and the devices with touch displays. The code in your application does not have to be rewritten to use these new features and controls. Microsoft is going to make them available to WinForms and WPF enabling the developers to take advantage of these new features in the existing code of applications created. Improvements for high DPI The standard resolution of computer displays is steadily becoming 4K and now even 8K resolutions are available. WIth the newer versions WinForms and WPF applications will look great on these high resolution displays. The future of .NET .NET Framework is installed over one billion machines, hence even a security fix introducing a bug will affect a lot of devices. .NET Core is a fast-moving version of .NET. Because of its side-by-side nature it can take changes that can prove very risky in .NET Framework. Meaning, .NET Core is bound to get new APIs and language features over time that .NET Framework cannot. If your existing applications are on .NET Framework, there is no immediate need to move to .NET Core. For more details, visit the Microsoft Blog. .NET Core 2.0 reaches end of life, no longer supported by Microsoft .NET announcements: Preview 2 of .NET Core 2.2 and Entity Framework Core 2.2, C# 7.3, and ML.NET 0.5 Microsoft’s .NET Core 2.1 now powers Bing.com
Read more
  • 0
  • 0
  • 7208

article-image-qt-3d-studio-2-1-released-with-new-sub-presentations-scene-preview-and-runtime-improvements
Natasha Mathur
05 Oct 2018
3 min read
Save for later

Qt 3D Studio 2.1 released with new sub-presentations, scene preview, and runtime improvements

Natasha Mathur
05 Oct 2018
3 min read
The Qt team released Qt 3D Studio 2.1 earlier this week. Qt 3D Studio 2.1 explore features such as sub-presentations, scene preview, and runtime improvements. Qt 3D Studio 2.1 is a design tool that is used for creating 3D user interfaces as well as for adding 3D content into Qt-based applications. Qt 3D Studio helps with easily designing the 3D content look & feel, animations and user interface states. New Editor features There are two new features added in the Editor in Qt 3D Studio 2.1, namely, Sub-presentations and Scene Preview. Sub-presentations This feature provides an option to embed another Studio presentation or a QML file within a Studio presentation. For example, you can divide the design work into smaller projects and make reusable components. Managing the Sub-Presentations as well adding them into views is easy with the Qt 3D Studio 2.1. There’s a project browser option that shows all the Qt Quick files (.qml) as well as the Qt 3D Studio presentations (.uip) that have been imported to the main project. These files can then be added to a scene layer or as a texture to an object by dragging them from the project browser onto the scene. Sub-Presentations can now be easily viewed in the scene view allowing you to see the whole user interface while creating the design. Scene Preview Qt 3D Studio 2.1 release comes with a new option used for Scene Preview for times when you’re working with different camera views (perspective, top etc.). This is super handy when aligning objects in the scene. Runtime The runtime side in Qt 3D Studio 2.1 mainly focuses on performance and stability improvements. The Qt team is working on writing a new API that will help replace the old runtime in the Qt 3D Studio Editor. In the future releases, the new API will also be capable of performing dynamic content creation from the application side. Support for compressed textures which is already a feature in Qt 5.11 has been also added to the Qt 3D Studio runtime. So you can improve the loading time and also save memory in devices supporting  ETC2 or ASTC Compressed textures by compressing the textures. Asset compression management feature will also be added in the Editor side in the future releases of Qt 3D Studio. For more information, check out the official documentation. Qt Creator 4.7.0 releases! Qt for Python 5.11 released! WebAssembly comes to Qt. Now you can deploy your next Qt app in the browser
Read more
  • 0
  • 0
  • 2432

article-image-net-core-2-0-reaches-end-of-life-no-longer-supported-by-microsoft
Prasad Ramesh
04 Oct 2018
2 min read
Save for later

.NET Core 2.0 reaches end of life, no longer supported by Microsoft

Prasad Ramesh
04 Oct 2018
2 min read
.NET Core 2.0 was released mid August 2017. It has now reached end of life (EOL) and will no longer be supported by Microsoft. .NET Core 2.0 EOL .NET Core 2.1 was released towards the end of May 2018 and .NET Core 2.0 reached EOL on October 1. This was supposed to happen on September 1 but was pushed by a month since users experienced issues in upgrading to the newer version. .NET Core 2.1 is a long-term support (LTS) release and should be supported till at least August 2021. It is recommended to upgrade to and use .NET Core 2.1 for your projects. There are no major changes in the newer version. .NET Core 2.0 is no longer supported and updates won’t be provided. The installers, zips and Docker images of .NET Core 2.0 will still remain available, but they won’t be supported. Downloads for 2.0 will still be accessible via the Download Archives. However, .NET Core 2.0 is removed from the microsoft/dotnet repository README file. All the existing images will still be available in that repository. Microsoft’s support policy The ‘LTS’ releases contain stabilized features and components. They require fewer updates over their longer support release lifetime. The LTS releases are a good choice for applications that developers do not intend to update very often. The ‘current’ releases include features that are new and may undergo changes in the future based on feedback/issues. They give access to the latest features and improvements and hence are a good choice for applications in active development. Upgrades to newer .NET Core releases is required more frequently to stay in support. Some of the new features in .NET Core 2.1 include performance improvements, long term support, Brotli compression, and new cryptography APIs. To migrate from .NET Core 2.0 to .NET Core 2.1, visit the Microsoft website. You can read the official announcement on GitHub. Note: article amended 08.10.2018 - .NET Core 2.0 reached EOL on October 1, not .NET Core 2.1. The installers, zips and Docker images will still remain available but won't be supported, not unsupported. .NET announcements: Preview 2 of .NET Core 2.2 and Entity Framework Core 2.2, C# 7.3, and ML.NET 0.5 Microsoft’s .NET Core 2.1 now powers Bing.com Use App Metrics to analyze HTTP traffic, errors & network performance of a .NET Core app [Tutorial]
Read more
  • 0
  • 4
  • 5952
Visually different images

article-image-sourcegraph-a-code-search-and-navigation-engine-is-now-open-source
Natasha Mathur
03 Oct 2018
2 min read
Save for later

Sourcegraph, a code search, and navigation engine is now open source!

Natasha Mathur
03 Oct 2018
2 min read
The Sourcegraph team announced that they’re making Sourcegraph, a self-hosted code search and navigation engine, available as open source, earlier this week. “We opened up Sourcegraph to bring code search and intelligence to more developers and developer ecosystems—and to help us realize the Sourcegraph master plan,” writes Quinn Slack on the announcement page. This Sourcegraph master plan involves making basic code intelligence ubiquitous (for every language, and in every editor, code host, etc.). It wants to focus on making code review continuous and intelligent. Additionally, they also hope to increase the amount and quality of open-source code. Sourcegraph comprises the following features: Instant Code Search: Fast global code search with a hybrid backend. This combines a trigram index with in-memory streaming. You can search in files and diffs in your code by just using simple terms, regular expressions, and other filters. Code intelligence: It offers code intelligence for many languages using the Language Server Protocol. It also makes browsing code and finding references on your code easier. Data Center: Once you grow to hundreds or thousands of users and repositories, you can graduate from the single-server deployment to a highly scalable cluster using the Sourcegraph Data Center. Integrations: It offers Integration with third-party developer tools via the Sourcegraph Extension API. Organizations that are already using the Sourcegraph navigation engine can upgrade to Sourcegraph Enterprise (previously called Data Center) to get a hand on features that large organizations need such as single sign-on, backups, and recovery, cluster deployment, etc. However, these additional features that come with the Enterprise edition are paid and not open source. “We're also excited about what this means for Sourcegraph as a company. All of our customers, many with hundreds or thousands of developers using Sourcegraph internally every day, started out with a single developer spinning up a Sourcegraph instance and sharing it with their team. Being open-source makes it even easier to start using Sourcegraph in that way”, explained the announcement page. For more information, check out the official announcement. Facebook open sources LogDevice, a distributed data store for logs Kong 1.0 launches: the only open source API platform specifically built for microservices, cloud, and serverless Uber’s Marmaray, an Open Source Data Ingestion and Dispersal Framework for Apache Hadoop
Read more
  • 0
  • 0
  • 1957

article-image-facebook-is-the-new-cigarettes-says-marc-benioff-salesforce-co-ceo-2
Kunal Chaudhari
02 Oct 2018
6 min read
Save for later

“Facebook is the new Cigarettes”, says Marc Benioff, Salesforce Co-CEO

Kunal Chaudhari
02 Oct 2018
6 min read
So, it was that time of the year when Salesforce enthusiasts, thought-leaders, and pioneers gathered around downtown San-Francisco, to attend the annual Dreamforce conference last week. This year marked the 15th anniversary of the Salesforce annual conference with over 100,000 trailblazers flocking towards the bay area. Throughout these years, technological development in the platform has been the focal point of these conferences, but it was different this time around. A lot has happened between the conference that took place in 2017 and now, especially after Facebook’s Cambridge analytica scandal. First Whatsapp’s co-founder Jan Koum parted ways with Facebook, and now the Instagram co-founders have called it quits. Interestingly, Marc Benioff gave an interview to Bloomberg Technology in which he condemned Facebook as the ‘new cigarettes’. To regulate or not to regulate, that is the question Marc Benioff has been a vocal criticizer of the social media platform. Earlier this year, when innovators and tech leaders gathered at the annual World Economic Forum in the Swiss Alps of Davos, Benioff was one of the panelist discussing on the factors of trust in technology where he made certain interesting points. He took the examples of financial industry a decade ago, where bankers were pretty confident that new products like credit default swaps (CDS), and collateralized debt obligation (CDO) would lead to better economic growth but instead it lead to the biggest financial crisis the world had ever seen. Similarly, he argued that Cigarettes were introduced as this great product for pass time, without any background on its adverse effects on health. Well to the cut the story short, the point that Benioff was trying to make is that these industries were able to take advantage of the addictive behavior of humans because of the clear lack of regulation from the governmental bodies. It was only when the regulators became strict towards these sectors and public reforms came into the picture, these products were brought under control. Similarly, Benioff had called for a regulation of companies, on behalf of the recent news linking the Russian interference in the US presidential elections. He urged the CEO’s of companies to take better responsibilities towards their consumers and their products without explicitly mentioning any name. Let’s take a guess, Mark Zuckerberg anyone? While Benioff made a strong case for regulation, the solution seemed to be more politically driven. Rachel Botsman, Visiting Academic and Lecturer at the Saïd Business School, University of Oxford, argued that regulators are not aware of the new decentralized nature of today’s technological platforms. And ultimately who do we want as the arbiters of truth, should it be Facebook, Regulators, or the Users? and where does the hierarchy of accountability lie in this new structure of platforms? The big question remains. The ethical and humane side of technology Fast forward to Dreamforce 2018, with star-studded guest speakers ranging from the former American Vice President Al Gore to Andre Iguodala of the NBA’s Golden State Warriors. Benioff started with his usual opening keynote but this time with a lot of enthusiasm, or as one might say in a full evangelical mode, the message from the Salesforce CEO was very clear, “We are in the fourth industrial revolution”. Salesforce announced plenty of new products and some key strategic business partnerships with the likes of Apple and AWS now joining Salesforce. While these announcements summarized the technological advancements in the platform, his interview with Bloomberg Technology’s Emily Chang was quite opportunistic. The interview started casually with talks of Benioff sharing his job with the new Co-CEO Keith Block. But soon they discussed the news about Instagram founders Kevin Systrom and Mike Krieger leaving the services of parent company Facebook. While Benioff still maintained his position on regulation, he also discussed about the ethics and humane side of technology. The ethics of technology has come under the spotlight in the recent months with the advancements in Artificial intelligence. In order to solve these questions, Benioff said that Salesforce has taken its first step by setting up the “Office of Ethical and Humane Use of Technology” at the Salesforce Tower in San Francisco. At first, this initiative looks like a solid first step towards solving the problem of technology being used for unethical work. But going back to the argument posed by Rachel Botsman, who actually leverages technology to do unethical work? Is it the Company or the consumer? While Salesforce boasts about its stand on the ethics of building a technological system, Marc Benioff is still silent on the question of Salesforce’s ties with the US Customs and Border Protection (CBP) agency, which follows Donald Trump’s strong anti-immigration agenda. Protesters took a stand against this issue during the Salesforce conference and hundreds of employees from Salesforce wrote an open letter to Benioff to cut ties with the CBP. In return, Benioff responded that its contract with CBP does not deal directly with the separation of children at the Mexican borders. One decision at a time Ethics is largely driven by human behavior, while innovators believe that technological advancements should happen regardless of the outcome, it is the responsibility of every stakeholder in the company, be it a developer, an executive, or a customer to take action against unethical work. And with each mistake, companies and CEOs are provided with opportunities to set things right. Take McKinsey & Company for example. The top management consultancy was under fire due to its scandal in the South African government. But when the firm again came under scrutiny with its ties with the CBP of USA, McKinsey’s new managing partner, Kevin Sneader, came out saying that the firm “will not, under any circumstances, engage in any work, anywhere in the world, that advances or assists policies that are at odds with our values.” It’s now time for companies like Facebook and Salesforce to set the benchmark for the future of technology. How far will Facebook go to fix what it broke: Democracy, Trust, Reality SAP creates AI ethics guidelines and forms an advisory panel The Cambridge Analytica scandal and ethics in data science Introducing Deon, a tool for data scientists to add an ethics checklist The ethical dilemmas developers working on Artificial Intelligence products must consider Sex robots, artificial intelligence, and ethics: How desire shapes and is shaped by algorithms
Read more
  • 0
  • 0
  • 2789

article-image-openmp-libc-and-libcabi-are-now-part-of-llvm-toolchain-package
Bhagyashree R
27 Sep 2018
2 min read
Save for later

OpenMP, libc++, and libc++abi, are now part of llvm-toolchain package

Bhagyashree R
27 Sep 2018
2 min read
On Tuesday, LLVM announced that starting from LLVM 7, the packages libc++, libc++abi, and OpenMP are integrated into llvm-toolchain. Integration of these libraries was a project proposed in the Google Summer of Code 2018. Warnings and usage of the libc++* and OpenMP packages libc++* packages The libc++ and libc++abi packages that are currently present in Debian and Ubuntu repositories will not be affected, but they will be removed in the later versions. Also, the newly integrated libcxx* packages are not co-installable with them. To keep the library usage same as before, symlinks are provided from the original locations. For example, from /usr/lib/x86_64-linux-gnu/libc++.so.1.0 to /usr/lib/llvm-7/lib/libc++.so.1.0. The usage of libc++ is as follows: $ clang++-7 -std=c++11 -stdlib=libc++ foo.cpp $ ldd ./a.out|grep libc++   libc++.so.1 => /usr/lib/x86_64-linux-gnu/libc++.so.1 (0x00007f62a1a90000)   libc++abi.so.1 => /usr/lib/x86_64-linux-gnu/libc++abi.so.1 (0x00007f62a1a59000) OpenMP packages Though OpenMP has been a part of Debian and Ubuntu archives, only one version was supported on the system. To address this, OpenMP is integrated with the llvm-toolchain. Similar to libc++, to keep the current usage same, the newly integrated package creates a symlink from /usr/lib/libomp.so.5 to /usr/lib/llvm-7/lib/libomp.so.5. It can be used with clang through -fopenmp flag: $ clang -fopenmp foo.c The dependency packages that provide the default libc++* and OpenMP package are also integrated into llvm-defaults. Using the following command you will able to install the current version of all these packages: $ apt-get install libc++-dev libc++abi-dev libomp-dev To get more clarity on the integration of libc++* and OpenMP in llvm-toolchain, check out their announcement on LLVM’s site. LLVM 7.0.0 released with improved optimization and new tools for monitoring Boost 1.68.0, a set of C++ source libraries, is released, debuting YAP! Will Rust Replace C++?
Read more
  • 0
  • 0
  • 3339
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €14.99/month. Cancel anytime
article-image-java-11-is-here-with-tls-1-3-unicode-11-and-more-updates
Prasad Ramesh
26 Sep 2018
3 min read
Save for later

Java 11 is here with TLS 1.3, Unicode 11, and more updates

Prasad Ramesh
26 Sep 2018
3 min read
After the first release candidate last month, Java 11 is now generally available. The GA version is the first release with long-term support (LTS). Some of the new features include nest-based access control, a new garbage collector, support for Unicode 11 and TLS 1.3. New features in Java 11 Some of the new features in Java 11 include nest-based access control, dynamic class-file constants, a no-op garbage collector called Epsilon and more. Let’s look at these features in detail. Nest-based access control ‘Nests’ are introduced as an access control context that aligns with the existing nested types in Java. Classes that are logically part of the same code but are compiled to distinct files can access private members with nests. It eliminates the need for compilers to insert bridge methods. Two members in a nest are described as ‘nestmates’. Nests do not apply to large scales of access control like modules. Dynamic class-file constants The existing Java class-file format is extended to support a new constant-pool form called CONSTANT_Dynamic. Loading this new form will delegate its creation to a bootstrap method in the same way linking an invokedynamic call site delegates linkage to a bootstrap method. The aim is to reduce the cost and disruption of creating new forms of materializable class-file constants giving broader options to language designers and compiler implementors. Epsilon, a no-op garbage collector Epsilon is a new experimental garbage collector in Java 11 that handles memory allocation but does not actually reclaim any memory. It works by implementing linear allocation in a single contiguous chunk memory. The JVM will shut down when the available Java heap is exhausted. Added support for Unicode 11 Java 11 brings Unicode 11 support to existing platform APIs. The following Java classes are mainly supported with Unicode 10: In the java.lang package: Character and String In the java.awt.font package: NumericShaper In the java.text package: Bidi, BreakIterator, and Normalizer This upgrade includes Unicode 9 changes and adds a total of 16,018 characters and ten new scripts. Flight recorder The flight recorder in Java 11 is a data collection framework for troubleshooting Java applications and the HotSpot JVM. It has a low overhead. TLS  1.3 TLS 1.3 was recently standardized and is the latest version of the Transport Layer Security protocol. TLS 1.3 is not directly compatible with the previous versions. The goal here is not to support every feature of TLS 1.3. Features deprecated Some of the features are also removed from Java 11. Applications depending on Java EE and COBRA modules need to explicitly call these modules. The Nashorn JavaScript Engine, Pack200 Tools and API have all been deprecated. For a complete list of features and deprecations, visit the JDK website. Oracle releases open source and commercial licenses for Java 11 and later JEP 325: Revamped switch statements that can also be expressions proposed for Java 12 No more free Java SE 8 updates for commercial use after January 2019
Read more
  • 0
  • 0
  • 6168

article-image-gitlab-11-3-released-with-support-for-maven-repositories-protected-environments-and-more
Prasad Ramesh
24 Sep 2018
2 min read
Save for later

GitLab 11.3 released with support for Maven repositories, protected environments and more

Prasad Ramesh
24 Sep 2018
2 min read
GitLab 11.3 was released on Saturday with support for Maven repositories, Code Owners, Protected Environments and other changes. These new added features help in automation of controls around environments and code while also providing further efficiencies for Java developers. Maven repositories in GitLab 11.3 Maven repositories are now directly available in GitLab. This gives Java developers a secure, standardized way to share version control in Maven libraries. It also saves time by reusing these libraries across projects but it is available only on GitLab premium. Lower-level services can now have their packaged libraries published to their project’s Maven repository. They can share a simple XML snippet with other teams to utilize the library while Maven and GitLab do the rest. Code owners and protected environments GitLab Starter now supports assignment of Code Owners to files indicating the appropriate team members contributing to the code. This is a primer for future releases, which will enforce internal controls at the code level. Operators can also use Protected Environments for setting permissions to determine which users can deploy code to production environments. This significantly reduces the risk of an unintended commit. This feature is also available only on premium. Epic forecasting with integrated milestone dates The new Portfolio Management feature in GitLab Ultimate forecasts an epic's start and end dates automatically based on the milestone dates of its issues. Portfolio managers will be able to compare their planned start and end dates against the scheduled work enabling faster decisions on delivery and plan adjustments. In older versions, fixed values could be set for the planned start and end dates of an epic. This was useful for high-level planning of epics. However, as issues are attached to the epic and the issues are scheduled for work with actual milestones, it is useful to have epic dates reflecting those milestones. In this version, the static values for the dates can be changed to a dynamic value called ‘From milestones’. The dynamic version of epic planned end dates are analogous. This is a useful feature to have if you want seamless transition from high-level, top-down planning to micro-level, and bottom-up planning. For more information, visit the GitLab website. GitLab raises $100 million, Alphabet backs it to surpass Microsoft’s GitHub Gitlab 11.2 releases with preview changes in Web IDE, Android Project Import and more GitLab is moving from Azure to Google Cloud in July
Read more
  • 0
  • 0
  • 2010

article-image-golang-plans-to-add-a-core-implementation-of-an-internal-language-server-protocol
Prasad Ramesh
24 Sep 2018
3 min read
Save for later

Golang plans to add a core implementation of an internal language server protocol

Prasad Ramesh
24 Sep 2018
3 min read
Go, the popular programming language is adding an internal language server protocol (LSP). This is expected to bring features like code autocompletion and diagnostics available in Golang. LSP is used between a user and a server to integrate features such as autocomplete, go to definition, find all references and alike into the tool. It was created by Microsoft to define a common language for enabling programming language analyzers to communicate. It is growing in popularity with adoption from companies like Codenvy, Red Hat, and Sourcegraph. There is also a rapidly growing list of editor and language communities supporting LSP. Golang already has a language server available on GitHub. This version has support for Hover jump to def, workspace symbols, and find references. But, it does not support code completion and diagnostics. Sourcegraph CEO Quinn Slack stated in a comment on Hacker News: “The idea is that with a Go language server becoming a core part of Go, it will have a lot more resources invested into it and it will surpass where the current implementation is now.” The Go language server made by Sourcegraph available currently on GitHub is not a core part of Golang. It uses tools and custom extensions not maintained by the Go team. The hope is that the core LSP implementation will be good enough and that SourceGraph can re-use this implementation in the future to bring down the number of implementations to just one. Slack said in a comment that they are very happy with this implementation: “We are 10,000% supportive of this, as we've discussed openly in the golang-tools group and with the Go team. The Go team was commendably empathetic about the optics here, and we urged them very, very, very directly to do this.” This core implementation of LSP by the Golang team is also beneficial for Sourcegraph from a business perspective. Sourcegraph sells a product that lets you search and browse all your code, which involves using language servers for certain features like hovers, definitions and references. Since the core work will be done by the Golang team, Sourcegraph won’t have to invest more time into building their implementation of Go language server. For more information, visit the Googlesource website. Golang 1.11 is here with modules and experimental WebAssembly port among other updates Why Golang is the fastest growing language on GitHub Go 2 design drafts include plans for better error handling and generics
Read more
  • 0
  • 0
  • 7637

article-image-meet-sublime-merge-a-new-git-client-from-the-makers-of-sublime-text
Prasad Ramesh
21 Sep 2018
3 min read
Save for later

Meet Sublime Merge, a new Git client from the makers of Sublime Text

Prasad Ramesh
21 Sep 2018
3 min read
The makers of Sublime Text have released a new Git client yesterday. Called Sublime Merge, this tool combines the user interface of Sublime Text, with a from-scratch implementation of Git. The result is a Git client with a better and familiar interface. Sublime Merge has no time limit, no metrics, and with no tracking done on your usage. It has two themes, light and dark. The evaluation version is fully functional, but does not have the dark theme. You don’t need an account for the evaluation version. Here are some of the features of Sublime Merge. An integrated merge tool An integrated merge tool allows resolving conflicts in Sublime Merge itself instead of having to open another editor. There is a 3-pane view for viewing conflicts. The changes done by you are on the left, and by others, on the right. The resolved text is displayed on a pane in the center with buttons to choose between what changes to accept. Advanced diffs For cases where necessary, Sublime Merge will display exactly which individual characters have been changed for a commit. This includes renames, moves, resolving conflicts or just looking at the commit history. It can be done simply by selecting any two commits in Sublime Merge with Ctrl+Left Mouse to show the diff between them. Key bindings There are also good keyboard usability options. The Tab key can be used to navigate through different parts of the application. Space bar can toggle expansion, and Enter can stage/unstage hunks. The Command Palette allows quick access to a large set of Git commands and is triggered by Ctrl+P. Command line integration Sublime Merge will work hand-in-hand with the command line. All repository changes are updated live and things work the same from the command line as they would from the UI. So either the GUI or the command line can be used for different functions, the choice is yours. The smerge tool that comes with Sublime Merge can be used to open repositories, blame files, and search for commits. Advanced search Sublime Merge features find-as-you-type search to find the commit with exact matches. You can search for commit messages, commit authors, file names, and even wildcard patterns. Complex search queries can also be constructed using ‘and’, ‘or’, and ‘()’ symbols for deep searches within folders. Use of real Git Working with Sublime Merge means you're working with the real Git, and not just a simplified version. Hovering over the buttons will show you which command it will run. Sublime Merge uses the same lingo as Git, and it doesn't make use of any state beyond Git itself. It uses a custom implementation of Git for reading repositories that drives high performance functionalities. However, Git itself, is directly used in Sublime Merge for repository mutating operations like staging, committing, checking out branches, etc. Downloads and licence Individual licences are lifetime with three years of updates included. For business licenses, subscription is available. Sublime Merge is in its early stages and has only been used by the makers and a small team of beta testers. Now they have invited other users to try it as well. You can download and read more about the Git Client from the Sublime Merge website. TypeScript 3.0 is finally released with ‘improved errors’, editor productivity and more GitHub introduces ‘Experiments’, a platform to share live demos of their research projects Packt’s GitHub portal hits 2,000 repositories
Read more
  • 0
  • 0
  • 6904
article-image-llvm-7-0-0-released-with-improved-optimization-and-new-tools-for-monitoring
Prasad Ramesh
20 Sep 2018
3 min read
Save for later

LLVM 7.0.0 released with improved optimization and new tools for monitoring

Prasad Ramesh
20 Sep 2018
3 min read
LLVM is a collection of tools used to develop compiler front ends and back ends. LLVM 7.0.0 has now been released with new tools and features such as performance measurement, optimization and others. The Windows installer in LLVM 7.0.0 no longer includes a Visual Studio integration. Now, there is a new LLVM Compiler Toolchain Visual Studio extension on the Visual Studio Marketplace. This new integration method supports Visual Studio 2017. The libraries are renamed from 7.0 to 7. Note that this change also impacts downstream libraries like lldb. The LoopInstSimplify pass (-loop-instsimplify) is removed in this release. When using Windows x or w IR mangling schemes, symbols starting with ? are no longer mangled by LLVM. A new tool called llvm-exegesis has been added. This new tool automatically measures instruction scheduling properties and provides a principled way to edit scheduling models. Another new tool llvm-mca is a static performance analysis tool that uses information to statically predict the performance of machine code for a specific CPU. The optimization of floating-point casts is also improved. It provides optimized results for code that relies on the undefined behavior of overflowing casts. The optimization feature is on by default and can be disabled by specifying a function attribute: "strict-float-cast-overflow"="false" This attribute can be created by the clang option -fno-strict-float-cast-overflow. To detect affected patterns code sanitizers can be used. The clang option for detecting only this problem alone is -fsanitize=float-cast-overflow. A demonstration is as follows: int main() {  float x = 4294967296.0f;  x = (float)((int)x);  printf("junk in the ftrunc: %f\n", x);  return 0; } And the clang options is run: clang -O1 ftrunc.c -fsanitize=float-cast-overflow ; ./a.out ftrunc.c:5:15: runtime error: 4.29497e+09 is outside the range of representable values of type 'int' junk in the ftrunc: 0.000000 LLVM_ON_WIN32 is no longer set by files in llvm/Config/config.h and llvm/Config/llvm-config.h. If you have used this macro before, now use the compiler-set _WIN32 instead, which is set exactly when LLVM_ON_WIN32 used to be set. The DEBUG macro has been renamed to LLVM_DEBUG, but the interface remains the same. SmallVector<T, 0> is shrunk from sizeof(void*) * 4 + sizeof(T) to sizeof(void*) + sizeof(unsigned) * 2. It is smaller than std::vector<T> on 64-bit platforms. The maximum capacity for it is now restricted to UINT32_MAX. Experimental support is added for DWARF v5 debugging. This includes the new .debug_names accelerator table. The opt tool supports the -load-pass-plugin option to load pass plugins for the new PassManager. Support is added for profiling JIT-ed code with perf. In LLVM 7.0.0 support for the .rva assembler directive for COFF targets is added. For Windows, the llvm-rc tool has also received minor upgrades. There are still some known missing features but it should be usable in most cases. On request, CodeView debug info can now be emitted for MinGW configurations. There are also changes to variety of targets like AArch64 Target, ARM, x86 among others. For a complete list of updates, visit the LLVM website. JUnit 5.3 brings console output capture, assertThrow enhancements and parallel test execution Mastodon 2.5 released with UI, administration, and deployment changes ReSharper 18.2 brings performance improvements, C# 7.3, Blazor support and spellcheck
Read more
  • 0
  • 0
  • 3178

article-image-electron-3-0-0-releases-with-experimental-textfield-and-button-apis
Natasha Mathur
19 Sep 2018
2 min read
Save for later

Electron 3.0.0 releases with experimental textfield, and button APIs

Natasha Mathur
19 Sep 2018
2 min read
The Electron team announced the first stable release Electron 3.0.0, yesterday. Electron 3.0.0 comes with upgrades, fixes, and other changes. Electron is a framework which helps create native cross-platform applications with web technologies such as JavaScript, HTML, and CSS. Let’s see what’s new in Electron 3.0.0. New Features and changes There are two new features added in Electron 3.0.0, namely, TextField and Button APIs. However, these APIs are currently experimental and have been therefore turned off by default. You can enable these APIs with the enable_view_api build flag. The fs.readSync feature now works with massive files.  There’s a new netLog API added for dynamic logging control. Breaking API changes With Electron 3.0.0, updates have been made to menu item order control. The did-get-response-details and did-get-redirect-request events have been removed. JSON is no longer used to send the result of ipcRenderer.sendSync. The api::Window has been renamed to api::BrowserWindow. The app-command media-play_pause has been renamed to media-play-pause. macOS A new workspace notifications support has been added. There’s also a mouse forward functionality now on macOS. Windows A DIP has been added to/from screen coordinate conversions. Bug Fixes The issue with fs.statSyncNoException throwing exceptions has been fixed. The occurrence of a crash when loading site with jquery has been fixed. Also, the crash in net::ClientSocketHandle destructor has been fixed. Now, with Electron 3.0.0, the focus change will be notified right away rather than on next tick. macOS The context menu click callback has been fixed. The tray.setContextMenu crash has been resolved. Also, tray title crash has been fixed. The mac protocol that used to get set to none after calling app.removeAsDefaultProtocolClient, is resolved. Linux BrowserWindow.focus() for offscreen windows has been fixed. For more information on Electron 3.0.0, check out the official release notes. How to build a cross-platform desktop application with Node.js and Electron How to build a desktop app using Electron Web Scraping with Electron
Read more
  • 0
  • 0
  • 2640

article-image-junit-5-3-brings-console-output-capture-assertthrow-enhancements-and-parallel-test-execution
Prasad Ramesh
12 Sep 2018
2 min read
Save for later

JUnit 5.3 brings console output capture, assertThrow enhancements and parallel test execution

Prasad Ramesh
12 Sep 2018
2 min read
A new version of JUnit v5.3 was released last week. There are some changes and new features like parallel test execution, enhancements to AssertThrows, and others in this new version. JUnit is a popular unit testing framework for the Java which has been instrumental to the rise of test-driven development. Below are some of the key highlights of JUnit 5.3. Capturing output from a console It is now possible to capture System.out and System.err output using a TestExecutionListener in Junit 5.3. Capturing console output may not be a frequent need, but can become necessary in some cases such as when working on legacy code bases where statements are being written to console and viewing them can be useful. There are two steps to get this working, implementing a TestExecutionListener and configuring surefire to start capturing console output. Enhancements to AssertThrows The assertThrows assertion is updated to display the value a method returns. This works only if the method runs successfully and returns a value and no exception is thrown. It can be helpful for debugging a failing test case. Parallel test execution Parallel test execution is now enabled and can be configured via build files. This can be a pom.xml, build.gradle etc. The parallel test execution behavior can be changed at both, method and class levels with the annotations: @Execution and @ResourceLock. For detailed information on configuring and using parallel test execution in JUnit 5, check out the user guide. Other changes There are also some libraries and tools updated that are used with JUnit like filtering changes with native support, enhanced mockito dependency injection support, updates to AssertJ Soft Assertions and opentest4J. JUnit 5.3.1 was released on September 9, shortly after JUnit 5.3 and there are some minor fixes. There is another major change where variants of assertThrows() introduced in JUnit 5.3.0 that accepted ThrowingSupplier arguments are now removed. For a full list of bug fixes and changelogs, visit the JUnit website and to learn how to use the features, check out the user guide. Unit testing with Java frameworks: JUnit and TestNG [Tutorial] Unit Testing Apps with Android Studio Unit Testing in .NET Core with Visual Studio 2017 for better code quality
Read more
  • 0
  • 0
  • 4592
article-image-gnu-nano-3-0-released-with-faster-file-reads-new-shortcuts-and-usability-improvements
Prasad Ramesh
10 Sep 2018
2 min read
Save for later

GNU nano 3.0 released with faster file reads, new shortcuts and usability improvements

Prasad Ramesh
10 Sep 2018
2 min read
GNU nano 3.0 was released this Sunday. Linux Terminal nano is a popular text based editor. While veteran users may prefer vim, nano is simpler to use and beginner friendly. It is also easier to save and exit from a file on nano, unlike Vim. Termed as "Water Flowing Underground", nano 3.0 sees improvements in speed, usability, and improvements. The major improvements include: Faster file reading by upto 70 percent Roughly twice the speed for ASCII text handling New shortcuts; Ctrl+Delete deletes the previous word and Ctrl+Shift+Delete deletes the previous word Various key bindings like M-Q to find previous, tabs to spaces toggle is placed on M-O, the toggle for more space is removed completely On opening multiple files, the correct number of lines are shown on the status bar The formatter command and searchagain function is removed, M-W is now bound to findnext by default The No-Convert toggle is now under the Insert menu The Backup and New-Buffer toggles are removed from the main menu, but remain on the Write-Out and Insert menus Higher precision in accepting a rebindable key name Any Esc key pressed before a valid command keystroke is ignored More escape sequences are recognized rcfile error messages on a Linux console are not hidden now The ‘copytext’ function is now ‘copy’ and ‘uncut’ is now ‘paste’ There are also improvements made to avoid a hang while performing a full-justify on text Nano is the default text editor on many popular Linux distributions and is preinstalled. For nano 3.0 your Linux distribution will update it. It will take some time before you’ll see this in your system updates. These are the major changes in GNU nano 3.0. For a full list and a changelog and bug fixes, visit the GNU website. GIMP gets $100K of the $400K donation made to GNOME GNOME 3.30 released with improved Desktop performance, Screen Sharing, and more Is Linux hard to learn?
Read more
  • 0
  • 0
  • 2429

article-image-intellij-idea-2018-3-early-access-program-is-now-open
Natasha Mathur
07 Sep 2018
5 min read
Save for later

IntelliJ IDEA 2018.3 Early Access Program is now open!

Natasha Mathur
07 Sep 2018
5 min read
JetBrains announced on Wednesday that they’re starting an Early Access Program (EAP) for their popular IDE IntelliJ IDEA 2018.3. The IntelliJ IDEA 2018.3 EAP explores features such as better IDE navigation, revamped plugin preferences page, Run Anything, and multiline TODO comments among others. You can download the IntelliJ IDEA 2019.3 EAP with the help of Toolbox App. Let’s discuss the key features in IntelliJ IDEA 2018.3 EAP. Better IDE navigation The IntelliJ IDEA 2018.3 offers better IDE navigation with an all-new Search Everywhere dialog. The new search dialog has an enhanced UI which is resizable and movable. It comprises of Go to class, Go to file, Go to symbol, and Find action. This new feature has made the search process faster. Run Anything dialog There’s a new Run Anything action in IntelliJ IDEA 2018.3. Run Anything lets you run a command in the IDE, launch any run configuration, and run any terminal commands. This dialog allows you to select a recent command, a preconfigured run configuration and reopen recent projects. With the Run Anything dialog, you can hold down the Shift key to switch to the Debug Anything mode, which allows you to run a debug configuration. Multiline TODO comments There’s an added support for multiline TODO comments in IntelliJ IDEA 2018.3 EAP. Earlier, only the first line of a multiline TODO comment was handled as a todo comment. Now, the first line along with all the other todo comment lines can be highlighted in the editor and listed in the TODO Tool Window. Plugins page Now there’s a new Plugins page in Preferences/Settings, making it easier to manage, install, uninstall, and update plugins. You can now search for plugins by name or tags, and sort the results by downloads, name, rating, featured, or updates. Additionally, you can also view the new and updated plugins, top downloaded plugins, as well as top-rated plugins. Installed Tab allows you to check all the downloaded and bundled plugins in different areas.  You can view all the plugins that need to be updated in the Updates tab. Structural Search There’s a new simplified Structural Search & Replace dialogs in IntelliJ IDEA 2018.3. Structural Search comes with a drop-down menu under the search icon to display the search history. There’s also a Scope configuration which is easier and more flexible. Editing variables/filters is possible with the help of Structural Search & Replace dialogs. The Edit Variables dialog is replaced by a Filters panel. JVM Debugger IntelliJ IDEA 2018.3 comes packed with various debugger improvements. You can now see all the available processes for attaching in the “Attach with Java Debugger To” action list. Now, there’s a new Auto restart option for the remote debug configurations so the IDE can automatically restart a configuration while debugging a remote process. Maven You can now delegate all your build and run actions to Maven in IntelliJ IDEA 2018.3. To enable the new option, delegate the IDE build/run actions to maven, by going to Preferences / Settings | Build, Execution, Deployment | Build Tools | Maven | Runner. Editor There’s now a way to configure the default indent in projects on the Tabs and Indents tab in Preferences / Settings | Editor | Code Style | Java. There’s also a newly added status bar indicator which points out if the current file indentation differs from the project’s default. To choose actions that control the current indentation, there’s a status bar popup. Java There are a lot of new Java inspections and quick-fixes in the IntelliJ IDEA 2018.3 EAP. The inspection support for Java Stream API has been improved.  IntelliJ IDEA is now capable of detecting cases where redundant sorted calls are made before the subsequent min call. You can quickly remove the unnecessary sorted call with the new IDE. You can convert streams into loops when the downstream collector is collection-based (toSet/toList/toMap/toCollection/groupingBy) and can be processed by itself. Also, to completely remove static import, use * and add qualifiers to the usages in the code instead. Run Configurations There’s an added support for macros in run configurations. Currently, the IDE supports only the “Application” and “npm” run configurations. You can use text/log file as input by enabling the Redirect input in the Run/Debug Configurations dialog, After this, simply specify the path to the file which has the input data. Version Control Earlier, the IDE only showed file history up to the selected commit. With InteliJ IDEA 2018.3 EAP, it can now display the full history. You simply need to switch “Show All Branches” on the toolbar. This step is particularly useful in case the file gets deleted later. Other than that, you can now ignore the whitespace changes while merging with a new ignore Whitespaces option. It also comes with a new Ignore drop-down menu with options to hide or trim whitespace changes that occur on merge. You can also copy a file easily from one Git branch to another. For more information, check out the official IntelliJ IDEA 2018.3 EAP documentation. Reading Next What’s new in IntelliJ IDEA 2018.2 How to set up the Scala Plugin in IntelliJ IDE [Tutorial] How to work with the Selenium IntelliJ IDEA plugin
Read more
  • 0
  • 0
  • 3150