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
Explore 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 - Programming

573 Articles
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
  • 18623

article-image-microsoft-releases-cascadia-code-version-1909-16-it-is-the-latest-monospaced-font-for-windows-terminal-and-visual-studio-code
Amrata Joshi
19 Sep 2019
2 min read
Save for later

Microsoft releases Cascadia Code version 1909.16, the latest monospaced font for Windows Terminal and Visual Studio Code

Amrata Joshi
19 Sep 2019
2 min read
Yesterday the team at Microsoft released Cascadia Code version 1909.16, the latest monospaced font for command-line applications like Windows Terminal and code editors like Visual Studio Code. This year in May, the team announced about this font at the Microsoft Build conference. Cascadia Code version 1909.16 is now publicly available on GitHub and developers can contribute to the font on GitHub. This code is licensed under the SIL Open Font license on GitHub. Cascadia Code supports programming ligatures that are used while writing codes as they can create new glyphs by combining characters. These ligatures make the code more readable and user-friendly. The name “Cascadia Code” comes from the Windows Terminal project. The codename for Windows Terminal was Cascadia before it was released. https://twitter.com/cinnamon_msft/status/1130864977185632256 The official post reads, “As an homage to the Terminal, we liked the idea of naming the font after its codename. We added Code to the end of the font name to help indicate that this font was intended for programming. Specifically, it helps identify that it includes programming ligatures.” Users can install Cascadia Code font from the GitHub repository’s releases page or receive it in the next update of Windows Terminal. Users are overall excited about this news and they are liking the fact that even the official announcement blog post is using the Cascadia Code font. They are also appreciating the team for adding support for programming ligatures. https://twitter.com/bitbruder/status/1174432721038389253 https://twitter.com/singhkays/status/1174541216261652482 https://twitter.com/FiraCode/status/1174608467442720768 A user commented on HackerNews, “I really like this. Feels easy on the eyes (at least to me). I've used Fira Code for as long as I can remember, but going to give this a go!” Other interesting news in programming DevOps platform for coding, GitLab reached more than double valuation of $2.75 billion than its last funding and way ahead of its IPO in 2020 Microsoft open-sources its C++ Standard Library (STL) used by MSVC tool-chain and Visual Studio Linux 5.3 releases with support for AMD Navi GPUs, Zhaoxin x86 CPUs and power usage improvements    
Read more
  • 0
  • 0
  • 18614

article-image-git-2-23-released-with-two-new-commands-git-switch-and-git-restore-a-new-tutorial-and-much-more
Amrata Joshi
19 Aug 2019
4 min read
Save for later

Git 2.23 released with two new commands ‘git switch’ and ‘git restore’, a new tutorial, and much more!

Amrata Joshi
19 Aug 2019
4 min read
Last week, the team behind Git released Git 2.23 that comes with experimental commands, backward compatibility and much more. This release has received contributions from over 77 contributors out of which 26 were new. What’s new in Git 2.23? Experimental commands This release comes with a new pair of experimental commands, git switch and git restore for providing a better interface for the git checkout.  “Two new commands "git switch" and "git restore" are introduced to split "checking out a branch to work on advancing its history" and "checking out paths out of the index and/or a tree-ish to work on advancing the current history" out of the single "git checkout" command,” the official mail thread reads.  Git checkout can be used to change branches with git checkout <branch>. In case if the user doesn’t want to switch branches, git checkout can be used to change individual files, too. These new commands aim to separate the responsibilities of git checkout into two narrower categories that is operations, which change branches and operations that change files.  Backward compatibility  The "--base" option of "format-patch" is now compatible with "git patch-id --stable".  Git fast-export/import pair The "git fast-export/import" pair will be now used to handle commits with log messages in encoding other than UTF-8. git clone --recurse-submodules "git clone --recurse-submodules" has now learned to set up the submodules for ignoring commit object names that are recorded in the superproject gitlink. git diff/grep The pattern "git diff/grep" that is used for extracting funcname and words boundary for Rust has now been added. git fetch" and "git pull The commands "git fetch" and "git pull" are used to report when a fetch results in non-fast-forward updates that lets the user notice unusual situation.    git status With this release, the extra blank lines in "git status" output have been reduced. Developer support This release comes with developer support for emulating unsatisfied prerequisites in tests for ensuring that the remainder of the tests succeeds when tests with prerequisites are skipped. A new tutorial for git-core developers This release comes with a new tutorial that target aspiring git-core developers. This tutorial demonstrates end-to-end workflow of creating a change to the Git tree, for sending it for review, as well as making changes that are based on comments. Bug fixes in Git 2.23 In the earlier version, "git worktree add" used to fail when another worktree that was connected to the same repository was corrupt. This issue has been corrected in this release. An issue with the file descriptor has been fixed. This release comes with an updated parameter validation. The code for parsing scaled numbers out of configuration files has been made more robust and easier to follow with this release. Few users seem to be happy about the new changes made, a user commented on HackerNews, “It's nice to hear that there appears to be progress being made in making git's tooling nicer and more consistent. Git's model itself is pretty simple, but the command line tools for working with it aren't and I feel that this fuels most of the "Git is hard" complaints.” Few others are still skeptical about the new commands, another user commented, “On the one hand I'm happy on the new "switch" and "restore" commands. On the other hand, I wonder if they truly add any value other than the semantic distinction of functions otherwise present in checkout.” To know more about this news in detail, read the official blog post on GitHub. GitHub has blocked an Iranian software developer’s account GitHub services experienced a 41-minute disruption yesterday iPhone can be hacked via a legit-looking malicious lightning USB cable worth $200, DefCon 27 demo shows
Read more
  • 0
  • 0
  • 18610

