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-cirq-0-4-0-released-for-writing-quantum-circuits
Prasad Ramesh
30 Nov 2018
3 min read
Save for later

Cirq 0.4.0 released for writing quantum circuits

Prasad Ramesh
30 Nov 2018
3 min read
Cirq is a Python library for writing quantum circuits and running them against quantum computers created by Google. Cirq 0.4.0 is now released and is available on GitHub. Changes in Cirq 0.4.0 themes The API is now more pythonic and more consistent with respect to breaking changes and refactoring. The simulation is faster. New functionality in Cirq 0.4.0 The following functions, parameters are added. cirq.Rx, cirq.Ry, and cirq.Rz cirq.XX, cirq.YY, cirq.ZZ, and cirq.MS related to the Mølmer–Sørensen gate cirq.Simulator cirq.SupportsApplyUnitary protocol is added to specify fast simulation methods cirq.Circuit.reachable_frontier_from and cirq.Circuit.findall_operations_between cirq.decompose sorted(qubits) and cirq.QubitOrder.DEFAULT.order_for(qubits) are now equivalent cirq.experiments.generate_supremacy_circuit_[...] dtype parameters are added to control the precision versus speed of simulations cirq.TrialResult helper methods (dirac_notation / bloch_vector / density_matrix) cirq.TOFFOLI and cirq.CCZ can be raised to powers Breaking changes in Cirq 0.4.0 Most of the gate classes have been standardized. They can now take an exponent argument and have a name which is of the form NamePowGate. For example, RotXGate is now XPowGate and it no longer takes rads, degs, or half_turns. The xmon gate set has now been merged into the common gate set. The capability marker classes have been replaced by magic method protocols. As an example, gates now just implement a _unitary_ method as opposed to inheriting from KnownMatrix. cirq.Extensions and cirq.PotentialImplementation are removed. Many decomposition classes and methods have been moved from cirq.google.* to cirq.*. Example: cirq.google.EjectFullW is now cirq.EjectPhasedPaulis. The classes and methods related to line placement are moved into cirq.google. Notable bug fixes A two-qubit gate decomposition will no longer produce a glut of single qubit gates. When multi-line entries are given, circuit diagrams stay aligned. They now include "same moment" indicators. The false-positives and false-negatives are fixed in cirq.testing.assert_circuits_with_terminal_measurements_are_equivalent. Many repr methods returning code are fixed that assumed from cirq import * instead of import cirq. Example code now runs in both Python 2 and Python 3 without the need for transpilation. Notable dev changes The test files now import cirq instead of just specific modules. There is better testing and packaging of scripts. The package versions for Python 2 and Python 3 are no longer different. cirq.value_equality decorator is added. New cirq.testing methods and classes are added. Additions to contrib cirq.contrib.acquaintance: New utilities for defining permutation gates cirq.contrib.paulistring: Utilities for optimizing non-Clifford operations which are separated by Clifford operations cirq.contrib.tpu: Utilities for converting circuits into an executable form to be used on cloud TPUs. This requires TensorFlow. Google AdaNet, a TensorFlow-based AutoML framework Graph Nets – DeepMind’s library for graph networks in Tensorflow and Sonnet A new Model optimization Toolkit for TensorFlow can make models 3x faster
Read more
  • 0
  • 0
  • 11900

article-image-net-core-3-preview-2-is-here
Prasad Ramesh
31 Jan 2019
2 min read
Save for later

.NET Core 3 Preview 2 is here!

Prasad Ramesh
31 Jan 2019
2 min read
This Tuesday, Microsoft announced .NET Core 3 Preview 2 with new features in .NET Core 3 and C# 8. C# 8 The eighth iteration of C# is a major release and includes many new features. Declarations Statements don’t need to be indented now. Switch expressions C# 8 comes with switch expressions in which you can use the new syntax. Terser syntax returns a value as it is an expression. It’s fully integrated with pattern matching. Async streams The compiler and framework libraries should match correctly for async streams to work. You will need .NET Core 3.0 Preview 2 and Visual Studio 2019 Preview 2. Alternatively, you can also use the C# extension for Visual Studio Code. Floating point improvements in IEEE The goal is to expose all operations that are needed and they are behaviorally compliant with the IEEE spec. A fast in-box JSON Writer & JSON document Two new objects were added—System.Text.Json.Utf8JsonWriter and System.Text.Json.JsonDocument. Utf8JsonWriter The Utf8JsonWriter enables a high-performance, non-cached way to write UTF-8 encoded JSON text from common .NET types. JsonDocument System.Text.Json.JsonDocument is also added built on top of the Utf8JsonReader. JsonDocument provides enables parsing JSON data and builds a read-only Document Object Model (DOM). It can be queried to support enumeration and random access. Assembly Unloadability Assembly unloadability is a new ability of AssemblyLoaderContext. It is transparent and exposed with only a few new APIs. A loader context to be unloaded with this. This releases all of the memory for static fields, instantiated types, and the assembly itself. Visual Studio support Using .NET Core 3 for development requires using Visual Studio 2019. WPF and Windows Forms templates were added to the New Project Dialog for easier access via the command line. These were a select few updates from the new .NET Core 3 Preview 2, for a complete list of changes, visit the Microsoft Blog. Microsoft Connect(); 2018: .NET foundation open membership, .NET Core 2.2, .NET Core 3 Preview 1 released, WPF, WinUI, Windows forms open sourced What to expect in ASP.NET Core 3.0 .NET Core 3.0 and .NET Framework 4.8 more details announced
Read more
  • 0
  • 0
  • 11892

