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-joel-spolsky-makes-room-for-a-new-ceo-as-he-becomes-chairman-of-stack-overflow
Bhagyashree R
01 Apr 2019
3 min read
Save for later

Stack Overflow is looking for a new CEO as Joel Spolsky becomes Chairman

Bhagyashree R
01 Apr 2019
3 min read
Last week, Joel Spolsky announced that he is stepping down as the CEO of Stack Overflow and taking up a new role as Chairman of the site's Board. That means that one of the most popular question and answer sites on the planet - and one of the most important for software developers - is now looking for its new CEO. https://twitter.com/spolsky/status/1111267189133316097 Back in 2008, Spolsky, along with with Jeff Atwood, co-founded Stack Overflow with the idea of bringing voting and editing to a Q&A site. The idea was to make it easier for programmers to find the right answer, instead of scrolling endlessly in a discussion forum. Explaining what makes Stack Overflow different from other Q&A sites on his blog, Joel on Software, Spolsky said, “already, it’s better than other Q&A sites, because you don’t have to read through a lot of discussion to find the right answer if it’s in there somewhere.” At a Microsoft conference, just six months after the site’s launch, Spolsky asked how many developers were using the site. He and Atwood were pleasantly surprised when one-third of the crowd rose their hands. Today, however, practically every developer visits Stack Overflow to learn from other developers. In addition to the huge user base, the company has now grown to almost 300 employees and has achieved $70m in revenue last year. For the future of Stack Overflow, Spolsky hopes to make the platform more inclusive and welcoming for new users. “The type of people Stack Overflow serves has changed, and now, as a part of the developer ecosystem, we have a responsibility to create an online community that is far more diverse, inclusive, and welcoming of newcomers,” he adds. Many Stack Overflow users have a love/hate relationship with the platform. Some developers find the site intimidating and unwelcoming - a fact that Stack Overflow itself has acknowledged in the past. For example, threads can sometimes become filled with condescending, sarcastic, and dismissive comments, particularly when newcomers fail to follow site rules. They are simply expected to know things right from the start. A Stack Overflow user shares a solution to this, “I think if new users were given a walkthrough of the site, how it works, and what's expected, it would be MUCH more welcoming, and the comments (while still sometimes unnecessarily sarcastic) would be more warranted, since the requirements have been clearly laid out.” Saying things like “thank you” and “please” are considered noise and a distraction from the actual point. There are endless examples of such behavior, but they are not really limited to newbies. When a woman seeking help on a Flexbox margins issue posted on Stack Overflow, she got a message saying, “if you don’t get this…you have no business making a portfolio as a web developer”. April Wensel, the founder of Compassionate Coding, has been writing consistently about the problems users sometimes face on Stack Overflow, sharing numerous examples of people being rude and demeaning. She hopes that the next CEO will take the right measures to make the site inclusive and “more human”: https://twitter.com/aprilwensel/status/1111331785730719745?s=19 Read Spolsky's announcement at the Stack Overflow blog. Stack Overflow celebrates its 10th birthday as the most trusted developer community 4 surprising things from StackOverflow’s 2018 survey. StackOverflow just updated its developers’ salary calculator; includes 8 new countries in 2018.  
Read more
  • 0
  • 0
  • 19500

article-image-how-has-rust-and-webassembly-evolved-in-2018
Prasad Ramesh
07 Dec 2018
3 min read
Save for later

How has Rust and WebAssembly evolved in 2018

Prasad Ramesh
07 Dec 2018
3 min read
In a blog post, the state of Rust and WebAssembly for 2018 was discussed by the Rust-Wasm team. The Rust and WebAssembly domain working group worked to make a shared vision into a reality: “Compiling Rust to WebAssembly should be the best choice for fast, reliable code for the Web.” With the evolution of ideas, another core value was formed: “Rust and WebAssembly is here to augment your JavaScript, not replace it.” Goals were set for the joint ecosystem. #1 JavaScript interoperation with zero-cost By leveraging zero-cost abstractions Rust enables fast and expressive code. The Rust team wanted to apply this principle to the whole JS interop infrastructure. Developers can write their own boilerplate to pass DOM nodes to wasm generated by Rust but that shouldn’t be the case. Hence they created wasm-bindgen as the foundation for JavaScript interoperation with zero cost. The communication between JavaScript and WebAssembly is facilitated by wasm-bindgen. This generates glue code which developers would have had to write themselves. With the wasm-bindgen ecosystem helps developers to: Exporting rich APIs from Rust-generated wasm libraries. This makes them callable from JavaScript. Import JavaScript and Web APIs into the Rust-generated wasm. #2 Rust-Generated Wasm as an NPM library Good integration is about fitting Rust-generated WebAssembly into the JavaScript’s distribution mechanisms. A big part of that is NPM. The Rust team built a wasm-pack to creating and publishing NPM packages from Rust and WebAssembly code. Sharing Rust-generated wasm modules is now as simple as: wasm-pack publish #3 To get developers productive fast The Rust team wrote a Rust and WebAssembly book to teach all the ins and outs of WebAssembly development with Rust. It features a tutorial to build an implementation of the Conway's Game of Life and teaches you how to write tests, debugging, and diagnosing slow code paths. Getting a Rust-WebAssembly project set up initially involves a boilerplate and configuration that new users may find difficult or experienced ones may find as a waste of time. Hence the Rust team has created a variety of project templates for different use cases: wasm-pack-template to create NPM libraries with Rust and Wasm. create-wasm-app to create Web applications built on top of Rust-generated wasm NPM libraries. rust-webpack-template to create whole Web applications with Rust, WebAssembly, and the Webpack bundler. rust-parcel-template to create whole Web applications with Rust, WebAssembly, and the Parcel bundler. #4 Rust-Generated Wasm needs to be testable and debuggable wasm can’t log any panics or errors because by default as it doesn’t have any “syscall” or I/O functionality. Imports have to be manually added for that, and then instantiate the module with appropriate functions. To remedy this, and to ensure that panics are always debuggable, the Rust team created the console_error_panic_hook crate. It redirects panic messages into the browser’s devtools console. For more details on the state of the joint ecosytem in 2018, visit the Rust and WebAssembly Blog. Mozilla shares plans to bring desktop applications, games to WebAssembly and make deeper inroads for the future web Red Hat announces full support for Clang/LLVM, Go, and Rust WebAssembly – Trick or Treat?
Read more
  • 0
  • 0
  • 19465