article-image-the-us-to-invest-over-1b-in-quantum-computing-president-trump-signs-a-law
Prasad Ramesh
24 Dec 2018
3 min read
Save for later

The US to invest over $1B in quantum computing, President Trump signs a law

Prasad Ramesh
24 Dec 2018
3 min read
US President Donald Trump signed a bill called the National Quantum Initiative Act. This is a nation-wide quantum computing plan will establish goals for the next decade to accelerate the development of quantum technology. What is the National Quantum Initiative Act about? The bill for quantum technologies was originally introduced in June this year. This bill is a commitment that various departments such as the NIST, NSF, and Secretary of Energy together will provide $1.25B in funding from 2019 to 2023 to promote activities in the quantum information science. The new act and the funding that comes with it will boost quantum research in the US. As stated in the Act: “The bill defines ‘quantum information science’ as the storage, transmission, manipulation, or measurement of information that is encoded in systems that can only be described by the laws of quantum physics.” The president signed the bill as a law last week on Friday. What will the National Quantum Initiative Act allow? This bill aims to further USA’s position in the area of quantum information science and its technology applications. The bill will support research and development of quantum technologies that can lead to practical applications. It seeks to: Expand the workforce on quantum computing Promote research opportunities across various academic levels Address any knowledge gaps dd more facilities and centers for testing and education in this field Promote rapid development of quantum-based technologies The bill also seeks to: Improve the collaboration between the Federal Government of USA, its laboratories and industries, universities Promote the development of international standards for quantum information science Facilitate technology innovation and private sector commercialization Meet economic and security goals of USA The US President will work with Federal agencies, working groups, councils, subcommittees, etc., to set goals for the National Quantum Initiative Act. What’s the fuss with quantum computing? As we mentioned is a previous post: “Quantum computing uses quantum mechanics in quantum computers to solve a diverse set of complex problems. It uses qubits to store information in parallel dimensions. Quantum computers can work through a solution involving large parameters with far fewer operations than a standard computer.” This does not mean that a quantum computer is necessarily faster than a classical computer, a quantum computer is just better at solving complex problems that a regular one will take way too long if at all it can solve such problems. Quantum computers have great potential to solve future problems, and is hence drawing attention from tech companies and governments. Like D-Wave launching a Quantum cloud service, UK researchers working on quantum entanglements, and Rigetti working on a 128 qubit chip. What are the people saying? As is the general observation around the motivation for quantum computing, this comment from Reddit puts it nicely: “Make no mistake, this is not only about advancing computing power, but this is also about maintaining cryptographic dominance. Quantum computers will be able to break a lot of today's encryption.” Another comment expresses: “Makes sense, Trump has a tendency to be in 2 different states simultaneously.” You can read the bill in its entirety on the Congress Government website. Quantum computing – Trick or treat? Rigetti Computing launches the first Quantum Cloud Services to bring quantum computing to businesses Did quantum computing just take a quantum leap? A two-qubit chip by UK researchers makes controlled quantum entanglements possible
Read more
  • 0
  • 0
  • 18583

article-image-qt-releases-the-technical-preview-of-webassembly-based-qml-open-source-design-viewer
Vincy Davis
25 Oct 2019
2 min read
Save for later

Qt releases the technical preview of WebAssembly based QML open source design viewer

Vincy Davis
25 Oct 2019
2 min read
Two days ago, the Qt team released the technical preview of an open source QML design viewer based on the Qt for WebAssembly. This design viewer will enable the QML application to be run on web browsers like Chrome, Safari, FireFox and Edge. The Qt for WebAssembly is a platform plugin which allows the user to build Qt applications with web page integrations.  For running a custom QML application, a user will have to define the main QML file and the import paths with a .qmlproject file. The project folder then has to be compressed as a ZIP file and uploaded to the design viewer. Users can also generate a resource file out of their project and upload the package. Image source: Qt blog Read More: Qt introduces Qt for MCUs, a graphics toolkit for creating a fluid user interface on microcontrollers The Qt team has tested the design viewer with the latest versions of Chrome, Safari, FireFox and Edge and has found that the QML application runs well on all the web browsers. “The startup and compilation time depends on your browser and configuration, but the actual performance of the application, once it is started, is indistinguishable from the same application running on the desktop,” states the official blog. This design viewer also runs on Android and iOS and is shipped with most QML modules  and is based on a snapshot of Qt 5.14. Many users have liked the web based design viewer A user on Hacker News comments, “One of the most beautiful things I have seen in 2019. Brilliant!” Another comment read, “This looks pretty cool! I am actually shopping for a GUI framework for a new project and WebAssembly support is a potential critical feature.” Qt and LG Electronics partner to make webOS as the platform of choice for embedded smart devices GitLab retracts its privacy invasion policy after backlash from community Are we entering the quantum computing era? Google’s Sycamore achieves ‘quantum supremacy’ while IBM refutes the claim
Read more
  • 0
  • 0
  • 18562

article-image-golang-1-13-module-mirror-index-and-checksum-database-are-now-production-ready
Savia Lobo
02 Sep 2019
4 min read
Save for later

Golang 1.13 module mirror, index, and Checksum database are now production-ready

