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
Events
Videos
Audiobooks
Packt 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-europython-society-announces-the-guido-van-rossum-core-developer-grant-program-to-honor-python-core-developers
Natasha Mathur
01 Feb 2019
3 min read
Save for later

EuroPython Society announces the ‘Guido van Rossum Core Developer Grant’ program to honor Python core developers

Natasha Mathur
01 Feb 2019
3 min read
EuroPython Society (EPS) announced a new grant program yesterday for ‘Python core developers’ in place for the future EuroPython conferences, named “Guido Van Rossum Core Developer Grant”. The program has been named after Guido Van Rossum, Python Chief, in recognition of his dedication towards leading the team for almost 20 years, before he stepped down from his position as the ‘Benevolent dictator for life’ (BDFL), back in July last year. It has been designed to honor the ‘Python core developers’ who work in a small group, and work countless hours (even in free time), often coming close to burnout as not many new core developers join the team. Under the developer grant program, all core Python developers will be awarded a free entry to the future EuroPython conferences, starting with EuroPython 2019 in Basel, Switzerland, that takes place between 9th to 14th July every year. This, in turn, will help grow the team and will give them a place to meet, where they can demonstrate their work and invite new developers. Who are ‘Python Core Developers’? As far as eligibility is concerned, EPS states that developers falling under the term “Python Core Developer” are eligible. Python core developers are those who have been granted the commit rights to the CPython repository. Even if you give up the commit rights or go inactive, you still keep the status of a ‘Python core developer’. EPS has also provided the links to “Github Python core group members”, Python-Dev Guide Log, and Python Dev Guide Experts Index, where you can check your eligibility for the grant program. However, in case you are not listed on one of these but have contributed to the CPython repository, you can provide links to those patches to the Society. Also, EPS mentions that it reserves all the rights to remove the grant eligibility (despite him/her falling under the above-mentioned lists) of a developer in case he/she acts ‘without good faith’ or goes against the EPS Code of Conduct. “We all love Python..(and) believe it is important to give something back to the main team of developers who have contributed lots of their time and energy to make Python happen: the Python Core Developers”, states EPS. For complete information, check out the official Core Developer Grant website. “With Python, you can create self-explanatory, concise, and engaging data visuals, and present insights that impact your business” – Tim Großmann and Mario Döbler [Interview] Python serious about diversity, dumps offensive ‘master’, ‘slave’ terms in its documentation Top 7 Python programming books you need to read
Read more
  • 0
  • 0
  • 10722

article-image-tencent-becomes-a-platinum-member-of-the-linux-foundation
Richard Gall
25 Jun 2018
3 min read
Save for later

Tencent becomes a platinum member of the Linux foundation

Richard Gall
25 Jun 2018
3 min read
The Linux Foundation has made Chinese tech giant Tencent a platinum member, it announced today (June 25). The move means Tencent now joins a small and exclusive group of tech companies, including IBM, Huawei, and Cisco, that are regarded as top level members of the foundation. For Tencent, the announcement is important because it underlines the organizations' strategic focus on open source. For the Linux Foundation, meanwhile, it's a source of hefty support. Tencent are now in a position to provide the foundation with even more support - technologically and financially. It has already, for example, announced that it will be contributing its open source microservices project TARS to the foundation. Expect more to follow. Given a (relatively) tough year for a number of Silicon Valley companies, and the increasing visibility of other Chinese tech giants Alibaba, perhaps we're seeing the start of a subtle shift in power from California to China. What is Tencent? Tencent is a Chinese company worth $500 billion. That's more than Facebook. It owns a huge range of digital services, including China's popular messaging app WeChat and the Tencent Video Service, China's answer to Netflix. According to analysts (and this Guardian profile) Tencent's services are used by "more than two-thirds of the Chinese population". From the Linux Foundation's perspective you can see just how important it is to have an organization of this size supporting it. It's worth noting that Tencent has supported the Linux foundation for some time. For example, it was one of the founding members of the Linux Foundation's deep learning project, which launched at the start of 2018. However, with Platinum membership, the company is putting itself in the middle of the emerging intersection between the open source and corporate tech worlds. What the Linux Foundation and Tencent said about each other Jim Zemlin, Executive Director of the Linux Foundation was enthusiastic about the announcement saying: “Becoming a Platinum member of The Linux Foundation clearly reinforces the importance of open source to Tencent, and its commitment to the open source community... As Tencent’s contributions to open source continue to accelerate, The Linux Foundation is thrilled to work more closely with the company to provide more resources and support to the community. We look forward to collaborating with Tencent to enable more innovation and development to spur the creation of new and exciting technologies in the days ahead.” Clearly, Zemlin's is keen to underline the importance of how Tencent can support the open source intiatives that the Linux Foundation works hard to cultivate across the tech landscape. Tencent's general manager Liu Xin was also, as you'd imagine, enthusiastic about the move. "We look forward to strengthening our relationship with the international open source community and promoting innovation in cutting edge technology" he said. "Together, we will help to build a welcoming and energized global open source ecosystem.” Read the press release. Read next Alibaba Cloud partners with SAP to provide a versatile, one-stop cloud computing environment
Read more
  • 0
  • 0
  • 10663

article-image-intellij-idea-2018-3-is-out-with-support-for-java-12-accessibility-improvements-github-pull-requests-and-more
Savia Lobo
22 Nov 2018
7 min read
Save for later

IntelliJ IDEA 2018.3 is out with support for Java 12, accessibility improvements, GitHub pull requests, and more