article-image-the-julia-team-shares-its-finalized-release-process-with-the-community
Bhagyashree R
29 Aug 2019
4 min read
Save for later

The Julia team shares its finalized release process with the community

Bhagyashree R
29 Aug 2019
4 min read
The discussions regarding the Julia release process started last year when it hit Julia 1.0. Yesterday, Stefan Karpinski, one of Julia's core developers shared its finalized release process giving details on the kind of releases, the stages of the release process, the phases of a release, and more. “This information is collected from a small set of posts on discourse and conversations on Slack, so the information exists “out there”, but this blog post brings it all together in a single place. We may turn this post into an official document if it’s well-received,” Stefan wrote. Types of Julia releases As with most programming languages that follow Semantic Versioning (SemVer), Julia has three types of releases: Patch, Minor, and Major. A patch release will be represented by the last digit of Julia’s version number. It will include things like bug fixes, low-risk performance improvements, and documentation updates. The team plans to release a patch every month for the current active release branches, however, this will depend on the number of bug fixes. The team also plans to run PackageEvaluator (PkgEval) on the backports five days prior to the patch release. PkgEval is used to run tests for every registered package, update the web pages of Julia packages, and create status badges. A minor release will be represented by the middle digit of Julia’s version number. Along with some bug fixes and new features, it will include changes that are unlikely to break your code and the package ecosystem. Any significant refactoring of the internals will also be included in the minor release. Since minor releases are branched every four months, developers can expect three minor releases every year. A major release will be represented by the first digit of Julia’s version number. Typically, major releases consist of breaking changes, but the team assures to introduce them only when there is an absolute need, for instance, fixing API design mistakes. It will also include low-level changes that can end up breaking some libraries but are essential for fundamental improvements to the language. Julia’s release process There are three phases in the Julia release process. The development phase takes up 1-4 months where new features are introduced, bugs are fixed, and more. Before the feature freeze, alpha (early preview) and beta (later preview) versions are released for developers to test them and to share their feedback. After the feature freeze, a new unstable release branch is created. In the development phase, the new features will be merged onto the master branch, while the bug fixes will go on the release branch. The second phase, stabilization, also takes up 1-4 months where all known release-blocking bugs are fixed and release candidates are built. Then they are checked for any more release-blocking bugs for one week and if there are none a final release is announced. After this, starts the maintenance phase where bug fixes are backported to the release branch. This continues till a particular release branch is declared to be unmaintained. To ensure the quality of releases and maintaining a predictable release rate the Julia team overlaps the development and stabilization phases. “The development phase of each release is time-boxed at four months and the development phase of x.(y+1) starts as soon as the development phase for x.y is over. Come rain or shine we have a new feature freeze every four months: we pick a day and you’ve got to get your features merged by that day. If new features aren’t merged, they’re not going in the release. But that’s ok, they’ll go in the next one,” explains Karpinski. Talking about long term support, Karpinski wrote that there will be four active branches. The master branch is where all the new features, bug fixes, and breaking changes will go. The unstable release branch will include all the active bug fixing and performance work that happens prior to the next minor release. The stable release branch is where the most recently released minor or major version exists. The fourth one is the long term support (LTS) branch, which is currently Julia 1.0. This branch continues to get applicable bug fixes until it is announced to be unmaintained. Karpinski also shared the different fault tolerance personas in Julia. Check out his post on the Julia blog to get a better understanding of the Julia release process. Julia announces the preview of multi-threaded task parallelism in alpha release v1.3.0 Julia Angwin fired as Editor-in-Chief of The Markup prompting mass resignations in protest Creating a basic Julia project for loading and saving data [Tutorial]  
Read more
  • 0
  • 0
  • 19372

article-image-microsoft-open-sources-its-c-standard-library-stl-used-by-msvc-tool-chain-and-visual-studio
Vincy Davis
18 Sep 2019
4 min read
Save for later

Microsoft open-sources its C++ Standard Library (STL) used by MSVC tool-chain and Visual Studio