article-image-apache-netbeans-ide-10-0-released-with-support-for-jdk-11-junit-5-and-more
Amrata Joshi
28 Dec 2018
2 min read
Save for later

Apache NetBeans IDE 10.0 released with support for JDK 11, JUnit 5 and more!

Amrata Joshi
28 Dec 2018
2 min read
Yesterday, the team at Apache NetBeans released Apache NetBeans IDE 10.0, an integrated development environment for Java. This release focuses on adding support for JDK 11, JUnit 5, PHP, JavaScript, and Groovy. What’s new in Apache NetBeans IDE 10.0? JDK 11 Support Integration with the nb-javac project is now possible. This integration adds support for JDK 11. The CORBA modules have been removed. This release comes with a support for JEP 309, Dynamic Class-File Constants. It also supports JEP 323, Local-Variable Syntax  and LVTI for Lambda parameters. PHP Support PHP 7.3 It is now possible to add trailing commas in function calls under PHP 7.3. This release comes with support for Heredoc and Nowdoc Syntaxes. PHP 7.2 This release comes with support for trailing commas in list syntax and coloring for object types for PHP 7.2. PHP 7.1 This release comes with class constant visibility, multi-catch exception handling, nullable types, support for keys in list(), coloring for new keywords (void, iterable) for PHP 7.1. JUnit 5 JUnit 5.3.1 has been added as a new Library to NetBeans, so users can easily add it to their Java projects. JUnit 5 is now the default JUnit version for Maven projects without any existing tests. This release supports JUnit 5 @Testable annotation. This version also supports a default JUnit 5 test template. OpenJDK This release automatically detects JTReg from OpenJDK configuration. Various improvements such as limiting directories that are scanned for modules have been made to the OpenJDK project. Few users have compared Apache NetBeans IDE 10.0 with Eclipse and Intellij most of them are on the opinion that this release is better than the two and it works better. Read more about this release in detail on Apache NetBeans’ official blog. Apache NetBeans 9.0 is now available with Java 9 & 10 support Apache NetBeans 9.0 RC1 released! The NetBeans Developer’s Life Cycle
Read more
  • 0
  • 0
  • 11863

article-image-kotlin-1-3-released-with-stable-coroutines-multiplatform-projects-and-more
Prasad Ramesh
30 Oct 2018
3 min read
Save for later

Kotlin 1.3 released with stable coroutines, multiplatform projects and more

Prasad Ramesh
30 Oct 2018
3 min read
In the Kotlin 1.3 release, coroutines are now stable, scalability is better, and Kotlin/Native Beta is added. Coroutines are stable in Kotlin 1.3 Coroutines provide a way to write non-blocking asynchronous code that’s easy to understand. It is a useful tool for activities ranging from offloading work onto background workers to implementing complicated network protocols. The kotlinx.coroutines library hits is at 1.0. It provides a solid foundation for managing asynchronous jobs various scales including composition, cancelation, exception handling and UI-specific use cases. Kotlin/Native Beta Kotlin/Native makes use of LLVM to compile Kotlin sources into standalone binaries without any VM required. Various operating systems and CPU architectures including iOS, Linux, Windows, and Mac are supported. The support extends to even WebAssembly and embedded systems like STM32. Kotlin/Native has a fully automatic memory management and can interoperate with C, Objective-C, and Swift. It exposes platform APIs like Core Foundation, POSIX, and any other native library of choice. The Kotlin/Native runtime promotes immutable data and blocks any attempts of sharing unprotected mutable state between threads. Threads don’t exist for Kotlin/Native, they are abstracted away as a low-level implementation. Threads are replaced by workers which are a safe and manageable way of achieving concurrency. Multiplatform projects in Kotlin 1.3 Kotlin supports JVM, Android, JavaScript, and Native. Hence code can be reused. This saves effort and time which can be used to perform other tasks. The multiplatform libraries in Kotlin 1.3 cover everyday tasks such as HTTP, serialization and managing coroutines. Using the libraries is the easiest way to write multi platform code. You can also create custom multi-platform libraries which wrap platform-specific dependencies into a common API. Tooling support for Kotlin/Native and Multiplatform Kotlin 1.3 has tooling support for Kotlin/Native and multiplatform projects. This is available in IntelliJ IDEA Community Edition, IntelliJ IDEA Ultimate, and Android Studio. All of the code editing features such as error highlighting, code completion, navigation and refactoring are available in all these IDEs. Ktor 1.0 Beta Ktor is a connected applications framework. It implements the entire HTTP stack asynchronously using coroutines and has reached Beta. Other features Some other features in Kotlin 1.3 release include experimental support for inline classes, incremental compilation for Kotlin/JS, and unsigned integers. This release also features a sequence debugger for visualizing lazy computations, contracts to improve static analysis for library calls, and no-arg entry point to provide a cleaner experience for new users. To know more details about all the changes, visit the changelog. KotlinConf 2018: Kotlin 1.3 RC out and Kotlin/Native hits beta Kotlin/Native 0.8 recently released with safer concurrent programming 4 operator overloading techniques in Kotlin you need to know
Read more
  • 0
  • 0
  • 11832