Savia Lobo
22 Nov 2018
7 min read
Yesterday, the JetBrains community announced IntelliJ IDEA 2018.3, this year’s third major update. The IntelliJ IDEA 2018.3 is a massive new update that delivers Java 12 support, Multiline TODO comments, GitHub Pull Requests, Git submodules, Accessibility improvements, and more. Major updates in the IntelliJ IDEA 2018.3 Java Updates Support for Java 12: The 2018.3 version adds an initial support for the upcoming Java 12. Users can preview the Raw String Literals (JEP 326) in the IDE. Quickly spot duplicates: Users can now quickly spot duplicates in more complicated cases using this IDE. Java Stream API improvements: Redundant sorted calls made before the subsequent min call are now easily detected. New data-flow-based inspection: The new inspection known as ‘Condition is covered by further condition’ detects situations where the first condition is unnecessary as it’s covered by the second one. The new IDE provides a quick-fix to remove such redundant conditions. Detection of redundant usages of the @SuppressWarning annotation: The IDE now identifies situations where a suppressed inspection no longer addresses any warnings in the associated method body, class, or statement. Editor Updates Issues in code are highlighted: The IDE highlights the first and all subsequent TODO comment lines in the editor and displays them in the TODO tool window. New indentation status bar: A new indentation status bar displays the size of the indent in the current file. Improvements in the EditorConfig support: You can create a scope to disable code formatting from being done on specific files and folders. Go to the ‘Formatter Control’ tab in Preferences / Settings | Editor | Code Style. Syntax highlighting and code completion are now available for EditorConfig files. Version Control Updates Initial support for GitHub Pull Requests:  With this users can now view PRs in their IDE. Support for Git submodules: update your project, commit changes, view diffs, and resolve conflicts. New GitHub Pull Requests tool window: With this tool window, users can preview all the pull requests in your GitHub repository. Advanced navigation in VCS Log: Users can use the Forward and Back navigation actions while they are in the VCS Log after they navigate from the commit hashes to the commit in the VCS Log tab, or after they use the Go to hash/branch/tag action. Simply use the left and right arrow keys to navigate to the child or parent commit. Preview differences in the File History tab: Diff Preview is now available in the File History tab of the Version Control tool window. Kotlin Updates Kotlin 1.3 support: IntelliJ IDEA can help you migrate Kotlin project to Kotlin 1.3 and perform all the required changes in obsolete code to make it compliant with the latest state of the libraries. Enhancements in multiplatform project support: In Kotlin 1.3, the model of multiplatform projects has been completely reworked in order to improve expressiveness and flexibility, and to make sharing common code easier. IntelliJ IDEA provides a set of project examples that cover the most common use cases. New Kotlin Inspections & Quick-fixes: Since the release of IntelliJ IDEA 2018.2, the Kotlin plugin has got over 30 new inspections, quick-fixes, and intentions that helps write a code much more effectively. Spring & Spring Boot Updates Spring Boot 2.1 support: IntelliJ IDEA 2018.3 fully supports Spring Boot 2.1. Configuration values annotated with @DataSize are validated using the default @DataSizeUnit if specified. Spring Initializr improvements: While creating a project using Spring Initializr, the IDE will suggest installing or enabling appropriate plugins to ensure that support for all selected technologies is present. Better JPA and Spring Data support for Kotlin: Now the IDE can automatically inject JPQL into query strings, providing completion for entity names and parameters. Users can write Spring Data interfaces in Kotlin, and IntelliJ IDEA will understand the entities used. The IDE provides smart completion for method names and quick-fixes for parameters. Maven Updates Users can now easily delegate all their build and run actions to Maven. They simply have to go to Preferences (Settings) | Build, Execution, Deployment | Build Tools | Maven | Runner and select the new Delegate IDE build/run actions to maven option. JVM Debugger Updates Attach to Java processes that were started without a debug agent:  After attaching to a process, users will be able to view the current thread’s state and variable values, and use the memory view. If users want to attach the debugger to their local process, they can use the handy new Attach Debugger action, which is available in the Run Tool Window Async stack traces in remote JVMs: IntelliJ IDEA 2018.3 now supports async stack traces in remote JVMs. To start using the agent remotely: copy /lib/rt/debugger-agent.jar to the remote machine. add -javaagent:debugger-agent.jar to the remote JVM options. Action to remove all breakpoints: IntelliJ IDEA 2018.3 comes with handy new actions that remove all the breakpoints in a project, or all the breakpoints in the file. JavaScript & TypeScript Updates Improved Angular support: This includes much more accurate code completion and Go to definition for variables, pipes and async pipes, and template reference variables. Autoimports in JavaScript: IntelliJ IDEA can now automatically add imports for symbols from the project’s dependencies, in JavaScript files. This works as long as there’s a TypeScript definition file inside the package, or the package contains sources written as ES module. Support for Node.js worker threads: Users can now debug Node.js workers in IntelliJ IDEA. Users should be cautious of using Node.js 10.12 or above and the experimental-worker flag. The IDE provides code completion for the worker threads’ API. Improved flexibility with ESLint and TSLint: Users can override severity levels from the linter’s configuration file and see all problems from the linter as errors or warnings. Kubernetes Update Support for Helm resource files: The IDE now resolves the Helm resource template files and provides with editing support, which includes code completion, rename refactoring, and inspections and quick-fixes. Navigation in Helm resource files: The IDE lets users navigate from a value’s usage to its declaration in the chart’s values.yaml file. Helm template result preview: The IDE can now preview the result of the Helm template rendering in the diff. Helm dependency update: A new Helm Dependency Update action is available to download the external tgz dependencies (or update the existing ones) and display them in the project tree. Database Updates Added support for Cassandra database: With this release, the team has added support for the NoSQL database, Cassandra. Improvements in SQL code completion: Now code completion works for: non-aggregated fields in GROUP BY, all the columns are listed in SELECT, MERGE, and INSERT INTO table variable, named parameters of stored procedures, numeric fields in SUM() and AVG(), FILTER (WHERE) clause, and field types in SQLite. Introduction to table alias: One can now use the Introduce table alias action to create an alias directly on the table, and this alias will automatically replace usages of the table’s name. Single connection mode: In IntelliJ IDEA 2018.3 users can view any temporary objects in the database tree. Also, it’s possible to use the same transaction in different consoles. To know more about these and other updates in detail, visit the JetBrains blog. IntelliJ IDEA 2018.3 Early Access Program is now open! What’s new in IntelliJ IDEA 2018.2 How to set up the Scala Plugin in IntelliJ IDE [Tutorial]  
Read more
  • 0
  • 0
  • 10649