Vincy Davis
18 Sep 2019
4 min read
Last week, Microsoft open-sourced its implementation of the C++ Standard Library, also known as STL. The library is shipped along with MSVC (Microsoft Visual C++ compiler) toolset and the Visual Studio IDE. This announcement was made by MSVC team at the CppCon 2019 conference, two days ago. Users can use the C++ library repo for participating in the STL's development by reporting issues and commenting on pull requests. The MSVC team is still working on migrating the C++ Standard Library to GitHub. Currently, the Github repository contains all of MSVC's product source code including a new CMake build system and a README. The team also plans to use the GitHub issues to track C++20 features, LWG issues, conformance bugs, performance improvements, and other todos. The roadmap and iteration plans of the C++ Standard Library is also under progress. Why Microsoft open-sourced the C++ Standard Library? Microsoft has open-sourced STL to allow it’s users easy access to all the latest developments in C++ by trying out latest changes and improving pull requests by reviewing them. The MSVC team hopes that as C++ standardization accelerates, it will be easier for users to accept the major features. Microsoft chose to open-source STL particularly due to its unique design and fast-evolving nature when compared to other MSVC libraries and compiler. It is also “easy to contribute to, and somewhat loosely coupled, unlike the compiler.” The official blog post adds, “We also want to contribute back to the C++ community by making it possible to take our implementations of major features.” What are the primary goals of the C++ Standard Library? Microsoft is implementing the latest C++ Working Draft, which will eventually become the next C++ International Standard. The goals of the Microsoft C++ Standard Library are to be conformant to spec, extremely fast, usable, and extensive compatibility. Speed being the core strength of C++, STL needs to be extremely fast at runtime. Thus, the MSVC team spends more time on the optimization of the C++ Standard Library than the most general-purpose libraries. They are also working on parts of the programming experience like compiler throughput, diagnostic messages, and debugging checks. They are also keeping VS 2019 binary-compatible with VS 2017 and VS 2015. They consider source compatibility to be important, but not all-important; breaking source compatibility can be an acceptable cost if done for the right reasons in the right way. The blog post states that MSVC’s STL is distributed under the Apache License v2.0 with LLVM Exceptions and is distinct from the libc++ library. However, if any libc++’s maintainers are interested in taking feature implementations from MSVC’s STL or in collaborating on the development of new features in both libraries simultaneously, the MSVC team will help irrespective of the licensing. Users have welcomed Microsoft’s move to open-source it’s C++ Standard Library (STL). A Redditor says, “Thank you! Absolutely amazing. It's been one of my guilty pleasures ever since I started with C++ to prod about in your internals to see how stuff works so this is like being taken to the magical chocolate factory for me.” Another user comments, “thank you for giving back to the open source world. ❤🤘” Interested readers can learn how to build with the Native Tools Command Prompt and a Visual Studio IDE on Github. Latest news in Tech Open AI researchers advance multi-agent competition by training AI agents in a simple hide and seek environment As Kickstarter reels in the aftermath of its alleged union-busting move, is the tech industry at a tipping point? Linux 5.3 releases with support for AMD Navi GPUs, Zhaoxin x86 CPUs and power usage improvements
Read more
  • 0
  • 0
  • 19361

article-image-openwrt-18-06-4-released-with-updated-linux-kernel-security-fixes-curl-and-the-linux-kernel-and-much-more
Amrata Joshi
05 Jul 2019
3 min read
Save for later

OpenWrt 18.06.4 released with updated Linux kernel, security fixes Curl and the Linux kernel and much more!

Amrata Joshi
05 Jul 2019
3 min read
This month, the OpenWrt Community announced the release of OpenWrt 18.06.4, the fourth service release of the stable OpenWrt 18.06 series. This release comes with a number of bug fixes in the network and system and brings updates to the kernel and base packages. The official page reads, “Note that the OpenWrt 18.06.3 release was skipped in favor to 18.06.4 due to a last-minute 4.14 kernel update fixing TCP connectivity problems which were introduced with the first iteration of the Linux SACK (Selective Acknowledgement)vulnerability patches.” What is the OpenWrt project? The OpenWrt Project, a Linux operating system, targets embedded devices and is a replacement for the vendor-supplied firmware consisting of a wide range of wireless routers and non-network devices.  OpenWrt ​is an easily modifiable operating system for routers and is powered by a Linux kernel. It offers a fully writable filesystem with optional package management instead of creating a single, static firmware. It is useful for developers as OpenWrt provides a framework for building an application without having to create a complete firmware image and distribution around it. It also gives freedom of full customization to the users that allows them to use an embedded device in many ways. What’s new in OpenWrt 18.06.4? In this release, Linux kernel has been updated to versions 4.9.184/4.14.131 from 4.9.152/4.14.95 in v18.06.2. It also comes with SACK (Selective Acknowledgement) security fixes for the Linux kernel and WPA3 security fixes in hostapd. It further offers security fixes for Curl and the Linux kernel, and comes with MT76 wireless driver updates. In this release, there are many network and system service fixes. Many users seem to be happy about this news and they choose routers based on the fact if they are supported by OpenWrt or not. A user commented on HackerNews, “I choose my routers based on if they are supported or not by OpenWrt. And for everybody that asks my opinion, too. Because they might not need/want/know/have a desire to install OpenWrt now, but it's good to have the door open for the future.” Users are also happy with OpenWrt’s interface, a user commented, “For people asking about the user interface of OpenWrt. I think it is very well dun. I get a long with it just fine and I am blind and have to use a screen reader. A11y in Luci is grate. All the pages make sence to most people you do not have to be a networking expert.” To know more about this news, check out OpenWrt’s official page. OpenWrt 18.06.2 released with major bug fixes, updated Linux kernel and more! Mozilla re-launches Project Things as WebThings, an open platform for monitoring and controlling devices Linux use-after-free vulnerability found in Linux 2.6 through 4.20.11  
Read more
  • 0
  • 0
  • 19268

article-image-introducing-luna-worlds-first-programming-language-with-dual-syntax-representation-data-flow-modeling-and-much-more
Amrata Joshi
17 Jun 2019
3 min read
Save for later

Introducing Luna, world’s first programming language with dual syntax representation, data flow modeling and much more!