article-image-the-erlang-ecosystem-foundation-launched-at-the-code-beam-sf-conference
Bhagyashree R
01 Mar 2019
2 min read
Save for later

The Erlang Ecosystem Foundation launched at the Code BEAM SF conference

Bhagyashree R
01 Mar 2019
2 min read
Yesterday, at the ongoing Code BEAM SF event, the formation of Erlang Ecosystem Foundation (EFF) was announced. Its founding members, Jose Valim, Peer Stritzinger, Fred Hebert, Miriam Pena, and Francesco Cesarini spoke about its journey, importance, and goals. The proposal for creating EEF was submitted last year in December to foster the Erlang and Elixir ecosystem. https://twitter.com/CodeBEAMio/status/1101310225804476416 Code BEAM SF, formerly known as Erlang & Elixir Factory, is a two-day event commenced on Feb 28. This conference brings together the best minds in the Erlang and Elixir communities to discuss the future of these technologies. The purpose of the Erlang Ecosystem Foundation EEF is a non-profit organization for driving the further development and adoption of Erlang, Elixir, LFE, and other technologies based on BEAM, the Erlang virtual machine. Backed by companies like Cisco, Erlang solutions, Ericsson, and others, this foundation aims to grow and support a diverse community around the Erlang and Elixir Ecosystem. This foundation will encourage the development of technologies and open source projects based on BEAM languages. “Our goal is to increase the adoption of this sophisticated platform among forward-thinking organizations. With member-supported Working Groups actively contributing to libraries, tools, and documentation used regularly by individuals and companies relying on the stability and versatility of the ecosystem, we actively invest in critical pieces of technical infrastructure to support our users in their efforts to build the next generation of advanced, reliable, real-time applications,” says the official EEF website. EEF will also be responsible for sponsoring the working groups to help them solve the challenges users of BEAM technology might be facing, particularly in areas such as documentation, interoperability, and performance. To know more about Erlang Ecosystem Foundation in detail, visit its official website. Erlang turns 20: Tracing the journey from Ericsson to Whatsapp Elixir 1.7, the programming language for Erlang virtual machine, releases Introducing Mint, a new HTTP client for Elixir
Read more
  • 0
  • 0
  • 11828

article-image-announcing-julia-v1-1-with-better-exception-handling-and-other-improvements
Melisha Dsouza
28 Jan 2019
2 min read
Save for later

Announcing Julia v1.1 with better exception handling and other improvements

Melisha Dsouza
28 Jan 2019
2 min read
Last week, Julia 1.1.0 was released with some new features, performance improvements, and small changes in behavior. The following is a list of some of the changes in this new version of Julia: Better exception handling and root cause analysis is now possible due to the exception stack maintained on each task. This can be accessed using the experimental function Base.catch_stack. Binary ~ can now be dotted, as in x .~ y. Previously, parser inputs ending with a comma were sometimes parsed as tuples depending on whitespace. Now, they are consistently treated as incomplete. Spaces in broadcast call syntax, e.g. f. (x).  are now disallowed. Using the same name for both a local variable and a static parameter is an error instead of a warning. When a script that runs in interactive mode (-i) throws an error, the REPL now starts after the error is displayed. This is a change to the REPL that previously only started if the script completed without error. 7zip  has been upgraded from version 16.04 to 18.05, OpenBLAS has been upgraded from 0.3.2 to 0.3.3. Busybox is no longer bundled with Julia on Windows. Support for LLVM < 6.0 has been dropped and LLVM has been upgraded to 6.0.1 Pkg upgraded to version 1.1. one(i::CartesianIndex) should be replaced with oneunit(i::CartesianIndex) The internal array Base.Grisu.DIGITS stands deprecated; to get an appropriate task-local buffer and pass it to grisu(), use Base.Grisu.getbuf().  Base._default_type(T) has been removed. Calls to it should be replaced with just the argument T. You can head over to GitHub for a complete list of the changes in Julia v1.1. Julia for machine learning. Will the new language pick up pace? Introducing Jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts Kata Containers 1.5 released with Firecracker support, integration improvements and IBM Z series support  
Read more
  • 0
  • 0
  • 11780
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-gnu-apl-1-8-releases-with-bug-fixes-fft-gtk-re-and-more
Vincy Davis
24 Jun 2019
2 min read
Save for later

GNU APL 1.8 releases with bug fixes, FFT, GTK, RE and more