article-image-ruby-on-rails-6-0-beta-1-brings-new-frameworks-multiple-dbs-and-parallel-testing
Prasad Ramesh
21 Jan 2019
2 min read
Save for later

Ruby on Rails 6.0 Beta 1 brings new frameworks, multiple DBs, and parallel testing

Prasad Ramesh
21 Jan 2019
2 min read
Last Friday, the first release of Rails 6 was announced. Two new major frameworks are added in Rails 6.0 Beta 1 called Action Mailbox and Action Text. There are also two scalable upgrades in the form of multiple database support and parallel testing. Action Mailbox in Rails 6.0 Beta 1 This new framework guides incoming emails to controller-like mailboxes in order for processing to take place in Rails. Action Mailbox comes with ingresses for Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. Users can also manage incoming emails directly via the built-in Exim, Postfix, and Qmail ingresses. Action Text in Rails 6.0 Beta 1 This framework brings rich text and enables editing such files in Rails. The Trix editor is introduced to handle tasks like formatting to links, quotes, lists to embedded images and galleries. Trix editor has its own RichText model to save rich text generated by it. This model is associated with existing Active Record models in the application. Embedded images and other attachments are stored by default via Active Storage and they are associated with the RichText model. Multiple database support The introduction of multiple database support facilitates a single application to connect to multiple databases simultaneously. This can be done to segment certain records into their own databases for scaling or isolation. It can also be useful if you’re performing read/write splitting with replica databases to improve performance. Regardless of the applications, there’s a simple API in Rails 6.0 for this task without having to dig into Active Record internals. Support for parallel testing You can now utilize all the cores in your computer to run big test suites faster with parallel testing support. Every testing worker has a separate database and thread so all the CPUs will be utilized effectively. Webpacker is the default JavaScript bundler for Rails 6.0 via the new app/javascript directory. The asset pipeline with Sprockets for CSS and static assets integrate well while offering the best trade-off of advanced JavaScript features. Rails 6.0 will need Ruby 2.5.0 or later. Rails 6.0 Beta 2 should be out next month and the final release in April in time for the RailsConf 2019. You can look at the changelog files to know more about the changes. Ruby 2.6.0 released with a new JIT compiler GitHub addresses technical debt, now runs on Rails 5.2.1 7 Web design trends and predictions for 2019
Read more
  • 0
  • 0
  • 10640

article-image-conda-4-6-0-released-with-support-for-more-shells-better-interoperability-among-others
Amrata Joshi
30 Jan 2019
3 min read
Save for later

Conda 4.6.0 released with support for more shells, better interoperability among others

Amrata Joshi
30 Jan 2019
3 min read
On Monday, the team at Anaconda released a new version of Conda, an open source package management and environment management system that runs on Windows, macOS, and Linux. Conda 4.6.0 comes with support for more shells, better interoperability, improved Conda search and more. https://twitter.com/anacondainc/status/1089970114143965185 What’s new in Conda 4.6.0 Support for more shells Conda 4.6.0 comes with extensive initialization support so that more shells can use the conda activate command. It also comes with added support for PowerShell. This release comes with “conda init” functionality which gets Conda working quickly and less disruptively on a wide variety of shells such as zsh, bash, csh, fish, xonsh, and more. Improving interoperability with pip Conda 4.6.0 comes with added preview support for better interoperability. This release uses pip-installed packages to satisfy dependencies. It is possible to remove pip-installed software and replace them with Conda packages when appropriate.   Note: This feature is disabled by default right now because it can significantly impact Conda’s performance.  If you’d like to try it, you can set this condarc setting: conda config --set pip_interop_enabled True Activation of a single environment This release provides an ideal situation where a single environment can be active at any given time. Conda search gets better License and license_family have been added to MatchSpec for conda search. Enhanced fish shell This release features autocompletion for conda env to the fish shell. Major improvements This release comes with clean output for conda <COMMAND> --help and conda config --describe. In Conda 4.6.0, https://repo.anaconda.com/pkgs/pro has been removed from the default value for defaults. Reference to 'system' channel has been removed from this release. This release comes with http error body to debug information. Creating env name with space is no more supported. This release supports MatchSpec syntax in environment.yml files. With this release, the name of 'condacmd' dir has been changed to 'condabin'. It is now possible to disable timestamp prioritization when not needed. In this release, repodata has been cached as UTF-8 for handling unicode characters. Performance of Conda 4.6.0 has been improved to cache hash value on PackageRecord Major Changes In this release, 'conda env attach' and 'conda env upload' have been removed. This release comes with deprecation warnings for 'conda.cli.activate', 'conda.compat', and 'conda.install'. Env name with colon is now supported. In Conda 4.6.0, the default value of max_shlvl has been changed to 0. Non-user facing changes With OO inheritance, activate.py has been cleaned up. The pep8 project has been renamed to pycodestyle. This release comes with copyright headers. Bug fixes In the previous releases, the verify step of conda used to hang for a long time while installing a corrupted package. This has been fixed. In this release, the progress bar uses stderr instead of stdout. It is now possible to pin a list of packages by adding a file named ‘pinned’ to the conda-meta directory with a list of the packages that the user don’t want to update. To know more about Conda 4.6.0, check out the official announcement. Anaconda 5.3.0 released, takes advantage of Python’s Speed and feature improvements Share projects and environment on Anaconda cloud [Tutorial] Visualizing data in R and Python using Anaconda [Tutorial]  
Read more
  • 0
  • 0
  • 10590