Amrata Joshi
17 Jun 2019
3 min read
Luna, a data processing and visualization environment, provides a library of highly tailored, domain-specific components as well as a framework for building new components. Luna focuses on domains related to data processing, such as IoT, bioinformatics, data science, graphic design and architecture. What’s so interesting about Luna? Data flow modeling Luna is a data flow modeling whiteboard that allows users to draw components and the way data flows between them. Components in Luna have simply nested data flow graphs and users can enter into any component or into its subcomponents to move from high to low levels of abstraction. It is also designed as a general purpose programming language with two equivalent representations, visual and textual. Data processing and visualizing Luna components can visualise their results and further use colors for indicating the type of data they exchange. Users can compare all the intermediate outcomes and also understand the flow of data by looking at the graph. Users can also work around the parameters and observe how they affect each step of the computation in real time. Debugging Luna can help in assisting and analyzing network service outages and data corruption. In case any errors occur, Luna tracks and display its path through the graph so that users can easily follow and understand where it comes from.  It also records and visualizes information about performance and memory consumption. Luna explorer, the search engine Luna comes with Explorer which is a context-aware fuzzy search engine that lets users query libraries for desired components as well as browse their documentation. Since the Explorer is context-aware, it can easily understand the flow of data and also predict users’ intentions and adjust the search results accordingly. Dual syntax representation Luna is also the world’s first programming language that features two equivalent syntax representations, that is visual and textual. Automatic parallelism Luna also features parallelism that uses the state of the art Haskell’s GHC runtime system which helps to run thousands of threads in a fraction of a second. It also automatically partitions a program and schedules its execution over available CPU cores. Users seem to be happy with Luna, a user commented on HackerNews, “Luna looks great. I've been doing work in this area myself and hope to launch my own visual programming environment next month or so.” Few others are happy because Luna features text syntax supports building functional blocks. Another user commented, “I like that Luna has a text syntax. I also like that Luna supports building graph functional blocks that can be nested inside other graphs. That's a missing link in other tools of this type that limits the scale of what you can do with them.” To know more about this, check out the official Luna website. Declarative UI programming faceoff: Apple’s SwiftUI vs Google’s Flutter Polyglot programming allows developers to choose the right language to solve tough engineering problems Researchers highlight impact of programming languages on code quality and reveal flaws in the original FSE study
Read more
  • 0
  • 0
  • 19239
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 €18.99/month. Cancel anytime
article-image-typescript-3-6-beta-is-now-available
Amrata Joshi
23 Jul 2019
2 min read
Save for later

TypeScript 3.6 beta is now available!

Amrata Joshi
23 Jul 2019
2 min read
Last week, the team behind TypeScript announced the availability of TypeScript 3.6 Beta. The full release of TypeScript 3.6 is scheduled for the end of the next month with a Release Candidate coming a few weeks prior.  What’s new in TypeScript 3.6? Stricter checking TypeScript 3.6 comes with stricter checking for iterators and generator functions. The earlier versions didn’t let users of generators differentiate whether a value was yielded or returned from a generator. With TypeScript 3.6, users can narrow down values from iterators while dealing with them. Simpler emit The emit for constructs like for/of loops and array spreads can be a bit heavy so TypeScript opts for a simpler emit by default that supports array types, and helps in iterating on other types using the --downlevelIteration flag. With this flag, the emitted code is more accurate, but is larger. Semicolon-aware code edits Older versions of TypeScript added semicolons to the end of every statement which was not appreciated by many users as it didn’t go along with their style guidelines. TypeScript 3.6 can easily detect if a file uses semicolons while applying edits and if a file lack semicolons, TypeScript doesn’t add one. DOM updates Following are a few of the declarations that have been removed or changed within lib.dom.d.ts: Instead of GlobalFetch, WindowOrWorkerGlobalScope is used. Non-standard properties on Navigator no more exist. webgl or webgl2 is used instead of experimental-webgl context. To know more about this news, check out the official post.  Next.js 9 releases with built in zero-config TypeScript support, automatic static optimization, API routes and more TypeScript 3.5 releases with ‘omit’ helper, improved speed, excess property checks and more Material-UI v4 releases with CSS specificity, Classes boilerplate, migration to Typescript and more      
Read more
  • 0
  • 0
  • 19198

article-image-summer-2020-internship-with-the-angular-team-from-angular-blog-medium
Matthew Emerick
02 Sep 2020
3 min read
Save for later

Summer 2020 Internship With the Angular Team from Angular Blog - Medium

Matthew Emerick
02 Sep 2020
3 min read
Photo by Emma Twersky TL;DR Our interns were phenomenal! Read on to find out why. We’ve just wrapped up our latest intern cohort on the Angular team. Please believe me when I tell you that there are some outstanding folks out there and we were lucky enough to get to work with a few of them. Because of the ongoing pandemic Google internships were fully remote. We’re fortunate to have had some really special folks because they were outstanding. Let’s take a look at the great work developed during this cohort on the Angular Team! Better Paths for Learners One of things we’re focused on with the team is making sure that the Angular learning journey works for experienced developers and new developers. Our wonderful intern on the DevRel team, Gloria, took this mission to heart. Gloria Nduka zeroed in on the friction of the learning path for new developers. She used those insights to not only help the team but also to create an interactive tutorial focused on helping developers new to Angular. The tutorial puts the output, code, and next steps in the same window allowing learners to reduce context switching. Gloria’s second project focused on reaching out to and partnering with computer science programs to expose more students to the platform. She was able to make some meaningful connections and we are excited to continue to this initiative. Seeing Opportunities in the CDK The Angular CDK is a wonderful resource aimed at abstracting common application behaviors and interactions. Andy Chrzaszcz saw an opportunity to add new functionality to menus and improve accessibility. He added some great new directives to the CDK that give developers an expressive way to build powerful menus for Angular apps! The foundation set via his contributions will give developers the ability to build all types of menus with advanced interactions like sub-menus, intelligent menu closing and more. Developers will be able to craft menus that meet the application’s needs. A Combination of Great Things Popping Up Presenting lists of data for user’s to select from is standard fare in web development. But how can the Angular CDK help with that? Niels Rasmussen gives us that answer with his project aimed at creating directives that provide a foundation for implementing complex combobox UI components. Because the goal of the Angular CDK is to provide common behaviors, Niels’s solution follows suit for the list box and combo box gives developers the freedom to customize the presentation of the UI to their specific use cases. This brings much welcomed flexibility into the fold. Thanks for Sharing Your Gifts With Us Finally, we want to send an enthusiastic thank you and good luck to all of our interns as they finish up their undergraduate programs. We’ve seen the future in you and things are looking incredibly bright. If you’d like to be an intern here at Google, we invite you to apply. The world needs your gifts and talents. These projects will be released in future versions of the platform. Stay tuned for updates. Summer 2020 Internship With the Angular Team was originally published in Angular Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.
Read more
  • 0
  • 0
  • 19178