Vincy Davis
24 Jun 2019
2 min read
Yesterday, the GNU APL version 1.8 was released with bug fixes, FFT, GTK, RE, user defined APL commands and more. GNU APL is a free interpreter for the programming language APL. What's new in GNU APL 1.8? Bug fixes, FFT (fast fourier transforms; real, complex, and windows), GTK (create GUI windows from APL), RE (regular expressions), User-defined APL commands, An interface from Python into GNU APL.With this interface one can use APL's vector capabilities in programs written in Python. People are excited to use the GNU APL 1.8 version. A user on Hacker News states that “1Wow, each of ⎕FFT, ⎕GTK and ⎕RE are substantial and impressive additions! Thank you, and congratulations on the new release!” Another user says that “APL can do some pretty cool stuff” Another user comments “I'd like to play with this as it is a free APL that I could use for work without paying a license (like Dyalog APL requires). J is another free array language, but it doesn't use the APL characters that I enjoy. I've had a little trouble in the past getting it to install (this was version 1.7) on Ubuntu. Granted I've never been an expert at installing from source, but a more in-depth installation guide or YouTube tutorial would help some. Thanks for doing this btw! I hope to eventually get to check this out!” Introducing Luna, world’s first programming language with dual syntax representation, data flow modeling and much more! Researchers highlight impact of programming languages on code quality and reveal flaws in the original FSE study Stack Overflow survey data further confirms Python’s popularity as it moves above Java in the most used programming language list
Read more
  • 0
  • 0
  • 11761

article-image-python-steering-council-election-results-are-out-for-january-2019
Prasad Ramesh
05 Feb 2019
2 min read
Save for later

Python steering council election results are out for January 2019

Prasad Ramesh
05 Feb 2019
2 min read
Last year, the steering council model was elected for Python governance. Now the results for the steering council election, January 2019 are out in PEP 8100. First some background about the steering council model: “Authored by Nathaniel J. Smith, and Donald Stufft, this proposal involves a model for Python governance based on a steering council. The council has vast authority, which they intend to use as rarely as possible, instead, they plan to use this power to establish standard processes. The steering council committee consists of five people. A general philosophy is followed—it’s better to split up large changes into a series of small changes to be reviewed independently. As opposed to trying to do everything in one PEP, the focus is on providing a minimal and solid foundation for future governance decisions. This PEP was accepted on December 17, 2018.” The goals of the model are to be: Boring, stick to the basics and not experiment Simplistic enough for a minimum viable product Comprehensive to avoid confusion Flexible and light-weight Of the 96 eligible voters, only 69 had cast ballots. The nomination period for the election was from January 7, 2019 to January 20, 2019. The voting period was from January 21, 2019 to February 4, 2019. The results are in and the top five candidates are: Barry Warsaw Brett Cannon Carol Willing Guido van Rossum Nick Coghlan Now, these five individuals are a part of the steering council for Python governance. The council will make decisions on PEPs. They will also work on maintaining the stability, quality of the Python language and interpreter. Python governance vote results are here: The steering council model is the winner NYU and AWS introduce Deep Graph Library (DGL), a python package to build neural network graphs Introducing RustPython, a Python 3 interpreter written in Rust
Read more
  • 0
  • 0
  • 11736

article-image-rust-beta-2018-is-here
Prasad Ramesh
27 Nov 2018
2 min read
Save for later

Rust Beta 2018 is here

Prasad Ramesh
27 Nov 2018
2 min read
An announcement post yesterday said that Rust 2018 beta is now in the final phase before release. A new beta has just been released with updates. After bug fixes, the final release will take place on December 6. In comparison to the Rust 2018 Edition Preview 2, the new Rust 1.31.0 beta includes all of the features stabilized in v1.31.0 207 and many bug fixes. Those new features are as follows. Changes in Rust Beta The new lifetime elision rules now allow eliding lifetimes in functions and impl headers. Lifetimes are still needed to be defined in structs. const functions can now be defined and used. These const functions right now are a strict minimal subset of the const fn RFC. Tool lints can now be used, which allow scoping lints from external tools by using attributes. With this release, the #[no_mangle] and #[export_name] attributes can be located anywhere in a crate. Previously they could only be located in exported functions. Parentheses can now be used in pattern matches. The compiler change includes updating musl to 1.1.20. There are some library changes and API stabilizations. Now, cargo will download crates in parallel using HTTP/2 protocol. The packages in Cargo.toml can also be renamed now. You can know more about these changes on GitHub. Changes in tooling Rust Beta 2018 also includes a number of improvements in the area of tooling. Rustfmt is now at version 1.0. RLS and Clippy will no longer be installed via “preview” components after a rustup update. The developers have listed two focus areas to find the bugs, namely the module system implementation and the RLS. Work for next release In Rust Preview 2, two variants for the module system were evaluated—“anchored paths” vs “uniform paths”. This evaluation continues in this beta release. This means that the compiler accepts only code that both variants would accept. You can read the announcement post for more details. Rust 2018 RC1 now released with Raw identifiers, better path clarity, and other changes GitHub Octoverse: The top programming languages of 2018 Red Hat announces full support for Clang/LLVM, Go, and Rust
Read more
  • 0
  • 0
  • 11717