Savia Lobo
02 Sep 2019
4 min read
Last week, the Golang team announced that the Go module mirror, index, and checksum database are now production-ready thus adding reliability and security to the Go ecosystem. For Go 1.13 module users, the go command will use the module mirror and checksum database by default. New production-ready modules for Go 1.13 module Module Mirror A module mirror is a special kind of module proxy that caches metadata and source code in its own storage system. This allows the mirror to continue to serve source code that is no longer available from the original locations thus speeding up downloads and protect users from the disappearing dependencies. According to the team, module mirror is served at proxy.golang.org, which the go command will use by default for module users as of Go 1.13. For users still running an earlier version of the go command, they can use this service by setting GOPROXY=https://proxy.golang.org in their local environment. Read Also: The Go team shares new proposals planned to be implemented in Go 1.13 and 1.14 Module Index The module index is served by index.golang.org. It is a public feed of new module versions that become available through proxy.golang.org. Module index is useful for tool developers who want to keep their own cache of what’s available in proxy.golang.org, or to keep up-to-date on some of the newest modules go developers use. Read Also: Implementing Garbage collection algorithms in Golang [Tutorial] Checksum Database Modules introduced the go.sum file, a list of SHA-256 hashes of the source code and go.mod files of each dependency when it was first downloaded. The go command can use these hashes to detect misbehavior by an origin server or proxy that gives a different code for the same version. However, the go.sum file has a limitation, it works entirely by trust based on user’s first use. When a user adds a version of a never seen before dependency, the go command fetches the code and adds lines to the go.sum file quickly. The problem is that those go.sum lines aren’t being checked against anyone else’s and thus they might be different from the go.sum lines that the go command just generated for someone else. The checksum database ensures that the go command always adds the same lines to everyone's go.sum file. Whenever the go command receives new source code, it can verify the hash of that code against this global database to make sure the hashes match, ensuring that everyone is using the same code for a given version. The checksum database is served by sum.golang.org and is built on a Transparent Log (or “Merkle tree”) of hashes backed by Trillian, a transparent, highly scalable and cryptographically verifiable data store. The main advantage of a Merkle tree is that it is tamper-proof and has properties that don’t allow for misbehavior to go undetected, making it more trustworthy. The Merkle tree checks inclusion proofs (if a specific record exists in the log) and “consistency” proofs (that the tree hasn’t been tampered with) before adding new go.sum lines to a user’s module’s go.sum file. This checksum database allows the go command to safely use an otherwise untrusted proxy. Because there is an auditable security layer sitting on top of it, a proxy or origin server can’t intentionally, arbitrarily, or accidentally start giving you the wrong code without getting caught. “Even the author of a module can’t move their tags around or otherwise change the bits associated with a specific version from one day to the next without the change being detected,” the blog mentions. Developers are excited about the launch of the module mirror and checksum database and look forward to checking it out. https://twitter.com/hasdid/status/1167795923944124416 https://twitter.com/jedisct1/status/1167183027283353601 To know more about this news in detail, read the official blog post. Other news in Programming Why Perl 6 is considering a name change? The Julia team shares its finalized release process with the community TypeScript 3.6 releases with stricter generators, new functions in TypeScript playground, better Unicode support for identifiers and more
Read more
  • 0
  • 0
  • 18556
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 $19.99/month. Cancel anytime
article-image-intellij-idea-2019-2-beta-2-released-with-new-services-tool-window-and-profiling-tools
Bhagyashree R
11 Jul 2019
4 min read
Save for later

IntelliJ IDEA 2019.2 Beta 2 released with new Services tool window and profiling tools

Bhagyashree R
11 Jul 2019
4 min read
Yesterday, JetBrains announced the release of IntelliJ IDEA 2019.2 Beta 2, which marks the next step towards the stable release. The team has already implemented major features like profiling tools, better shell script support, a new Services tool window, among others. With this release, the team has given a final polish to the existing features including the Terminal that now soft-wraps long lines better. This solves the previous problem of breaking links while wrapping lines. Source: IntelliJ IDEA Shell script support This release will come with rich editing features for shell scripts including word and path completion, quick documentation preview, and textual rename. Additionally, it will also allow integration with various other external tools to provide developers an enhanced shell script support. For instance, the IDE will prompt you to install ShellCheck to detect possible errors in your scripts and also suggest quick fixes for them. A new Services tool window IntelliJ IDEA 2019.2 will introduce a new Services tool window, which will be your single stop to view all connections and run configurations that are configured to be reported to the Services view.  The Services view will incorporate windows for several tools such as RunDashboard, Database Console, Docker, and Application Servers. You have the option of viewing all the service types as nodes or tabs. To view a service type on a separate tab you can either use the Show in New tab action from the toolbar or simply drag and drop the needed node on to the edge of the Services tool window. You can also create a custom tab to group various services using the Group Services action from the context menu or from the toolbar. Source: IntelliJ IDEA Profiling tools for IntelliJ IDEA Ultimate You will be able to analyze the performance of your application right from the IDE using the new CPU Profiler integration and Memory Profiler integration on macOS, Linux, and Windows. It will also come integrated with Java Flight Recorder and Async profiler. This will help you get an insight into how the CPU and memory resources are allocated in your application. To run Java Flight Recorder or Async profiler, you just need to click the icon on the main toolbar or the run icon in the gutter. These tools will only be available in the professional and fully-featured commercial IDE, IntelliJ IDEA Ultimate. Source: IntelliJ IDEA Syntax highlighting for over 20 different programming languages IntelliJ IDEA 2019.2 will provide syntax highlighting for more than 20 different languages. To provide this support, this upcoming version comes integrated with TextMate text editor and a collection of built-in grammar files for various languages. You can find the full list of supported languages in Preferences / Settings | Editor | TextMate Bundles. In case you require syntax highlighting for any additional languages, you can download the TextMate bundle for the selected language and import it into IntelliJ IDEA. Commit directly from the Local Changes With this version, developers will be able to commit directly from the Local Changes tab without having to go through a separate Commit dialog. While working on a commit, you will be able to browse through the source code, view the file history, view the diff for the file in the same area as the commit, or use other features of the IDE. In previous versions, all these actions were impossible because the modal commit dialog blocked all the other IDE functionality. Additionally, there is a new feature for projects that are using version systems like Git or Mercurial. You just need to press the Commit shortcut (Ctrl-K on Windows, Linux/Cmd-K on macOS) and the IDE will select the modified files for the commit. You will then be able to review the selected files and change the file or code chunk. Source: IntelliJ IDEA These were some of the features coming in IntelliJ IDEA 2019.2. You can read the entire release notes and stay updated with the IntelliJ IDEA blog to know more in detail. Developers are excited about the profiling tools and other shining features bundled with this release: https://twitter.com/Rahamat87523498/status/1149221123256492032 https://twitter.com/goKarumi/status/1148849477136146432 https://twitter.com/matsumana/status/1140659765518852097 What’s new in IntelliJ IDEA 2018.2 IntelliJ IDEA 2018.3 Early Access Program is now open! Netbeans, Intellij IDEA and PyCharm come to Haiku OS
Read more
  • 0
  • 0
  • 18462