article-image-amazon-introduces-s3-batch-operations-to-process-millions-of-s3-objects
Amrata Joshi
02 May 2019
3 min read
Save for later

Amazon introduces S3 batch operations to process millions of S3 objects

Amrata Joshi
02 May 2019
3 min read
Just two days ago, Amazon announced that it has made Amazon S3 Batch Operations, a storage management feature for processing millions of S3 objects in an easier way. It is also an automated feature that was first previewed at AWS re:Invent 2018. Users can now set tags or access control lists (ACLs), copy objects to another bucket, initiate a restore from Glacier, and also invoke an AWS Lambda function on each one. Developers and IT administrators can now change object properties and metadata and further execute storage management tasks with a single API request. For example, S3 Batch Operations allows customers to replace object tags, change access controls, add object retention dates, copy objects from one bucket to another, and even trigger Lambda functions against existing objects stored in S3. S3’s existing support for inventory reports are used to drive the batch operations. With this new feature of Batch Operations, users can now easily write code, set up any server fleets, or figure out how to partition the work and distribute it to the fleet. Users can now create a job in minutes with a couple of clicks. S3 uses massive, behind-the-scenes parallelism to manage the job. Users can also create, monitor, and manage their batch jobs using the S3 CLI, the S3 Console, or the S3 APIs. Important terminologies for batch operations Bucket An S3 bucket can hold a collection of any number of S3 objects, with optional per-object versioning. S3 Inventory report An S3 inventory report can be generated when daily or weekly bucket inventory is run. A report can be configured to include all of the objects in a bucket or to focus on a prefix-delimited subset. Manifest A manifest is an inventory report or a file in CSV format that identifies the objects to be processed in the batch job. Batch Action Batch action is the desired action on the objects which is described by a Manifest. IAM role An IAM role provides S3 with permission for reading the objects in the inventory report and perform the desired actions for writing the optional completion report. Batch job Batch references all of the above-mentioned terminologies. Each job has a status and a priority; higher priority (numerically) jobs take precedence over those with lower priority. Most of the users are happy because of this news as they think the performance of their projects might increase. A user commented on HackerNews, “This S3 request rate performance increase removes any previous guidance to randomize object prefixes to achieve faster performance. That means you can now use logical or sequential naming patterns in S3 object naming without any performance implications.” To know more about this news, check out Amazon’s blog post. Amazon finally agrees to let shareholders vote on selling facial recognition software Eero’s acquisition by Amazon creates a financial catastrophe for investors and employees Amazon Alexa is HIPAA-compliant: bigger leap in the health care sector      
Read more
  • 0
  • 0
  • 19039

article-image-java-11-is-here-with-tls-1-3-unicode-11-and-more-updates
Prasad Ramesh
26 Sep 2018
3 min read
Save for later

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

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

Announcing Entity Framework Core (EF Core) 5 RC2 from .NET Blog

Matthew Emerick
13 Oct 2020
5 min read
Today, the Entity Framework Core team announces the second release candidate (RC2) of EF Core 5.0. This is a feature complete release candidate of EF Core 5.0 and ships with a "go live" license. You are supported using it in production. This is a great opportunity to start using EF Core 5.0 early while there is still time to fix remaining issues. We're looking for reports of any remaining critical bugs that should be fixed before the final release. Prerequisites EF Core 5.0 will not run on .NET Standard 2.0 platforms, including .NET Framework. The release candidates of EF Core 5.0 require .NET Standard 2.1. This means that EF Core 5.0 will run on .NET Core 3.1 and does not require .NET 5. To summarize: EF Core 5.0 runs on platforms that support .NET Standard 2.1. How to get EF Core 5.0 Release Candidate 2 EF Core is distributed exclusively as a set of NuGet packages. For example, to add the SQL Server provider to your project, you can use the following command using the dotnet tool: dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-rc.2.20475.6 This following table links to the RC2 versions of the EF Core packages and describes what they are used for. Package Purpose Microsoft.EntityFrameworkCore The main EF Core package that is independent of specific database providers Microsoft.EntityFrameworkCore.SqlServer Database provider for Microsoft SQL Server and SQL Azure Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite SQL Server support for spatial types Microsoft.EntityFrameworkCore.Sqlite Database provider for SQLite that includes the native binary for the database engine Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite SQLite support for spatial types Microsoft.EntityFrameworkCore.Cosmos Database provider for Azure Cosmos DB Microsoft.EntityFrameworkCore.InMemory The in-memory database provider Microsoft.EntityFrameworkCore.Tools EF Core PowerShell commands for the Visual Studio Package Manager Console; use this to integrate tools like scaffolding and migrations with Visual Studio Microsoft.EntityFrameworkCore.Design Shared design-time components for EF Core tools Microsoft.EntityFrameworkCore.Proxies Lazy-loading and change-tracking proxies Microsoft.EntityFrameworkCore.Abstractions Decoupled EF Core abstractions; use this for features like extended data annotations defined by EF Core Microsoft.EntityFrameworkCore.Relational Shared EF Core components for relational database providers Microsoft.EntityFrameworkCore.Analyzers C# analyzers for EF Core Installing the EF Core Command Line Interface (CLI) As with EF Core 3.0 and 3.1, the EF Core CLI is no longer included in the .NET Core SDK. Before you can execute EF Core migration or scaffolding commands, you'll have to install this package as either a global or local tool. To install the RC2 tool globally the first time, use: dotnet tool install --global dotnet-ef --version 5.0.0-rc.2.20475.6 If you already have the tool installed, update it with: dotnet tool update --global dotnet-ef --version 5.0.0-rc.2.20475.6 It’s possible to use this new version of the EF Core CLI with projects that use older versions of the EF Core runtime. What's New in EF Core 5 RC2 We maintain documentation covering new features introduced into each release. This release included several bug fixes. Daily builds EF Core previews and release candidates are aligned with the .NET 5 release cycle. These releases tend to lag behind the latest work on EF Core. Consider using the daily builds instead to get the most up-to-date EF Core features and bug fixes. As with the previews, the daily builds do not require .NET 5; they can be used with GA/RTM release of .NET Core 3.1. Daily builds are considered stable. Contribute to .NET 5 The .NET documentation team is reorganizing .NET content to better match the workloads you build with .NET. This includes a new .NET Data landing page that will link out to data-related topics ranging from EF Core to APIs, Big Data, and Machine learning. The planning and execution will be done completely in the open on GitHub. This is your opportunity to help shape the hierarchy and content to best fit your needs as a .NET developer. We look forward to your contributions! The EF Core Community Standup The EF Core team is now live streaming every other Wednesday at 10am Pacific Time, 1pm Eastern Time, or 17:00 UTC. Join the stream to ask questions about the EF Core topic of your choice, including the latest release candidate. Visit the .NET Community Standup page to preview upcoming shows and view recordings from past shows. Documentation and Feedback The starting point for all EF Core documentation is docs.microsoft.com/ef/. Please file issues found and any other feedback on the dotnet/efcore GitHub repo. Helpful Short Links The following short links are provided for easy reference and access. Main documentation: https://aka.ms/efdocs Issues and feature requests for EF Core: https://aka.ms/efcorefeedback Entity Framework Roadmap: https://aka.ms/efroadmap What's new in EF Core 5.x? https://aka.ms/efcore5 Thank you from the team A big thank you from the EF team to everyone who has used EF over the years! Arthur Vickers Andriy Svyryd Brice Lambson Jeremy Likness Maurycy Markowski Shay Rojansky Smit Patel   Thank you to our contributors! A huge "thanks" to all the community members who have already contributed code or documentation to the EF Core 5 release! The post Announcing Entity Framework Core (EF Core) 5 RC2 appeared first on .NET Blog.
Read more
  • 0
  • 0
  • 18943