article-image-dart-hits-version-2-0-with-major-changes-for-developers
Richard Gall
07 Aug 2018
3 min read
Save for later

Google's Dart hits version 2.0 with major changes for developers

Richard Gall
07 Aug 2018
3 min read
We recently asked whether Dart programming was dead, but news of its death might well have been exaggerated. Version 2 of the programming language has just been released, with a range of updates and changes that should cement its popularity with admirers and win new users too. With Dart playing a big part in Google's much-anticipated Flutter and Fuchsia projects, there's a possibility that version 2.0 represents a brand new chapter in Dart's life. News of a Dart 'reboot' first emerged in February 2018. Anders Thorhauge Sandholm said at the time that “with Dart 2, we’ve dramatically strengthened and streamlined the type system, cleaned up the syntax, and rebuilt much of the developer tool chain from the ground up to make mobile and web development more enjoyable and productive.” It would appear that six months later the team have finally delivered on their promise. They'll be hoping it makes a positive impact on the language's wider adoption. What's new in Dart 2.0? There's a whole host of changes that Dart developers will love, all of which can be found in the changelog on GitHub. Most notable is a stronger typed system, which includes runtime checks that will capture errors more effectively, and, for those developers working on Flutter, you can now create an instance of a class without using the "new" keyword. Among other updates, other key changes to Dart include: "Functions marked async now run synchronously until the first await statement. Previously, they would return to the event loop once at the top of the function body before any code runs." "Constants in the core libraries have been renamed from SCREAMING_CAPS to lowerCamelCase." "...New methods have been added to core library classes. If you implement the interfaces of these classes, you will need to implement the new methods." All the changes you'll find in Dart 2.0 amount to the same thing: improving the developer experience and making the code more readable. The obvious context to all this 'reboot' is that Google is betting on the growth of Flutter and Fuchsia over the next few years. With these improvements, it's possible that we'll begin to see Dart's fortunes changing. CodeMentor may have called Dart the 'worst programming language to learn in 2018' at the start of the year, but it will be interesting to see if it's popularity has grown by the time we hit 2019. You can download Dart 2.0.0 for Windows, Mac, and Linux here.
Read more
  • 0
  • 0
  • 11687
article-image-oracle-introduces-patch-series-to-add-ebpf-support-for-gcc
Amrata Joshi
10 Sep 2019
4 min read
Save for later

Oracle introduces patch series to add eBPF support for GCC

Amrata Joshi
10 Sep 2019
4 min read
Yesterday, the team at Oracle introduced a patch series that brings a port of GCC to eBPF (extended Berkeley Packet Filter), a virtual machine that is placed in the Linux kernel. With the support for binutils (binary tools), this port can be used for developing compiled eBPF applications. eBPF was initially used for capturing user-level packet and filtering, it is now used to serve as a general-purpose infrastructure for non-networking purposes as well. Since May, Oracle has been planning on introducing an eBPF back-end to GCC 10 to make the GNU compiler target the general-purpose in-kernel virtual machine. Oracle’s inclination on bringing in the eBPF support for GCC is part of the company's efforts towards improving DTrace on Linux. As a compilation target, eBPF is different because of the restrictions imposed by the kernel verifier, and due to the security-driven design of the architecture. Currently, the back end issues an error whenever an eBPF restriction is violated.  This increases the chances of the resulting objects to become acceptable by the kernel verifier, hence shortening the development cycle. How will the patch series support GCC? The first patch in the series updates config.guess and config.sub from the 'config' upstream project to recognize bpf-*-* triplets.  The second one fixes an integrity check in the opt-functions.awk.  The third patch in the series annotates multiple tests in the gcc.c-torture/compile test suite.  While the fourth one introduces a new target flag named as indirect_call and annotates the tests in gcc.c-torture/compile.  The fifth patch in the series adds a new GCC port.  The sixth one adds a libgcc port for eBPF, currently, it addresses the limitations that are imposed by the target, by eliminating a few functions in libgcc2 whose default implementations surpass the eBPF stack limit. While the seventh, eighth and ninth patches are involved in dealing with testing the new port. The gcc.target testsuite has been extended with eBPF-specific tests that cover the backend-specific built-in functions as well as diagnostics.  The tenth one adds documentation updates including information related to the new command-line options and compiler built-ins to the GCC manual. Jose E. Marchesi, software engineer at Oracle writes, “Finally, the last patch adds myself as the maintainer of the BPF port. I personally commit to evolve and maintain the port for as long as necessary, and to find a suitable replacement in case I have to step down for whatever reason.” Other improvements expected in the port Currently, the port supports only a subset of C, in future, the team might add more languages as the eBPF kernel verifier gets smarter. Dynamic stack allocation (alloca and VLAs) is achieved by using a normal general register, %r9, as a pseudo stack pointer. But it has a disadvantage that makes the register "fixed" and therefore not available for general register allocation.   The team is planning to bring more additions to the port that can be used to translate more C, CO-RE capabilities (compile-once, run-everywhere), generation of BTF, etc. The team is working on simulator and GDB support so that it becomes possible to emulate different kernel contexts where eBPF programs execute. Once the support for simulator is achieved, a suitable board description will then be added to DejaGnu, GNU test framework that would run the GCC test suites on it. Now there will be two C compilers that will generate eBPF so the interoperability between programs generated by the compilers will become a major concern for the team. And this task would require communication between the compiler and the kernel communities. Users on HackerNews seem to be excited about this news, a user commented, “This is very exciting! Nice work to the team that's doing this. I've been waiting to dive into eBPF until the tools mature a bit, so it's great to see eBPF support landing in GCC.” To know more about this news, check out the official mail thread. Other interesting news in programming Core Python team confirms sunsetting Python 2 on January 1, 2020 Developers from the Swift for TensorFlow project propose adding first-class differentiable programming to Swift Go 1.13 releases with error wrapping, TLS 1.3 enabled by default, improved number literals, and more  
Read more
  • 0
  • 0
  • 11671