Matthew Emerick
13 Oct 2020
3 min read
Save for later

.NET Framework republishing of July 2020 Security Only Updates from .NET Blog

Matthew Emerick
13 Oct 2020
3 min read
Today, we are republishing the July 2020 Security Only Updates for .NET Framework to resolve a known issue that affected the original release.  You should install this version (V2) of the update as part of your normal security routine. Security CVE-2020-1147– .NET Framework Remote Code Execution Vulnerability A remote code execution vulnerability exists in .NET Framework when the software fails to check the source markup of XML file input. An attacker who successfully exploited the vulnerability could run arbitrary code in the context of the process responsible for deserialization of the XML content. To exploit this vulnerability, an attacker could upload a specially crafted document to a server utilizing an affected product to process content. The security update addresses the vulnerability by correcting how .NET Framework validates the source markup of XML content. This security update affects how .NET Framework’s System.Data.DataTable and System.Data.DataSet types read XML-serialized data. Most .NET Framework applications will not experience any behavioral change after the update is installed. For more information on how the update affects .NET Framework, including examples of scenarios which may be affected, please see the DataTable and DataSet security guidance document. To learn more about the vulnerabilities, go to the following Common Vulnerabilities and Exposures (CVE). CVE-2020-1147 Known Issues This release resolves the known issue below. Symptoms: After you apply this update, some applications experience a TypeInitializationException exception when they try to deserialize System.Data.DataSet or System.Data.DataTable instances from the XML within a SQL CLR stored procedure. The stack trace for this exception appears as follows: System.TypeInitializationException: The type initializer for ‘Scope’ threw an exception. —> System.IO.FileNotFoundException: Could not load file or assembly ‘System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The system cannot find the file specified. at System.Data.TypeLimiter.Scope.IsTypeUnconditionallyAllowed(Type type) at System.Data.TypeLimiter.Scope.IsAllowedType(Type type) at System.Data.TypeLimiter.EnsureTypeIsAllowed(Type type, TypeLimiter capturedLimiter) Resolution: Install the latest version of this update that was released on October 13th, 2020. Getting the Update The Security and Quality Rollup is available via Windows Update, Windows Server Update Services, and Microsoft Update Catalog. Microsoft Update Catalog You can get the update via the Microsoft Update Catalog. For Windows 10, NET Framework 4.8 updates are available via Windows Update, Windows Server Update Services, Microsoft Update Catalog. Updates for other versions of .NET Framework are part of the Windows 10 Monthly Cumulative Update. **Note**: Customers that rely on Windows Update and Windows Server Update Services will automatically receive the .NET Framework version-specific updates. Advanced system administrators can also take use of the below direct Microsoft Update Catalog download links to .NET Framework-specific updates. Before applying these updates, please ensure that you carefully review the .NET Framework version applicability, to ensure that you only install updates on systems where they apply. The following table is for earlier Windows and Windows Server versions. Product Version Security Only Update Windows 8.1, Windows RT 8.1 and Windows Server 2012 R2 4566468 .NET Framework 3.5 Catalog 4565580 .NET Framework 4.5.2 Catalog 4565581 .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4565585 .NET Framework 4.8 Catalog 4565588 Windows Server 2012 4566467 .NET Framework 3.5 Catalog 4565577 .NET Framework 4.5.2 Catalog 4565582 .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4565584 .NET Framework 4.8 Catalog 4565587 Windows 7 SP1 and Windows Server 2008 R2 SP1 4566466 .NET Framework 3.5.1 Catalog 4565579 .NET Framework 4.5.2 Catalog 4565583 .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalog 4565586 .NET Framework 4.8 Catalog 4565589 Windows Server 2008 4566469 .NET Framework 2.0, 3.0 Catalog 4565578 .NET Framework 4.5.2 Catalog 4565583 .NET Framework 4.6 Catalog 4565586   The post .NET Framework republishing of July 2020 Security Only Updates appeared first on .NET Blog.
Read more
  • 0
  • 0
  • 18441