article-image-qt-team-releases-qt-creator-4-8-0-and-qt-5-12-lts
Amrata Joshi
07 Dec 2018
5 min read
Save for later

Qt team releases Qt Creator 4.8.0 and Qt 5.12 LTS

Amrata Joshi
07 Dec 2018
5 min read
Yesterday, the Qt team came up with two major releases, Qt Creator 4.8.0 and the long term support of Qt 5.12. In October, the team released the beta version of Qt Creator 4.8.0 and Qt 5.12 LTS beta. Qt, a cross-platform SDK, helps in quickly and cost-effectively designing, developing, deploying, and maintaining software. What’s new in Qt Creator 4.8.0? Programming Language Support Qt Creator 4.8.0 comes with an added support to Language Server Protocol (LSP), a  standardized bridge between an editor/IDE and a programming language that supports various programming languages. Generic highlighter Qt Creator features code completion, highlighting the symbol under cursor, jumping to the symbol definition, and integrating diagnostics from the language server. This code highlighting is possible with the help of generic highlighter. C++ Support This version of Qt Creator has updated Clang code model to LLVM 7.0. The project information that the code model has, can be exported as a compilation database using the  new Build > Generate Compilation Database. New plugins Compilation Database Projects Qt Creator 4.8.0 comes with CompilationDatabaseProjectManager plugin, which helps users to work with compilation databases as projects. A compilation database is a list of files and the compiler flags are used for compiling them. Clang Format The ClangFormat plugin does the auto-indentation with the help of LibFormat, a library that implements automatic source code formatting based on Clang Format. Cppcheck The Cppcheck plugin integrates the diagnostics which are generated by the tool Cppcheck into the editor. LanguageClient This version comes with an experimental plugin, LanguageClient for supporting the language server protocol. Editing Qt Creator 4.8.0 comes with added support for the pastecode.xyz code pasting service. Also, now it is possible to change default editors in MIME type settings. Debugging With Qt Creator 4.8.0, it is possible to simultaneously run multiple debuggers. The debugger toolbar has an additional pop up menu where users can easily switch between running debugger instances and the preset view for starting new debuggers. The running debugger instances can also maintain its own set of views and their layout. Git This version comes with an added support for GitHub and GitLab. A navigation pane has been added to this version that shows branches. Also, an option for copy/move detection to git blame has been added. Android This release comes with an added support for command line arguments, environment variables, and API level 28. Improvements There is also an option for disabling automatic creation of run configurations in Qt Creator 4.8.0 An option that opens terminal with build or run environment has been added in the in this release. In Qt Creator 4.8.0, the process of handling the relative file paths for custom error parsers has been improved. It is now possible to add libraries for other target platforms in Add Library wizard. There are improvements made to the Qbs projects as it has added qmlDesignerImportPaths property for specifying QML import paths for Qt Quick Designer. The remote Linux has been updated to Botan 2.8 in this version. Major bug fixes Issues with local references for operator arguments has been fixed Qt Creator 4.8.0 now supports UI headers. The crash that occurs while removing diagnostics configuration has been fixed now. The issues regarding the detecting language version have been fixed now. It is now possible to process function extraction from nested classes. The startup issue with localized debugger output has been fixed. The previous version gave invalid access to network paths, this problem has now been fixed with Qt Creator 4.8.0. Get more information about Qt Creator 4.8.0 on Qt’s official blog post. Qt 5.12 LTS releases with support for Python, WebAssembly and more Qt for Python Qt 5.12 LTS supports Python by making all of the Qt APIs available to Python developers. The tech preview is currently available to the users for testing, while the official release will come up shortly after Qt 5.12 LTS. Qt for Python also supports Qt’s C++ APIs and makes them accessible to Python programmers. Python developers will now be able to create complex graphical applications and user interfaces. Qt for WebAssembly Qt 5.12 contains the technology preview for Qt for WebAssembly. Qt for WebAssembly compiles a Qt application to run in any modern Web browser. Qt Remote Objects Qt Remote Objects helps in making the IPC between Qt based processes seamless. It exposes the properties, signals, and slots of a QObject to other processes. Major improvements in Qt Creator 5.12 LTS Improvements to JavaScript engine The new release brings improvements to JavaScript engine, which now supports QML. This release now fully supports ECMAScript 7 which enables modern JavaScript and also simplifies the integration of Javascript libraries. Qt Creator 5.12 LTS supports ECMAScript modules and they can be loaded from C++ as well as QML/JS. TableView Qt Creator 5.12 LTS comes with TableView as another type of Item View in Qt Quick, a free software application framework developed and maintained by the Qt Project. Its performance is better than its previous QQC1 implementation. Pointer Handlers The Pointer Handlers of Qt 5.11 are now renamed as Input Handlers and are also fully supported as a feature in Qt Quick in Qt 5.12. The Input Handlers now simplify the creation of complex interactions. This release comes with two new Input Handlers for hovering and dragging items. Windows UI Automation This version comes with Windows UI Automation that allows Qt-based UWP applications to operate with accessibility and programmatic UI control tools. The tablet/touchscreen/touchpad/mouse input has been replaced with a unified implementation based Windows Pointer Input Messages on Windows 8 and above versions. To know more about Qt Creator 5.12 LTS, check out Qt’s official blog post. Qt creator 4.8 beta released, adds language server protocol Qt Creator 4.7.0 releases! How to Debug an application using Qt Creator
Read more
  • 0
  • 0
  • 18855