article-image-vim-go-creator-faith-arslan-takes-an-indefinite-sabbatical-from-all-his-open-source-projects-as-hes-burnt-out
Natasha Mathur
11 Oct 2018
6 min read
Save for later

Vim-go creator, Faith Arslan, takes an “indefinite sabbatical” from all his open source projects as he’s burnt out

Natasha Mathur
11 Oct 2018
6 min read
The creator of vim-go, Faith Arslan, announced on his personal blog, yesterday that he is taking an “indefinite sabbatical” from his vim-go projects. He had been working on the project for the past 4.5 years. Arslan says that he won’t be maintaining vim-go anymore and is uncertain about when he’ll be coming back to work on it again. For now, he’ll only be working on a select few small projects that don’t need him to actively maintain them. “I’m working for DigitalOcean..this is my full-time job. I have a family to take care of and just like any other grown-up in the world, you do what you have to do. However, there is no place for Go tooling and editors here. It’s a hobby and passion. But if a hobby feels like it becomes a second full-time job, something is very wrong. The time has come to end this craziness.”, says Arslan. What’s interesting is that Arslan is not the first from the open source community to go on a break. This seems to be an ongoing trend in the open-source community lately which started with Guido Van Rossum, Python founder, taking a ‘permanent vacation from being BDFL’, in July. He does continue to work in his capacity as a core developer. Guido's decision to take a break stemmed from the physical, mental, and the emotional toll that his role at work had taken on him over the past years. He had mentioned that he was “tired, and need a very long break”. Arslan’s reason seems fairly similar as he said, “ For the last one year, I’m struggling to maintain my side projects. I feel like I’m burnt out. Working on a side project is fun until it becomes your second full-time job. One thing that I’m sure is, I’m not happy how my day to day life is evolving around me”.   Another recent example is Linus Torvalds, who had been working on the Linux Kernel for almost 30-years. Torvalds opened up about going on a break over his ‘hurtful’ behavior that ‘contributed to an unprofessional environment’. “I need to take a break to get help on how to behave differently and fix some issues in my tooling and workflow”, said Torvalds. Even though Linus left to take time for self-reflection and was not burnt out, it is symptomatic of the same underlying issue. When one wants to accomplish a lot in a short period of time, one tends to find efficiencies where they can. Often efficient communication may not be effective as it may come across as terse, sarcastic or uncaring. Arslan mentioned that when he first started with vim-go, it was fun, rewarding and solved a lot his problems. It was his favorite editor and enabled him to write Go inside vim, in a very efficient and productive way. As he started with vim-go, he got the chance to work on and create many other smaller Go packages and tools. Some of these such as color and struct packages even became popular. “Again, it solved many problems and back then I wanted to use Go packages that are easy to use and just works out of the box. I also really like to work on Go tooling and editors. But this is not the case for many of my projects, especially vim-go. With the popularity of all these projects, my day to day work also increased”, ” says Arslan. The problem of burnout seems epidemic in the open source community. They work long hours, neglect themselves and their personal lives, and don’t always get to see the results that they should for such hard work. Arslan mentioned that it used to take him 10-20 hours extra per week, outside of his day job, to maintain these projects. He could “no longer maintain this tempo” as every day he used to receive multiple GitHub emails regarding pull requests, issues, feedbacks, fixes, etc which was affecting his well-being. It also didn’t make any sense to him “economically”. “It’s very hard for me to do this, but trust me I’m thinking about this for a long time. I cannot continue this anymore without sacrificing my own well being”, mentions Arslan. Who will look after vim-go now? Arslan’s sabbatical won’t be affecting vim-go’s performance as he has assigned the duty of maintaining vim-go to two of the full-time contributors, namely, Martin Tournoij and Billie Cleek. Billie Cleek, who worked with Arslan at DigitalOcean will be the lead of the vim-go project. Cleek has already made hundreds of contributions to vim-go (recently added unified async support for Vim and Neovim) and is well-versed with vim-go’s code base. “I don’t know if I could find anyone else that would make a great fit than him. I’m very lucky to have someone like him. The vim-go community will be in very good hands”, said Arslan. As far as the other popular Go projects and packages are concerned, Arslan will be going over them one last time and will archive the repos such as color, structs, camelcase, images, vim-hclfmt, and many others. This means that you’ll still be able to fetch these repos and use it within your projects. Arslan believes that most of these packages are in “a very good state” and doesn’t require any more additions. That being said, there are three projects that Arslan will still be maintaining such as gomodifytags, structtag, and motion. The gomodifytags project was Arslan’s most enjoyed project so far as it had zero bugs and simple design because.  These projects will be maintained in a “sleep mode” and Arslan will only be going over “serious issues”. “I have now so much time that I’ll be spending for myself...I have a side project that I’m working for a couple of months privately..(I can) play more with my son and just hang out all day, without doing a single thing. The weekends belong to me. I no longer have to worry about the last opened pull request’s to vim-go or my other Go projects..it just feels so refreshing. I suggest everyone do the same thing, take a step back and see what’s happening around you. It’ll help you to become a better yourself”, says Arslan. Public reaction towards Arslan’s decision is majorly positive: https://twitter.com/rakyll/status/1050053991088840704 https://twitter.com/idanyliuk/status/1050053303814541312 https://twitter.com/corylanou/status/1050132111745794052 For more coverage, read Arslan’s official announcement. Golang 1.11 is here with modules and experimental WebAssembly port among other updates Why Golang is the fastest growing language on GitHub Golang 1.11 rc1 is here with experimental port for WebAssembly!
Read more
  • 0
  • 0
  • 11663