article-image-linux-5-1-will-come-with-intel-graphics-virtual-memory-support-and-more
Amrata Joshi
19 Mar 2019
2 min read
Save for later

Linux 5.1 will come with Intel graphics, virtual memory support, and more

Amrata Joshi
19 Mar 2019
2 min read
The team at Linux has put in a lot of efforts on Linux RC 5.1. Last week, Linus Torvalds, the creator of the Linux kernel, announced that the two-week long merge window for Linux 5.1 is finally coming to an end. The first Release Candidate of Linux kernel 5.1 is finally ready for testing. Let’s have a look at the changes and new features which will be coming in Linux RC 5.1. What’s expected in Linux RC 5.1? Intel graphics With this release, the Intel Fastboot is enabled by default. The Intel graphics driver eliminates unnecessary mode-set operations at boot-time by default. The ones on older Intel graphics can still toggle the feature with the i915.fastboot=1 kernel parameter. Fastboot comes with a clean, flicker-free Linux boot experience. This release comes with Intel HDCP 2.2 support. There is an added support for Coffeelake GVT  for Intel's graphics virtualization tech. Virtual memory support This release comes with Nouveau DRM driver that has heterogeneous memory management hook-ups, which provides shared virtual memory support. This release comes with support for AMDGPU Vega 10/20 BACO and other Vega enhancements. There is a new DRM driver in this release known as the Arm Komeda display driver. Added Support This release comes with Support for the Bitmain SoC as a dual-core A53 combined with a single RISC-V core. This release comes with new Arm support including the Socionext Milbeaut, NXP i.MX8QuadXPlus, and a few Rensas SoCs. New accelerator This release comes with Habana Labs Goya accelerator along with its new driver. A new accelerator subsystem is expected in the Linux kernel. The accelerator is based on AI having open-source, mainline kernel support. Power management This release comes with Icelake PMC core support for dealing with the power management controller registers on the CPUs. To know more about this news in detail, check out Linux Kernel’s mailing list. The Linux Foundation announces the CHIPS Alliance project for deeper open source hardware integration Announcing Linux 5.0! Linux use-after-free vulnerability found in Linux 2.6 through 4.20.11
Read more
  • 0
  • 0
  • 10478
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-julia-0-7-has-been-released-time-to-prepare-for-julia-1-0
Pavan Ramchandani
13 Jun 2018
2 min read
Save for later

Julia 0.7 has been released - it's time to prepare for Julia 1.0

Pavan Ramchandani
13 Jun 2018
2 min read
Julia 0.7  announced by the Julia developer team was speculated for a long time after v0.6 was released last year. This sets the gate open for Julia v1.0 since we had seen discussions and forecast about the v1.0 after v0.6 was out. Most features included in Julia v0.7 are the feature set for Julia v1.0 with few improvements and bug-fixes. Nothing is confirmed by the Julia team yet but the community is predicting Julia v1.0 to be next after Julia 0.7. Important features in Julia 0.7 are as follows: New macros defined for testing the local variable. Destructuring in function arguments so that the variable in a function expression gets unpacked into the local variable. Keyword argument containers will be named tuples. Keyword arguments will be required in the declaration to avoid the exceptions. To know the whole list of specifications, check out the release notes page here at Julia’s GitHub repository. Julia 0.7 will be released with exceptions in compatibility for functionalities of Julia 0.6. These exceptions will, however, discontinue in Julia 1.0. Apart from this, Julia 1.0 will add some functionality that will be prevented in Julia v0.7. It seems to be a bit complicated compatibility planning by Julia community, which is expected to get sorted with Julia 1.0. The community hinted Julia 0.7 and 1.0 to be identical. This means programs that are running on Julia 0.7, will work exactly the same on 1.0 without any warnings. The release time for Julia 1.0 is expected to be short after Julia 0.7. Julia 0.7 is said to be stable and production ready, but the community advised to keep the deprecations of features in mind. Additionally, when developers upgrade to Julia 1.0, they will have to run the tests and use cases all over again. Basics of Programming in Julia Computer vision is expanding quickly. Here’s why. Visual Studio 2019: New features you should expect to see
Read more
  • 0
  • 0
  • 10441

article-image-amazon-announces-the-public-preview-of-aws-app-mesh-a-service-mesh-for-microservices-on-aws
Amrata Joshi
29 Nov 2018
3 min read
Save for later

Amazon announces the public preview of AWS App Mesh, a service mesh for microservices on AWS