article-image-state-of-openjdk-past-present-and-future-with-oracle
Kunal Chaudhari
03 Aug 2018
5 min read
Save for later

State of OpenJDK: Past, Present and Future with Oracle

Kunal Chaudhari
03 Aug 2018
5 min read
The Free and Open source Software Developers' European Meeting (FOSDEM) is no longer the home of OpenJDK committers and other regular contributors. Traditionally the OpenJDK community used to meet at FOSDEM every February in Brussels, but since the OpenJDK team is now shipping a release every six months they agreed that it was time to meet more frequently. To fill this need the team decided to hold a Committer's workshop on the first two days of August at Oracle’s campus in Santa Clara, California, USA. Mark Reinhold, the Chief Architect of the Java Platform Group at Oracle was the conductor of the orchestra here. He shed some light on the recent developments to the OpenJDK ecosystem and shared some future plans in yesterday’s sessions. OpenJDK’s new release model is a blessing in disguise It’s probably old news for developers who have been tracking the Java release cycle for some time now, but nonetheless, it’s very important for how things are going to change for OpenJDK. 2018 marked a new dawn for the Java platform. After endless discussions in the community about the new release being a repeat telecast of the same old Java 9 movie—a historic feature driven update to the platform with no head or tail on the release date—Mark put all the rumors to bed. He suggested to replace this feature driven update to a strict, time-based model with a new feature release every six months, update releases every quarter, and a long-term support release every three years. Image Source: OpenJDK Community Update For example, JDK 10 which was a new feature release was made available in March this year. The next release in six months would be JDK 11, which automatically becomes a candidate for a Long term support which would last till 2021, i.e three years as mentioned above. The biggest advantage of this release schedule is the simplified release process; takes off the pressure of adhering to strict deadlines from the developers. It also means that every feature would have to be completed before it makes the final cut, this way there are no multiple minor versions of the same release which confuses the users and developers alike. To what extent will Oracle contribute to the OpenJDK community? In the Committer's workshop Mark Reinhold cleared some questions about Oracle’s contribution to the OpenJDK ecosystem. He mentioned that Oracle engineers would be leading and be contributing only to the current feature releases and first two updates on the quarterly release. The non-Oracle folks can have the opportunity of taking the ownership of long-term release projects. This decision is taken mainly due to the fact that Oracle developers and engineers can focus on the future releases and their functionalities rather than working on support for long-term releases. An important clause which was discussed during this session was Oracle’s smooth transition of leadership whenever the engineers feel that they need to dial down their contribution to a particular release line they would hand over the leadership of that project with relative ease. Oracle finally embraces the Open Source Culture Now the biggest announcement that came in this workshop was Oracle open sourcing the elements of it proprietary JDK. Now before discussing this, it is important for us to understand what exactly is the difference between OpenJDK and Oracle’s proprietary JDK. Sun Microsystems, who originally created Java, announced in the JavaOne conference of 2006, that Java is going to be open sourced. OpenJDK was a result of a free implementation of the Standard Edition (SE) of the Java Platform. When Oracle bought Sun in 2009, they created their own proprietary version of the JDK which catered to the enterprise users who valued stability; and unlike OpenJDK, it has releases planned every three years. Now coming back to the point of open sourcing Oracle’s proprietary JDK, for a long time developers questioned Oracle’s intentions on how they plan to shape the future of Java, especially after their feud with Google over Android that began back in 2010. The open source community felt largely alienated from Oracle as they believed that Oracle was wrong in going after an open source friendly company like Google. Fast forward to 2018 and in this day and age, companies are embracing more and more open source technologies. Oracle has finally decided to open source their JDK which includes elements like Java flight recorder, Java Mission Control, and ZGC which is Oracle’s very own garbage collector. There will still be an Oracle JDK for the purposes of offering commercial support, but it will have the same functionalities as OpenJDK. Finally, Oracle is going to release all the builds for the current releases under the GPL license for developers who prefer non-commercial licensing. To know more about the different sessions that took place at the Committer's Workshop you can visit their Official webpage. Mark Reinhold on the evolution of Java platform and OpenJDK Oracle announces a new pricing structure for Java The top 5 reasons why Node.js could topple Java
Read more
  • 0
  • 0
  • 18647