article-image-pypy-7-0-released-for-python-2-7-3-5-and-3-6-alpha
Prasad Ramesh
12 Feb 2019
2 min read
Save for later

PyPy 7.0 released for Python 2.7, 3.5, and 3.6 alpha

Prasad Ramesh
12 Feb 2019
2 min read
Yesterday, PyPy 7.0 was announced in a blog post. It is a triple release for different Python versions. PyPy is a compliant Python interpreter which can be considered a replacement for CPython 2.7, 3.5, and 3.6. It’s faster due to the integrated tracing JIT compiler. The release supports x86 machines with common OSes, PPC64, and s390x running Linux. Since the ARM buildbots are out of service currently, binaries for ARM architecture will not be released. PyPy 7.0 includes the following interpreters. PyPy2.7 is an interpreter with support for syntax and features of Python 2.7 which will lose official support next year. PyPy3.5, supports the stable Python 3.5 PyPy3.6-alpha which is the first official PyPy release supporting 3.6 features. All of the three interpreters share a similar codebase allowing this triple release. Until packages can be distributed downstream, wheel (whl) packages are available for some common packages. GC hooks has been improved. It’s now possible to manage the GC by using a combination of gc.disable and gc.collect_step manually. The cffi module included in PyPy has been updated to version 1.12. The cppyy backend is also updated to version 1.4. For a JIT friendly experience, use the new versions to wrap your C and C++ code. PyPy 7.0 is fully compatible with the previous version. Several issues and bugs raised by the PyPy community have been addressed. PyPy3 and Windows PyPy3.5 releases are not yet up to quality to be used in production. There are open issues and the compatibility is not complete. The utf8 branch to change the internal representation of unicode to utf8 will be added in one of the future releases. Python Software foundation and JetBrains’ Python Developers Survey 2018 Python steering council election results are out for January 2019 Introducing RustPython, a Python 3 interpreter written in Rust
Read more
  • 0
  • 0
  • 11636
article-image-junit-5-4-released-with-an-aggregate-artifact-for-reducing-your-maven-and-gradle-files
Bhagyashree R
08 Mar 2019
2 min read
Save for later

JUnit 5.4 released with an aggregate artifact for reducing your Maven and Gradle files