article-image-qt-for-python-5-12-released-with-pyside2-qt-gui-and-more
Amrata Joshi
24 Dec 2018
4 min read
Save for later

Qt for Python 5.12 released with PySide2, Qt GUI and more

Amrata Joshi
24 Dec 2018
4 min read
Last week, Qt introduced Qt for Python 5.12, an official set of Python bindings for Qt, used for simplifying the creation of innovative and immersive user interfaces for Python applications. With Qt for Python 5.12, it is possible to quickly visualize the massive amounts of data tied to their Python development projects. https://twitter.com/qtproject/status/1076003585979232256 Qt for Python 5.12 comes with a cross-platform environment for all development needs. Qt’s user interface development framework features APIs and expansive graphics libraries. Qt for Python 5.12 provides the developers with a user-friendly platform. It is fully supported by the Qt Professional Services team of development experts and practitioners, as well as Qt’s global community. Lars Knoll, CTO of Qt, said, “Considering the huge data sets that Python developers work with on a daily basis, Qt’s graphical capabilities makes it a perfect fit for the creation of immersive Python user interfaces. With Qt for Python 5.12, our customers can build those user interfaces faster and more easily than ever before – with the knowledge that they are backed by a global team of Qt and user interface experts.” Features of Qt for Python 5.12 PySide2 Qt comes with a C++ framework, combined with the PySide2 Python module that offers a comprehensive set of bindings between Python and Qt Qt GUI Creation Qt Graphical User Interface (GUI) creation consists of the following functional modules: Qt Widgets: The Qt Widgets Module comes with a set of user interface elements for creating classic desktop-style user interfaces. Qt Quick: The Qt Quick module, a standard library for writing QML applications, contains Quick Controls for creating fluid user interfaces. Qt QML: The Qt QML module features a framework for developing applications and libraries with the QML language, a declarative language that allows user interfaces to be described in terms of their visual components. Environment familiarity: Qt for Python 5.12 comes with a familiar development environment for Python developers. PyPI: Python Package Index (PyPI) makes the installation process of Qt for Python 5.12 easy. VFX Reference Platform integration: Qt and Qt for Python 5.12 are integral parts of the VFX Reference Platform, a set of tool and library versions used for building software for the VFX industry. Qt 3D Animation: The Qt 3D animation module features a set of prebuilt elements to help developers get started with Qt 3D. Qt Sql: It provides a driver layer, SQL API layer, and a user interface layer for SQL databases. Qt for Python 5.12 is available under commercial licensing, as part of the products Qt for Application Development and Qt for Device Creation, and as open-source under the LGPLv3 license. Qt TextToSpeech: It provides an API for accessing text-to-speech engines. Easy and quick development Development with Qt for Python 5.12 is fun, fast and flexible. Developers can easily work on their applications using Qt for Python 5.12. Developers can power their UI development by utilizing ready-made widgets, controls, beautiful charts, and data visualizations and create stunning 2D/3D graphics for Python projects. Qt Community Developers can exchange ideas, learn, share, and connect with the Qt community. Global Qt Services Global Qt services provide tailored support at every stage of the product development lifecycle. What’s next in Qt for Python The team at Qt might simplify the deployment of PySide2 applications. They might also provide a smoother interaction with other Python modules and support other platforms like embedded and mobile. Users are excited about this project and are eagerly waiting for the stable release. Qt for Python will be helpful for developers as it makes the process of developing desktop apps easier. But few users still are with PyQt5 as the stable release for Qt for python hasn’t been rolled out yet. The switch from PyQt to PySide might be difficult for many. To know more about Qt for Python 5.12, check out Qt’s official website. Getting started with Qt Widgets in Android Qt Design Studio 1.0 released with Qt photoshop bridge, timeline based animations and Qt live preview Qt team releases Qt Creator 4.8.0 and Qt 5.12 LTS
Read more
  • 0
  • 0
  • 18366

article-image-gnome-3-30-released-with-improved-performance
Sugandha Lahoti
06 Sep 2018
2 min read
Save for later

GNOME 3.30 released with improved Desktop performance, Screen Sharing, and more

Sugandha Lahoti
06 Sep 2018
2 min read
The latest version of GNOME 3 has been released today. GNOME 3.30 features many significant performance improvements. In total, the release incorporates 24845 changes, made by approximately 801 contributors. GNOME is a desktop environment composed of free and open-source software that runs on Linux and most BSD derivatives. [box type="shadow" align="" class="" width=""]Fun Fact: 3.30 has been named “Almería” in recognition of this year’s GUADEC organizing team. GUADEC is GNOME’s primary annual conference which was held in Almería, Spain this year.[/box] Improvements to Desktop performance The entire desktop now uses fewer system resources. Users can now run multiple apps at once without encountering performance issues. Improved Screen Sharing With GNOME 3.30, it is now easier than ever to control screen sharing and remote desktop sessions. A newly added system menu displays an indicator when a remote connection is active, making it easy to stop the session when finished. Update Flatpaks Automatically Flatpak is an emerging technology that makes getting apps fast and secure. Many new apps are already available on Flathub which is a repository of curated Flatpaks. GNOME software manager, can now automatically update installed Flatpaks. Focus on Content Web, the GNOME browser, now comes with a new minimal reader view. Web can toggle between the normal view and the clean, minimal reader view when viewing a compatible web page. The minimal reader view removes irrelevant menus, images, and content not related to the article or document. Updates to GNOME Virtual machine application Boxes, the GNOME virtual machine application, can now connect to remote Windows servers using the Remote Desktop Protocol (RDP). Boxes also now has the ability to import OVA files, making sharing virtual machines even easier. Gaming Application changes Games, the retro gaming application can now be navigated by gamepad making it faster to use: The keyboard is mappable to gamepad inputs. Additional details about each available game is displayed in the collection view. The Flatpak bundles 4 more emulator cores. GNOME 3.30 introduces a new podcast app called Podcasts that lets you subscribe and listen to your favorite podcasts, right from your desktop. These are just a select few updates. For a complete list of updates, read the GNOME Blog. Deploying HTML5 Applications with GNOME. Install GNOME-Shell on Ubuntu 9.10 “Karmic Koala”. Is Linux hard to learn?
Read more
  • 0
  • 0
  • 18332