article-image-kotlin-queues-up-new-compiler-webassembly-back-end-from-infoworld-java
Matthew Emerick
08 Oct 2020
1 min read
Save for later

Kotlin queues up new compiler, WebAssembly back end from InfoWorld Java

Matthew Emerick
08 Oct 2020
1 min read
Kotlin, the JetBrains-developed, statically typed language for JVM, Android, and web development, is due for a compiler rewrite, multiplatform mobile improvements, and a Kotlin-to-WebAssembly compiler back end, according to a public roadmap for the platform. Unveiled October 5, the roadmap covers priorities for the language, which received a strategic boost in 2017 when Google backed it for building Android mobile apps, alongside Java and C++. To read this article in full, please click here
Read more
  • 0
  • 0
  • 18640

article-image-severity-issues-raised-for-python-2-debian-packages-for-not-supporting-python-3
Fatema Patrawala
16 Oct 2019
5 min read
Save for later

Severity issues raised for Python 2 Debian packages for not supporting Python 3

Fatema Patrawala
16 Oct 2019
5 min read
On Monday, Neil Williams a software developer from Linux CodeHelp raised severity issues for Python 2 leaf packages in Debian which do not support Python 3. Neil has urged Debian maintainers to remove Python 2 from all the Debian packages. He specifically mentions one of the packages, Calibre, an e-book management software which is completely open source and licensed under the GNU GPL v3. Calibre is written primarily in Python with some C/C++ code for speed and system interfacing. But it is not yet compatible with Python 3 as it requires at least Python 2.7.9. In 2017, an issue was raised on the Calibre platform by a user, “Python 2 is retiring in thirty months. Calibre needs to convert to Python 3.” Kovid Goyal, author of the Calibre platform responded saying, “No, it doesn't. I am perfectly capable of maintaining python 2 myself. Far less work than migrating the entire calibre codebase.” Now the latest Calibre version requires Python modules which are no longer available for Python 2. Gregor Riepl, a systems engineer in response to Neil says, “As of now, calibre is not of sufficient quality to be part of a Debian release and until it drops all Python2 requirements, it must be considered RC buggy.” This means that Calibre >= 4.0 for the foreseeable future will not be available in Debian. Calibre version 3.48 will be the last version that can run on Debian until the upstream Calibre switches to Python 3. Riepl further asked Neil if his quality argument is due to the Calibre authors resistance to migrate to Python 3. Neil responded, “No, it is based just on the removal of Python2 from Debian and avoiding special cases. Right now, any and every package in Debian testing which requires Python2 and has no Python3 alternative in Debian or ready for upload is of poor quality for no other reason than that. All such packages are of such poor quality that the package should be removed from testing - in an orderly manner, leaf packages first. That is in the best interests of all users, despite what may or may not happen to any particular subset(s) of users.  The decision flow is easy - if the answer in each case is "no", then move on to the next and if you get to the bottom, the bug should be RC. * Has the package already been removed from testing? * Is a Python3-only version already in Debian? * Is a Python3-only version available upstream? * Does the package have any reverse dependencies? * If you get here, it is already too late, there have already been   enough warnings. Upgrade the bug to RC and get the package   auto-removed from testing.” Neil said he was aware of the history of Calibre and understood what would happen if it is no longer a part of Debian. But that did not matter as removal of Python 2 is more important for the next Debian release. He also believes that Calibre has a relatively large user base that doesn't know much or care about the Python 2 deprecation. User will simply perceive dropping Calibre as a bad move on Debian's side and rush towards other packages of significantly lower quality. He further concluded, “Calibre is nothing special - it's a Python2 leaf package like vland and tftpy and any one of far too many others. Calibre can stay in unstable - it will go FTBFS, of course, but that isn't a problem either, IMHO. It's calibre's problem - not Debian's problem. There's always the option of users installing the old Python2 stuff from Buster to keep calibre hobbling along. Debian is the higher priority here. Calibre would be nice to have but it does not deserve to cause delays on anybody else's voluntary effort. No package has that right.” Community feels Python 2 will result in unmaintained runtime and libraries in packages On Hacker News, users are discussing how Python foundation is pushing in packages to migrate to Python 3 that will result in Python 2 having an entire set of unmaintained runtime and libraries in the package repository. One user comments, “Historically, Debian hasn't particularly objected to packaging obsolete versions of programming languages without upstream support. I doubt anyone is checking for potential security problems in Algol 68 and Fortran 77 implementations that Debian ships, and I don't think the people using those packages are particularly inconvenienced by that. It seems a shame that the social pressure to persuade people to port their code to Python 3 means that Debian is going to have weaker support for 10-year-old Python than 40-year-old Fortran. In particular, there are ongoing efforts to try to make it the normal thing for scientists to make the programs they ran on their data available so that their results can be reproduced; aggressively dropping older programming language implementations rather gets in the way of that.” Another user responded, “This isn't about "languages". It's about software! Algol 68 and Fortran 77 may have stale (but maintained) compilers or interpreters in the package repository. Starting very soon - Python 2 will have an entire set of unmaintained runtime and libraries in the package repository. You know - actual, officially, unmaintained software! Unmaintained software that other packages, including Calibre in this example, further build on. Of course they're throwing this out.” Python 3.8 is now available with walrus operator, positional-only parameters support for Vectorcall, and more Core Python team confirms sunsetting Python 2 on January 1, 2020 PyPy will continue to support Python 2.7, even as major Python projects migrate to Python 3
Read more
  • 0
  • 0
  • 18629
Modal Close icon
Modal Close icon