Amrata Joshi
29 Nov 2018
3 min read
Yesterday, at AWS re:Invent, Amazon introduced AWS App Mesh, a service mesh for controlling and monitoring communication easily across the microservices on AWS. App Mesh standardizes the communication of microservices and gives users an end-to-end visibility. It can also be used with Amazon ECS and Amazon EKS to run containerized microservices. Earlier it was difficult to pinpoint the exact location of errors when the number of microservices grew within an application. In order to solve this problem one had to build monitoring and control logic directly into the code and redeploy the microservices. AWS App Mesh solves the problem by making it easy to run microservices by providing visibility and network traffic controls for every microservice in an application. It also removes the need for updating application code. With App Mesh, the logic for monitoring and controlling communications between the microservices is implemented as a proxy. This proxy runs alongside each microservice, instead of being built into the microservice code. App Mesh automatically sends the configuration information to each microservice proxy. The major advantage of placing a proxy in front of every microservice is that the metrics, logs, and traces between the services can automatically get captured. Key Features of AWS App Mesh Identifies issues with microservices App Mesh captures metrics, logs, and traces from every microservice and exports this data to multiple AWS and third-party tools, including AWS X-Ray, Amazon CloudWatch, etc. for monitoring and controlling. This helps in identifying and isolating issues with any microservice in order to optimize the application. Configures the traffic flow With App Mesh one can easily implement custom traffic routing rules for ensuring that every microservice is highly available during deployments and after failures. AWS App Mesh is responsible for deploying and configuring a proxy that manages all communications traffic to and from the containers. It also removes the need for configuring the microservice’s communication protocols, writing custom code, or implementing libraries for operating applications. Works with existing microservices App Mesh can be used with existing or new microservices that are running on Amazon ECS, AWS Fargate, Amazon EKS, and self-managed Kubernetes on AWS. App Mesh monitors and controls the communications for microservices that are running across orchestration systems, clusters. Uses Envoy Proxy for monitoring App Mesh also uses the open source Envoy proxy with a wide range of AWS partner and open source tools for monitoring the microservices. Envoy is a self-contained process, designed to run alongside every application server. To know more about this news, check out the Amazon’s official blog post. Amazon re:Invent announces Amazon DynamoDB Transactions, CloudWatch Logs Insights and cloud security conference, Amazon re:Inforce 2019 Amazon launches AWS Ground Station, a fully managed service for controlling satellite communications, downlink and processing satellite data 3 announcements about Amazon S3 from re:Invent 2018: Intelligent-Tiering, Object Lock, and Batch Operations
Read more
  • 0
  • 0
  • 10385

article-image-winners-for-the-2019-net-foundation-board-of-directors-elections-are-finally-declared
Amrata Joshi
29 Mar 2019
4 min read
Save for later

Winners for the 2019 .NET Foundation Board of Directors elections are finally declared

Amrata Joshi
29 Mar 2019
4 min read
The result for the .NET Foundation Board of Directors 2019 is finally revealed. Out of the 476 voters, 329 casted ballots in this election. After counting the ballots using Scottish STV (Single Transferable Vote), Jon Skeet, Sara Chipps, Phil Haack, Iris Classon, Ben Adams, Oren Novotny, and Beth Massi were declared as winners. In total there were 45 candidates competing for 6 seats. Beth Massi has been appointed by Microsoft while the rest got elected by .NET Foundation Members. Following are the winner profiles Jon Skeet: A Java developer at Google in London and is also C# author and community leader. https://twitter.com/jonskeet/status/1111540160305475584 Sara Chipps: Engineering Manager at Stack Overflow. https://twitter.com/SaraJChipps/status/1111458522418552835 Phill Hacck: A developer and author, and best known for his blog, Haacked. https://twitter.com/haacked/status/1111493618441703427 Iris Classon: Software developer, cloud architect at Konstrukt. She is also a member of MEET (Microsoft Extended Experts Team) Ben Adams: Co-founder and CTO of Illyriad Games. https://twitter.com/jongalloway/status/1111324076981682176 Oren Novotny: Microsoft’s Regional Director, MVP, and chief architect of DevOps & modern software at Insight. https://twitter.com/onovotny/status/1111410983749115905 Beth Massi: Product Marketing Manager for the .NET Platform at Microsoft and has previously worked for the .NET Foundation in 2014. https://twitter.com/BethMassi/status/1108838511069716480 How did the election process go The candidate's votes for a round are calculated by taking the sum of the votes from the previous round and votes received in the current round. The votes received in the current round and votes transferred away in the current round represent “votes being transferred”. The single transferable vote system was opted because it is a type of ranked-choice voting which is used for electing a group of candidates, for instance, a committee or a council. In this type of voting, the votes are transferred from losing candidates to other choices in the ballot. Round 1 The first round considered the count of first choices. Since none of the candidates had surplus votes so the candidates who received the least number of votes or no votes at all got eliminated and votes for other candidates got transferred for the next round. Round 2 Round 2 calculated the count after eliminating Lea Wegner and Robin Krom who received 0 votes. There was a tie between, Lea Wegner and Robin Krom while choosing candidates to eliminate. Though Lea Wegner was later chosen by breaking the tie randomly. Since none of the candidates had surplus votes they got transferred for the next round. Round 3 Round 3 calculated the count after eliminating Robin Krom and transferring votes. Since none of the candidates had surplus votes they got transferred for the next round. Round 4 Round 4 calculated the count after eliminating Nate Barbettini and transferring votes. There was a tie between the candidates Peter Mbanugo, Robert McLaws, Virgile Bello, Nate Barbettini, and Marc Bruins while choosing candidates to eliminate. In this round candidate, Nate Barbettini was chosen by breaking the tie randomly. Since none of the candidates had surplus votes they got transferred for the next round. Round 5 The fifth round considered the count after eliminating Marc Bruins and transferring votes. There was a tie between the candidates, Peter Mbanugo, Robert McLaws, Virgile Bello, and Marc Bruins while choosing the candidates to eliminate. Out of which, Marc Bruins was chosen by breaking the tie randomly. Since none of the candidates had surplus votes they got transferred for the next round. Collectively there were 41 such rounds where each round was an elimination round and then finally the winners were declared. To know more about this news, check out Opavote’s blog post. Fedora 31 will now come with Mono 5 to offer open-source .NET support Inspecting APIs in ASP.NET Core [Tutorial] .NET Core 3 Preview 2 is here!
Read more
  • 0
  • 0
  • 10370

article-image-elixir-1-8-released-with-new-features-and-infrastructure-improvements
Prasad Ramesh
15 Jan 2019
3 min read
Save for later

Elixir 1.8 released with new features and infrastructure improvements