article-image-the-union-types-2-0-proposal-gets-a-go-ahead-for-php-8-0
Bhagyashree R
11 Nov 2019
3 min read
Save for later

The Union Types 2.0 proposal gets a go-ahead for PHP 8.0

Bhagyashree R
11 Nov 2019
3 min read
Last week, the Union Types 2.0 RFC by Nikita Popov, a software developer at JetBrains got accepted for PHP 8.0 with 61 votes in favor and 5 against. Popov submitted this RFC as a GitHub pull request to check whether it would be a better medium for RFC proposals in the future, which got a positive response from many PHP developers. https://twitter.com/enunomaduro/status/1169179343580516352 What the Union Types 2.0 RFC proposes PHP type declarations allow you to specify the type of parameters and return values acceptable by a function. Though for most of the functions, the acceptable parameters and possible return values will be of only one type, there are cases when they can be of multiple types. Currently, PHP supports two special union types. One is the nullable types that you can specify using the ‘?Type’ syntax to mark a parameter or return value as nullable. This means, in addition to the specified type, NULL can also be passed as an argument or return value. Another one is ‘array’ or ‘Traversable’ that you can specify using the special iterable type. The Union Types 2.0 RFC proposes to add support for arbitrary union types, which can be specified using the syntax T1|T2|... Support for Union types will enable developers to move more type information from ‘phpdoc’ into function signatures. Other advantages of arbitrary union types include early detection of mistakes and less boilerplate-y code compared to ‘phpdoc’. This will also ensure that type is checked during inheritance and are available through Reflection. This RFC does not contain any backward-incompatible changes. However, existing ReflectionType based code will have to be adjusted in order to support the processing of code that uses union types. The RFC for union types was first proposed 4 years ago by PHP open source contributors, Levi Morrison and Bob Weinand. This new proposal has a few updates compared to the previous one that Popov shared on the PHP mailing list thread: Updated to specify interaction with new language features, like full variance and property types. Updated for the use of the ?Type syntax rather than the Type|null syntax. It only supports "false" as a pseudo-type, not "true". Slightly simplified semantics for the coercive typing mode. In a Reddit discussion, many developers welcomed this decision. A user commented, “PHP 8 will be blazing. I can't wait for it.” While some others felt that this a one step backward. “Feels like a step backward. IMHO, a better solution would have been to add function overloading to the language, i.e. give the ability to add many methods with the same name, but different argument types,” a user expressed. You can read the Union Types 2.0 RFC to know more in detail. You can read the discussion about this RFC on GitHub. Symfony leaves PHP-FIG, the framework interoperability group Oracle releases GraphPipe: An open-source tool that standardizes machine learning model deployment Connecting your data to MongoDB using PyMongo and PHP
Read more
  • 0
  • 0
  • 18321

article-image-the-electron-team-publicly-shares-the-release-timeline-for-electron-5-0
Bhagyashree R
06 Feb 2019
2 min read
Save for later

The Electron team publicly shares the release timeline for Electron 5.0

Bhagyashree R
06 Feb 2019
2 min read
Last week, the team behind Electron announced that they will share the release timeline for Electron 5.0 and beyond publicly. For now, they have posted the schedule for Electron 5.0, which will include M72 and Node 12.0. Here’s the schedule the team has made public, which can still have some changes: Source: Electron The Electron team has been working towards making its release cycles faster and more stable. In December last year, they planned to release a new version of Electron in cadence with the new versions of its major components including Chromium, V8, and Node. They started working according to this plan and have seen some success. Source: Electron The team was able to release last two versions of Electron (3.0 and 4.0) almost parallelly with Chromium’s latest versions. To keep up with Chromium releases, the two versions were released with a 2-3 month timeline for each release. They will be continuing this pattern for Electron 5.0 and beyond. So, for now, developers can expect a major Electron release approximately every quarter. Read the timeline shared by the Electron team on their official website. Flutter challenges Electron, soon to release a desktop client to accelerate mobile development Electron 3.0.0 releases with experimental textfield, and button APIs Electron Fiddle: A ‘code playground’ for experimenting with cross-platform native apps
Read more
  • 0
  • 0
  • 18242

article-image-qt-5-13-releases-with-a-fully-supported-webassembly-module-chromium-73-support-and-more
Bhagyashree R
20 Jun 2019
3 min read
Save for later

Qt 5.13 releases with a fully-supported WebAssembly module, Chromium 73 support, and more