Bhagyashree R
08 Mar 2019
2 min read
Last month, the team behind the JUnit framework announced the release of JUnit 5.4. This release allows ordering extensions and test case execution provides an aggregate artifact for slimming your Maven and Gradle files, and more. Some new features in JUnit 5.4 Ordering test case execution JUnit 5.4 allows you to explicitly define a text execution order. To enable tests ordering, you need to annotate the class with the ‘@TestMethodOrder’ extension and also mention the ordering type of either Alphanumeric, OrderAnnotation, or Random. Alphanumeric orders the test execution based on the method name of the test case. For a custom defined execution, you can use the OrderAnnotation order type. To order test cases pseudo-randomly, you can use the Random order type. Extension ordering With this release, you can not only order test case execution but also order how programmatically register extensions are executed. These extensions are registered with @RegisterExtension. You can use this feature in cases where the setup/teardown behavior of a test is complex and has separate domains. For instance, when you are testing the behavior of how a cache and database are used. Aggregate artifact A large number of dependencies were required when using JUnit 5. With this release, the team has changed this by providing the ‘junit-jupiter’ aggregate artifact. The ‘junit-jupiter’ artifact includes ‘junit-jupiter-api’ and ‘junit-jupiter-params’. This artifact collectively covers most of the dependencies we will need when using JUnit 5. It will also help in reducing the size of Maven and Gradle files of projects using JUnit 5. TempDir In JUnit 5.4, the team has added @TempDir as a native feature of the JUnit framework, which was originally a part of the JUnit-Pioneer third-party library. You can use the @TempDir extension for handling the creation and cleanup of temporary files. TestKit With TestKit, you can perform a meta-analysis on a test suite. It allows you to check the number of executed tests, passed tests, failed tests, skipped tests, as well as a few other behaviors. To read the full list of updates in JUnit 5.4, check out the official announcement. Apache NetBeans IDE 10.0 released with support for JDK 11, JUnit 5 and more! JUnit 5.3 brings console output capture, assertThrow enhancements and parallel test execution Unit testing with Java frameworks: JUnit and TestNG [Tutorial]  
Read more
  • 0
  • 0
  • 11618

article-image-game-development-with-net-from-net-blog
Matthew Emerick
06 Oct 2020
5 min read
Save for later

Game Development with .NET from .NET Blog

Matthew Emerick
06 Oct 2020
5 min read
We’ve launched a new Game Development with .NET section on our site. It’s designed for current .NET developers to explore all the choices available to them when developing games. It’s also designed for new developers trying to learn how to use .NET by making games. We’ve also launched a new game development Learn portal for .NET filled with tutorials, videos, and documentation provided by Microsoft and others in the .NET game development community. Finally, we launched a step-by-step Unity get-started tutorial that will get you started with Unity and writing C# scripts for it in no time. We are excited to show you what .NET has to offer to you when making games. .NET is also part of Microsoft Game Stack, a comprehensive suite of tools and services just for game development. .NET for game developers .NET is cross-platform. With .NET you can target over 25+ different platforms with a single code base. You can make games for, but not limited to, Windows, macOS, Linux, Android, iOS, Xbox, PlayStation, Nintendo, and mixed reality devices. C# is the most popular programming language in game development. The wider .NET community is also big. There is no lack of expertise and support you can find from individuals and user groups, locally or online. .NET does not just cover building your game. You can also use it to build your game’s website with ASP.NET, your mobile app using Xamarin, and even do remote rendering with Microsoft Azure. Your skills will transfer across the entire game development pipeline. Available game engines The first step to developing games in .NET is to choose a game engine. You can think of engines as the frameworks and tools you use for developing your game. There are many game engines that use .NET and they differ widely. Some of the engines are commercial and some are completely royalty free and open source. I am excited to see some of them planning to adopt .NET 5 soon. Just choose the engine that better works for you and your game. Would you like to read a blog post to help you learn about .NET game engines, and which one would be best for you? Online services for your game If you’re building your game with .NET, then you have many choices on how to build your online game services. You can use ready-to-use services like Microsoft Azure PlayFab. You can also build from scratch on Microsoft Azure. .NET also runs on multiple operating systems, clouds, and services, it doesn’t limit you to use Microsoft’s platforms. .NET has a rich set of tools All the .NET tools you are used to also work when making games. Visual Studio is a great IDE that works with all .NET game engines on Windows and macOS. It provides word-class debugging, AI-assisted code completion, code refactoring, and cleanup. In addition, it provides real-time collaboration and productivity tools for remote work. GitHub also provides all your DevOps needs. Host and review code, manage projects, and build software alongside 50 million developers with GitHub. The ecosystem The .NET game development ecosystem is rich. Some of the .NET game engines depend on foundational work done by the open-source community to create managed graphics APIs like SharpDX, SharpVulkan, Vulkan.NET, and Veldrid. Xamarin also enables using platform native features on iOS and Android. Beyond the .NET community, each game engine also has their own community and user groups you can join and interact with. .NET is an open-source platform with over 60,000+ contributors. It’s free and a solid stable base for all your current and future game development needs. Learn more and start developing Head to our new Game Development with .NET site to get an overview of what .NET provides for you when making games. If you never used Unity, get started with our step-by-step Unity get-started tutorial and script with C# as quick as possible. If you’re looking for tutorials, videos, and documentations to get your started, head to our new game development Learn portal for .NET for more resources. Show us the work you do for .NET game development We’d love to see the work you do for the .NET game developer. Please reach out to us if you’d like us to talk about the games you’re making, the APIs you’re developing, the plug-ins you’re distributing, or any .NET project remotely related to game development. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new .NET game development contribution or a useful plug-in or tool? Do you have an analysis of game development pipeline using .NET? We’d love to hear from you, and feature your contributions on future posts: Leave us a message in the comments section below Send Abdullah (@indiesaudi) tips on Twitter about .NET game development. The post Game Development with .NET appeared first on .NET Blog.
Read more
  • 0
  • 0
  • 11558
Modal Close icon
Modal Close icon