Prasad Ramesh
15 Jan 2019
3 min read
In a blog post yesterday, Elixir 1.8 was announced. It comes with a variety of infrastructure level improvements, faster compilation time, common patterns, and added features around introspection of the system. Elixir is a functional general-purpose programming language that runs on top of the Erlang virtual machine. Custom struct inspections with Elixir 1.8 Elixir 1.8 has a derivable implementation of the Inspect protocol. This makes it simpler to filter data from existing data structures whenever they are inspected. If there is a user struct containing security and privacy sensitive information inspecting a user via inspect(user), will include all fields. This can cause information like emails and encrypted passwords to appear in logs or error reports. Defining a custom implementation of the Inspect protocol avoided this behavior. Elixir v1.8 makes it easier by allowing users to derive the Inspect protocol. Due to this, all user structs will be printed while all remaining fields are collapsed. Passing @derive {Inspect, except: [...]} will keep all fields by default and exclude only some. Custom time zone database support Elixir v1.8 defines a Calendar.TimeZoneDatabase behaviour that allows developers to add their own time zone databases. An explicit contract for time zone behaviours are defined, as a result, Elixir can now extend the DateTime API. This allows addition of functions like DateTime.shift_zone/3. The default time zone database in Elixir is Calendar.UTCOnlyTimeZoneDatabase which can only handle UTC. In other Calendar related improvements, Date.day_of_year/1, Date.quarter_of_year/1, Date.year_of_era/1, and Date.day_of_era/1 are added. Speedy compilation and performance improvements Improvements to the compiler have been made over 2018 which makes Elixir v1.8 compile code about 5% faster. The Elixir compiler also emits more efficient code used for range checks in guards, charlists with interpolation, and when working with records via the Record module. EEx templates are also optimized and emit more compact code which also runs faster. Better instrumentation and ownership with $callers The Task module is a way to spawn light-weight processes to perform concurrent work. When a new process is spawned, Elixir annotates the parent process via the $ancestors key. Instrumentation tools can use this information to track the relationship between events occurring within multiple processes. But many times tracking only $ancestors is not sufficient. Developers are recommended to start tasks under a supervisor, as it gives more visibility and control of task termination when a node shuts down. The relationship between code and the task is tracked via the $callers key present in the process dictionary. This aligns well with the existing $ancestors key. In Elixir 1.8 when a task is spawned directly from code without a supervisor, the parent process of the code will be listed under $ancestors and $callers. This feature allows instrumentation and monitoring tools to better track and relate the events in the system. This can also be used by the Ecto Sandbox which enables developers to run concurrent test against the database. It uses transactions and an ownership mechanism in which each process explicitly gets a connection assigned to it These were the major changes, for full list of improvements and bug fixes, you can take a look at release notes. Elixir Basics – Foundational Steps toward Functional Programming Erlang turns 20: Tracing the journey from Ericsson to Whatsapp Python governance vote results are here: The steering council model is the winner
Read more
  • 0
  • 0
  • 10261
article-image-eclipse-foundation-releases-updates-on-its-jakarta-ee-rights-to-java-trademarks
Vincy Davis
07 May 2019
3 min read
Save for later

Eclipse foundation releases updates on its Jakarta EE Rights to Java trademarks

Vincy Davis
07 May 2019
3 min read
Last week, Eclipse Foundation made an announcement about regarding an update on Jakarta EE Rights to Java Trademarks. This announcement also gives an update on the complex and confidential negotiations between the Eclipse Foundation and Oracle, which includes a summary of all the progress till date and the implications of the agreement and use of Java trademarks and the javax namespace. In 2017, Oracle announced the migration of Java EE to the Eclipse Foundation. However, the process has been slow and constant. The mutual intention of the Eclipse Foundation and the Oracle team was to allow the evolution of the javax package namespace in Jakarta EE specifications. Unfortunately, they could not reach a mutual agreement on the same. Read More: Jakarta EE: Past, Present, and Future It has now been decided that the javax package namespace and the Java trademarks such as the existing specification names cannot be evolved or used by the Jakarta EE community. This is believed to be the best possible outcome for the community by the Eclipse Foundation and Oracle. In its official post, Eclipse Foundation states that Oracle’s Java trademarks are the property of Oracle only. Hence, the Eclipse Foundation has no rights to use them. They have further mentioned some implications including: The javax package namespace may be used within Jakarta EE specifications but may be used “as is” only. No modification to the javax package namespace is permitted within Jakarta EE component specifications. Jakarta EE specifications that continue to use the javax package namespace must remain TCK compatible with the corresponding Java EE specifications. Jakarta EE component specifications using the javax package namespace may be omitted entirely from future Jakarta EE Platform specifications. Specification names must be changed from a “Java EE” naming convention to a “Jakarta EE” naming convention. This includes acronyms such as EJB, JPA or JAX-RS. Additionally, any specification which uses the javax namespace will continue to carry the certification and container requirements which Java EE has had in the past. Also, the Jakarta EE Working Group along with Oracle will continue to work on the Jakarta EE 8 specification and is looking forward to future versions of the Jakarta EE specifications. The team is also sure that many application servers will be certified as Jakarta EE 8 compatible. After Jakarta EE 8, the main aim of Jakarta EE 9 will be to maximize compatibility for future versions which will help in not suppressing any innovation. There have been mixed reactions to this announcement. Some feel that this is a great change towards openness and avoids confusion, whereas others believe that lawyers of tech companies are making it difficult for software to get developed. A Reddit user has commented, “With these changes, it is more likely that developer would stop using it and switch to other frameworks.” To know more about this news in detail, visit The Eclipse Foundation’s official blog post. Introducing Node.js 12 with V8 JavaScript engine, improved worker threads, and much more Eclipse announces support for Java 12 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
  • 10051

article-image-researchers-develop-new-brain-computer-interface-that-lets-paralyzed-patients-use-tablets
Sugandha Lahoti
27 Nov 2018
3 min read
Save for later