Bhagyashree R
20 Jun 2019
3 min read
Yesterday, the team behind Qt announced the release of Qt 5.13. This release comes with fully-supported Qt for WebAssembly, Chromium 73-based QT WebEngine, and many other updates. In this release, the Qt community and the team have focused on improving the tooling to make designing, developing, and deploying software with Qt more efficient. https://twitter.com/qtproject/status/1141627444933398528 Following are some of Qt 5.13 highlights: Fully-supported Qt for WebAssembly Qt for WebAssembly makes it possible to build Qt applications for web browsers. The team previewed this platform in Qt 5.12 and beginning this release Qt for WebAssembly is fully-supported. This module uses Emscripten, the LLVM to JavaScript compiler to compile Qt applications for a web server. This will allow developers to run their native applications in any browser provided it supports WebAssembly. Updates in the QT QML module The QT QML module enables you to write applications and libraries in the QML language. Qt 5.13 comes with improved support for enums declared in  C++. With this release, JavaScript “null” as the binding value will be optimized at compile time. Also, QML will now generate function tables on 64-bit Windows making it possible to unwind the stack through JITed functions. Updates in Qt Quick and Qt Quick Controls 2 Qt Quick is the standard library for writing QML applications, which provides all the basic types required for creating user interfaces. With this release, support is added to TableView that allows hiding rows and columns. Qt Quick Controls 2 provides a set of UI controls for creating user interfaces. This release brings a new control named SplitView using which you can lay out items horizontally or vertically with a draggable splitter between each item. Additionally, the team has also added a cache property to the icon. Qt WebEngine Qt WebEngine provides a web browser engine that makes embedding content from the web into your applications easier on platforms that do not have a native web engine. This engine uses the code from the open-source Chromium project. Qt WebEngine is now based on Chromium 73. This latest version supports PDF viewing via an internal Chromium extension, Web Notifications API, and thread-safe and page-specific URL request interceptors. It also comes with an application-local client certificate store and client certificate support from QML. Lars Knoll, Qt’s CTO and Tuukka Turunen, Qt’s Head of R&D will be holding a webinar on July 2 to summarize all the news around Qt 5.13. Read the official announcement on Qt’s official website to know more in detail. Qt Creator 4.9.0 released with language support, QML support, profiling and much more Qt installation on different platforms [Tutorial] Qt Creator 4.9 Beta released with QML support, programming language support and more!
Read more
  • 0
  • 0
  • 18210
article-image-linux-5-2-releases-with-inclusion-of-sound-open-firmware-project-new-mount-api-improved-pressure-stall-information-and-more
Vincy Davis
09 Jul 2019
5 min read
Save for later

Linux 5.2 releases with inclusion of Sound Open Firmware project, new mount API, improved pressure stall information and more

Vincy Davis
09 Jul 2019
5 min read
Two days ago, Linus Torvalds, the principal developer of the Linux kernel announced the release of Linux 5.2 in his usual humorous way, describing it as a ‘Bobtail Squid’. The release has new additions like the inclusion of the Sound Open Firmware (SOF) project, improved pressure stall information, new mount API, significant performance improvements in the BFQ I/O scheduler, new GPU drivers, optional support for case-insensitive names in ext4 and more. The earlier version, Linux 5.1 was released exactly two months ago. Torvalds says, “there really doesn't seem to be any reason for another rc, since it's been very quiet. Yes, I had a few pull requests since rc7, but they were all small, and I had many more that are for the upcoming merge window. So despite a fairly late core revert, I don't see any real reason for another week of rc, and so we have a v5.2 with the normal release timing.” Linux 5.2 also kicks off the Linux 5.3 merge window. What’s new in Linux 5.2? Inclusion of Sound Open Firmware (SOF) project Linux 5.2 includes Sound Open Firmware (SOF) project, which has been created to reduce firmware issues by providing an open source platform to create open source firmware for audio DSPs. The SOF project is backed by Intel and Google. This will enable users to have open source firmware, personalize it, and also use the power of the DSP processors in their sound cards in imaginative ways. Improved Pressure Stall information With this release, users can configure sensitive thresholds and use poll() and friends to be notified, whenever a certain pressure threshold is breached within the user-defined time window. This allows Android to monitor and prevent mounting memory shortages, before they cause problems for the user. New mount API With Linux 5.2, Linux developers have redesigned the entire mount API, thus resulting in addition of six new syscalls: fsopen(2), fsconfig(2), fsmount(2), move_mount(2), fspick(2), and open_tree(2). The previous mount(2) interface was not easy for applications and users to understand the returned errors, was not suitable for the specification of multiple sources such as overlayfs need and it was not possible to mount a file system into another mount namespace. Significant performance improvements in the BFQ I/O scheduler BFQ is a proportional-share I/O scheduler available for block devices since the 4.12 kernel release. It associates each process or group of processes with a weight, and grants a fraction of the available I/O bandwidth to that proportional weight. In Linux 5.2, there have been performance tweaks to the BFQ I/O scheduler such that the application start-up time has increased under load by up to 80%. This drastically increases the performance and decreases the execution time of the BFQ I/O scheduler. New GPU drivers for ARM Mali devices In the past, the Linux community had to create open source drivers for the Mali GPUs, as ARM has never been open source friendly with the GPU drivers. Linux 5.2 has two new community drivers for ARM Mali accelerators, such that lima covers the older t4xx and panfrost the newer 6xx/7xx series. This is expected to help the ARM Mali accelerators. More CPU bug protection, and "mitigations" boot option Linux 5.2 release has more bug infrastructure added to deal with the Microarchitectural Data Sampling (MDS) hardware vulnerability, thus allowing access to data available in various CPU internal buffers. Also, in order to help users to deal with the ever increasing amount of CPU bugs across different architectures, the kernel boot option mitigations= has been added. It's a set of curated, arch-independent options to enable/disable protections regardless irrespective of the system they are running in. clone(2) to return pidfds Due to the design of Unix, sending signals to processes or gathering /proc information is not always safe due to the possibility of PID reuse. With clone(2) returning to pidfds, it will allow users to get pids at process creation time, which are usable with the pidfd_send_signal(2) syscall. pidfds helps Linux to avoid this problem, and the new clone(2) flag will make it even easier to get pidfs, thus providing an easy way to signal and process PID metadata safely. Optional support for case-insensitive names in ext4 This release implements support for case-insensitive file name lookups in ext4, based on the feature bit and the encoding stored in the superblock. This will enable users to configure directories with chattr +F (EXT4_CASEFOLD_FL) attribute. This attribute is only enabled on empty directories for filesystems that support the encoding feature, thus preventing collision of file names that differ by case. Freezer controller for cgroups v2 added A freezer controller provides an ability to stop the workload in a cgroup and temporarily free up some resources (cpu, io, network bandwidth and, potentially, memory) for some other tasks. Cgroup v2 lacked this functionality, until this release. This functionality is always available and is represented by cgroup.freeze and cgroup.events cgroup control files. Device mapper dust target added Linux 5.2 adds a device mapper 'dust' target to simulate a device that has failing sectors and/or read failures. It also adds the ability to enable the emulation of the read failures at an arbitrary time. The 'dust' target aims to help storage developers and sysadmins that want to test their storage stack. Users are quite happy with the Linux 5.2 release. https://twitter.com/ejizhan/status/1148047044864557057 https://twitter.com/konigssohne/status/1148014299484512256 https://twitter.com/YuzuSoftMoe/status/1148419200228179968 Linux 5.2 has many other performance improvements introduced in the file systems, memory management, block layer and more. Visit the kernelnewbies page, for more details. “Don’t break your users and create a community culture”, says Linus Torvalds, Creator of Linux, at KubeCon + CloudNativeCon + Open Source Summit China 2019 Canonical, the company behind the Ubuntu Linux distribution, was hacked; Ubuntu source code unaffected OpenWrt 18.06.4 released with updated Linux kernel, security fixes Curl and the Linux kernel and much more!
Read more
  • 0
  • 0
  • 18194