Researchers develop new brain-computer interface that lets paralyzed patients use tablets

Sugandha Lahoti
27 Nov 2018
3 min read
Researchers have developed a new iBCI (intracortical brain-computer interface) that allows people with paralysis to control an unmodified, commercially available tablet. This research was based on the fact that most general-purpose computers have been difficult to use for people with some form of paralysis.  In their study, three research participants with tetraplegia who had multielectrode arrays implanted in motor cortex as part of the BrainGate2 clinical trial were invited. Using the iBCI, their neural activity was decoded in real time with a point-and-click wireless Bluetooth mouse. This allowed participants to use common and recreational applications (web browsing, email, chatting, playing music on a piano application, sending text messages, etc.). iBCI also allowed two participants to “chat” with each other in real time.   The architecture of the setup  Participants used seven common applications on the tablet: an email client, a chat program, a web browser, a weather program, a news aggregator, a video sharing program, and a streaming music program.   The system consisted of a NeuroPort recording system to record neural signals from the participant’s motor cortex.   These signals were routed into a real-time computer running the xPC/Simulink Real-Time operating system for processing and decoding. The output of the decoding algorithm was passed to a Bluetooth interface configured to work as a wireless computer mouse using the Bluetooth Human Interface Device (HID) Profile.   This virtual Bluetooth mouse was paired with a commercial Android tablet device with no modifications to the operating system.   Participants performed real-time “point-and-click” control over a cursor that appeared on the tablet computer once paired through the Bluetooth interface.  The cursor movements and clicks by participants were decoded from neural activity using Kalman filters. 2D cursor velocities were estimated using a Recalibrated Feedback Intention Trained Kalman Filter (ReFIT-KF) and a cumulative closed-loop decoder. Click intentions were classified using a hidden Markov model and a linear discriminant analysis classifier.  Future work  The researchers want to expand the control stock with additional decoded signals, leveraging more optimized keyboard layouts, exploring accessibility features, and controlling other devices and operating systems. They also want to extend the output of the iBCI to support additional dimensions that may be used to command advanced cursor features.   For detailed analysis, go through the research paper.  What if buildings of the future could compute? European researchers make a proposal.  Babysitters now must pass Perdictim’s AI assessment to be “perfect” to get the job  Mozilla introduces LPCNet: A DSP and deep learning-powered speech synthesizer for lower-power devices 
Read more
  • 0
  • 0
  • 9999

article-image-kotlin-1-3-m1-arrives-with-coroutines-and-new-experimental-features-like-unsigned-integer-types
Richa Tripathi
01 Aug 2018
3 min read
Save for later

Kotlin 1.3 M1 arrives with coroutines, and new experimental features like unsigned integer types

Richa Tripathi
01 Aug 2018
3 min read
After Kotlin had released 1.2 nearly six months ago, the official language for Android finally announced the first release candidate of their next major version: ‘1.3 M1’. This new release comes with plenty of features most notably coroutines, new experimental unsigned arithmetic, and much more. Coroutines are no longer a pipe dream Coroutines have been in the experimental stage since they were first introduced in Kotlin 1.1. Kotlin 1.3 brings Coroutines to limelight as JetBrains’ Ilya Gorbunov explained in his blog post announcing Kotlin 1.3-M1. Coroutines simplify asynchronous programming by putting the complications into libraries. With coroutines, developers can express the logic of the program sequentially and the library will take care of the asynchrony. What’s more interesting is that with Kotlin coroutines developers can call asynchronous mechanisms from different programming languages into their own program as libraries. For example  async/await from C# and ECMAScript, channels and select from Go, and generators/yield from C# and Python. The Kotlin team has significantly improved the features surrounding coroutines since they were first introduced, some notable features include support callable references to suspending functions and serializability of all coroutine-related classes. But that’s not it, the Kotlin team plan to add a multiplatform version of the coroutine API which will support iOS through Kotlin/Native. Experimental New Features The technique of introducing experimental features in a release version helps the development team to gather valuable feedback from the community and implement their suggestions in the future releases, and that is exactly what the the Kotlin team has been doing. We saw a similar implementation with Coroutines in the previous version, and now the team is introducing a plethora of new experimental features such as inline classes, unsigned integer types, and annotations for marking an experimental API and opting-in for it. In order to use these experimental features in projects, developers would have to explicitly choose an opt-in flag. Without an opt-in, usage of a feature will be marked as warnings or errors. Other small features in Kotlin 1.3 While the bigger new features have been released as experimental there are numerous small features which have been released in this new version. Capturing when subject in a variable Capturing the subject of when expression in a variable is now supported in Kotlin language. This feature was one of the most popular feature request in Kotlin team’s issue tracker. This addition makes the response variable properly scoped within when expression, and makes the logic flow in a more expression-like fashion. @JvmStatic and @JvmField in companions of interfaces Kotlin interfaces can now expose static members (fields and methods) to Java clients. However, to use @JvmField on interface companion properties, all of them must be public final vals and all of them must be annotated. Also, the -jvm-target compiler option must be at least 1.8. Nested declarations in annotation classes Before 1.3, annotation classes could not have bodies in Kotlin. This release relaxes this limitation, allowing them to have nested classes, interfaces, and objects including a companion object. These are just a select set of features that make up for the entire release announcement of Kotlin 1.3. If you are interested in checking out the entire feature-set including the new APIs that are available in the standard library and the breaking changes, you can refer to JetBrain’s official blog. Kotlin/Native 0.8 recently released with safer concurrent programming 4 operator overloading techniques in Kotlin you need to know Building RESTful web services with Kotlin
Read more
  • 0
  • 0
  • 9929
article-image-rust-survey-2018-key-findings-80-developers-prefer-linux-webassembly-growth-doubles-and-more
Bhagyashree R
28 Nov 2018
4 min read
Save for later