article-image-salesforces-open-sourcing-centrifuge-a-library-for-accelerating-jvm-restarts
Amrata Joshi
02 Nov 2018
3 min read
Save for later

Salesforce’s open sourcing Centrifuge: A library for accelerating JVM restarts

Amrata Joshi
02 Nov 2018
3 min read
Yesterday, Paymon Teyer, a principal member of Technical Staff at Salesforce, introduced Centrifuge as a library, which is also a framework for scheduling and running startup and warmup tasks. It focuses mainly on accelerating JVM restarts. It also provides an interface for implementing warmup tasks, like, calling an HTTP endpoint, populating caches and handling pre-compilation tasks for generated code. When the JVM restarts in a production environment, it affects the performance of the server. The JVM has to reload classes, trigger reflection inflation, rerun its JIT compiler on any code paths, reinitialize objects and dependency injections, and populate component caches. The performance impact of JVM restarts can be minimized by allowing individual components to execute arbitrary warmup logic themselves, after a cold start. To make this possible, Centrifuge was created with the goal of executing warmup tasks. It also manages resource usage and handles failures. Centrifuge allows users to register and configure warmup tasks either descriptively or programmatically. It also schedules tasks, manages and monitors threads, handles exceptions and retries, and provides status reports. Centrifuge supports the following two categories of warmup tasks: Blocking tasks Blocking tasks prevent the application from returning to the available server pool until they complete. These tasks must be executed for the application to function properly. For example, executing source code generators or populating a cache from storage to meet SLA requirements. Non-blocking tasks Non- blocking tasks execute asynchronously and don’t interfere with the application’s readiness. These tasks do the work which is needed after an application restarts but is not required immediately for the application to be in a consistent state. Examples include warmup logic that triggers JIT compilation on code paths or eagerly triggering dependency injection and object creation. How to Use Centrifuge? The first step is to include a Maven dependency for Centrifuge in the POM Then implementing the Warmer interface for each of the warmup tasks. The warmer class should have an accessible default constructor and it should not swallow InterruptedException. The warmers can be registered either programmatically with code or descriptively with a configuration file. For adding and removing warmers without recompiling, the warmers should be registered descriptively within a configuration file. Then the configuration file needs to be loaded into the Centrifuge. How is the HTTP Warmer useful? Centrifuge provides a simple HTTP warmer which is used to call HTTP endpoints to trigger code path. It is also exercised by the resource implementing the endpoint. If an application provides a homepage URL and when called, connects to a database, populates the caches, etc., then the HTTP warmer can warm these code paths. Read more about Centrifuge on Salesforce’s official website. About Java Virtual Machine – JVM Languages Tuning Solr JVM and Container Concurrency programming 101: Why do programmers hang by a thread?
Read more
  • 0
  • 0
  • 18179
Modal Close icon
Modal Close icon