Rust Survey 2018 key findings: 80% developers prefer Linux, WebAssembly growth doubles, and more

Bhagyashree R
28 Nov 2018
4 min read
Yesterday, the Rust Survey team published the results of their annual Rust survey of 2018. This year’s survey was launched in 14 different languages which helped in increasing the number of responses to 5991. The survey highlights that there is a slight increase in medium to large investments in Rust, most of the users prefer Linux over Windows for development, and more. Growth in the number of Rust users Rust is seeing a steady growth in the number of Rust users. Nearly 23% of these users have been using it for 3 months or less and up to a quarter of them are using it for at least 2 years. Talking about how much time it takes to get productive in Rust, 40% of Rust users said it takes less than a month of use, and over 70% felt productive in their first year of use itself. Over 22% of the Rust users do not feel productive, out of which only about 25% are in their first month of use. Larger overall investments in Rust projects Rust projects are seeing larger overall investments and trending to larger sizes. The percentage of medium to large investments in Rust has increased from 8.9% in 2016, to 16% in 2017, to 23% this year. There is also some growth in the Rust daily usage from 17.5% last year to nearly a quarter of users this year. In total, Rust weekly total usage has risen from 60.8% to 66.4%. Difficulty level of common Rust concepts Most of the Rust users consider themselves to be intermediates in terms of expertise in Rust. The users felt that Enums and Cargo are the easiest concepts to learn, followed by Iterators, Modules, and Traits, Trait Bounds, and Unsafe. The most difficult concepts are Macros, Ownership & Borrowing, and Lifetimes. Usage Patterns of Rust tools Same as last year, users are preferring the current stable release of Rust. There is a slight increase in the number of the Nightly compiler users, which is now over 56% (up from 51.6% of last year). Users are opting Nightly for accessing 2018 edition, asm, async/await, clippy, embedded development, rocket, NLL, proc macros, and wasm. The percentage of users who see a breakage during a routine compiler update remains the same as last year (7.4%). These breakages generally required minor fixes, though some reported having moderate or major fixes to upgrade to the next stable compiler. 90% of the users voted rustup as their first choice for installing Rust. Linux distros is the second option with only 17% of Rust installs. Tools like rustfmt and rustdoc got lots of positive support, following these is the clippy tool. The IDE support tools Rust Language Server and racer also had positive support but unfortunately, of the tools surveyed, generated a few more dislike votes and comments. The bindgen tool has relatively small userbase. Preferred development platforms of Rust users While there is some increase in Windows usage from 31% last year to 34% this year, Linux platform continues to be popular among Rust developers with 80% of users opting it. While there is not much change from the last year for other target platforms, WebAssembly is an exception. It has shown nearly doubled up growth from last year’s 13% to this year’s 24%. In editors, VSCode has bested Vim, the front-runner in editors for two years, which grew from 33.8% of Rust developers to 44.4% this year. Increase in commercial use of Rust Rust’s part-time usage at the workplace has increased from 16.6% to 21.2%. Its full-time commercial has doubled from 4.4% to 8.9%. In total, its commercial use has grown from 21% to just over 30% of Rust users. Though there is an increase in the commercial use, over a third of Rust users aren’t sure their companies will invest in Rust. To know more in detail, read the annual Rust Survey 2018. Rust Beta 2018 is here 3 ways to break your Rust code into modules Red Hat announces full support for Clang/LLVM, Go, and Rust
Read more
  • 0
  • 0
  • 9874

article-image-facebook-open-sources-sparta-to-simplify-abstract-interpretation
Natasha Mathur
21 Feb 2019
2 min read
Save for later

Facebook open sources SPARTA to simplify abstract interpretation

Natasha Mathur
21 Feb 2019
2 min read
Facebook announced yesterday that it’s making SPARTA, a  C++ library of software components that help build high-performance static analyzers, available as open-source yesterday. “This library is part of a broad, long-term vision to expand the use of abstract interpretation in our tools at Facebook. We are open-sourcing SPARTA to provide an industrial-scale abstract interpretation infrastructure for the broader static analysis community to use”, states the Facebook team. SPARTA is aimed at simplifying the engineering of Abstract Interpretation as its set of software components consist of a simple API. Since building an industrial-grade static analysis tool based on Abstract Interpretation from the very start is difficult, SPARTA is very beneficial.It’s also highly performant and can be assembled easily to build a production-quality static analyzer. Abstract Interpretation refers to a theory of semantic approximation that provides a foundational framework for the design of static program analyzers. SPARTA works by providing important data structures that are used in virtually every static analyzer. SPARTA encapsulates the complex implementation details of abstract interpretation and hence frees the developer to focus on the main fundamental axes in the design of an analysis. Other than that, all the static analyzers that are used in the ReDex code optimizer for Android are based on SPARTA’s library. These run on industrial-scale Android apps from Facebook and other large companies that have adopted ReDex.SPARTA makes it possible for these analyses to be expressed concisely and also guarantees high-level performance. Apart from the performance related benefits, SPARTA also makes it easier to write correct analyses. The algorithms and data structures implemented in SPARTA are also highly generic. It is language-independent; despite its use in ReDex, and contains no Android-specific logic. Also, its algorithms are capable of generalizing across different scopes of static analyses. “In the future, we could consider adding support for other features, including numerical abstractions or points-to analysis”, states the Facebook team. For more information, check out the official SPARTA blog post. Uber releases Ludwig, an open source AI toolkit that simplifies training deep learning models for non-experts Facebook open sources the ELF OpenGo project and retrains the model using reinforcement learning Google open sources ClusterFuzz, a scalable fuzzing tool
Read more
  • 0
  • 0
  • 9780
Modal Close icon
Modal Close icon