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
Matthew Emerick
05 May 2020
2 min read
Save for later

AzureQstor: R interface to Azure Queue Storage now on GitHub from Revolutions

Matthew Emerick
05 May 2020
2 min read
This post is to announce that the AzureQstor package is now on GitHub. AzureQstor provides an R interface to Azure queue storage, building on the facilities provided by AzureStor. Queue Storage is a service for storing large numbers of messages, for example from automated sensors, that can be accessed remotely via authenticated calls using HTTP or HTTPS. A single queue message can be up to 64 KB in size, and a queue can contain millions of messages, up to the total capacity limit of a storage account. Queue storage is often used to create a backlog of work to process asynchronously. AzureQstor uses a combination of S3 and R6 classes. The queue endpoint is an S3 object for compatibility with AzureStor, while R6 classes are used to represent queues and messages. library(AzureQstor) endp <- storage_endpoint("https://mystorage.queue.core.windows.net", key="access_key") # creating, retrieving and deleting queues create_storage_queue(endp, "myqueue") qu <- storage_queue(endp, "myqueue") qu2 <- create_storage_queue(endp, "myqueue2") delete_storage_queue(qu2) The queue object exposes methods for getting (reading), peeking, deleting, updating, popping (reading and deleting) and putting (writing) messages: qu$put_message("Hello queue") msg <- qu$get_message() msg$text ## [1] "Hello queue" # get several messages at once qu$get_messages(n=30) The message object exposes methods for deleting and updating the message: msg$update(visibility_timeout=30, text="Updated message") msg$delete() You can also get and set metadata for a queue with the AzureStor get/set_storage_metadata generics: get_storage_metadata(qu) set_storage_metadata(qu, name1="value1", name2="value2") It’s anticipated that AzureQstor will be submitted to CRAN before long. If you are a queue storage user, please install it and give it a try; any feedback or bug report is much appreciated. You can email me or open an issue on GitHub.
Read more
  • 0
  • 0
  • 3253

article-image-square-updated-its-terms-of-services-community-raise-concerns-about-restriction-to-use-the-agpl-licensed-software-in-online-stores
Amrata Joshi
07 Jun 2019
4 min read
Save for later

Square updated its terms of services; community raise concerns about restriction to use the AGPL-licensed software

Amrata Joshi
07 Jun 2019
4 min read
Last month, Square a financial services and mobile payment company updated its terms of service effective from this year in July. Developers are raising concerns upon one of the terms of service which restricts the use of AGPL-licensed software in online stores. What is GNU AGPL Affero General Public License The GNU Affero General Public License (AGPL) is a free and copyleft license for software and other kinds of works. AGPL guarantees the freedom for sharing and changing all versions of a program. It protects developers’ right by asserting copyright on the software, and by giving legal permission to copy, distribute and/or modify the software. What does the developer community think about AGPL The Content Restrictions section B-15  under the Online Store, reads, “You will not use, under any circumstance, any open source software subject to the GNU Affero General Public License v.3, or greater.” Few of the developers think that Square has misunderstood AGPL and this rule doesn’t make sense to them. A user commented on HackerNews, “This makes absolutely no sense. I'm almost certain that Square lawyers fucked up big time. They looked at the AGPL and completely misunderstood the context. There is no way in hell anyone can interpret AGPL in a way that makes Square responsible for any license violations their customers make selling software.” While according to few others the code which is licensed under AGPL can’t be used in a website hosted by Square, is what the rule means. Also, if the AGPL code is used by Square then the code might be sent to the browsers along with Square’s own proprietary code. And this could possibly mean that Square has violated AGPL. But a lot of companies follow the same rule, including Google, which clearly states, “WARNING: Code licensed under the GNU Affero General Public License (AGPL) MAY NOT be used at Google.”  But this could be useful for the developers as it keeps the code safe from the big tech companies using it. Chris DiBona, Director of open source at Google, said in a statement to The Register that “Google continues to ban the lightning-rod AGPL open source license within the company because doing so "saves engineering time" and because most AGPL projects are of no use to the company.” According to him, AGPL is designed for closing the "application service provider loophole" in the GPL and which lets ASPs use GPL code without distributing their changes back to the open source community. Under the AGPL, one has to open source their code if they use the AGPL code in their web service, and why would a company like Google do that? As its core components and back-end infrastructure that run its online services are not open source. But it also seems that it is something that needs the interference of lawyers and it is a matter of concern for them as well. https://twitter.com/MarkKriegsman/status/1136589805024923649 Also, the websites using AGPL code might have to provide the entire source code to their back end system. So, few think that AGPL is not an efficient license and they would want to see a better one that goes with the idea of freedom completely. And according to them such licenses should come from copyleft folks and not from the profit-oriented companies. While the rest argue that it is an efficient license and is useful for the developers and giving them enough freedom to share and protecting their software from companies. https://twitter.com/MarkKriegsman/status/1136589799341600769 https://twitter.com/mikeym0p/status/1136392884306010112 https://twitter.com/kjjaeger/status/1136633898526490624 https://twitter.com/fuzzychef/status/1136386203756818433 To know more about this news, check out the post by Square. AWS announces Open Distro for Elasticsearch licensed under Apache 2.0 Blue Oak Council publishes model license version 1.0.0 to simplify software licensing for everyone Red Hat drops MongoDB over concerns related to its Server Side Public License (SSPL)  
Read more
  • 0
  • 0
  • 3084

article-image-introducing-git-fs-a-native-git-client-for-plan-9
Bhagyashree R
05 Apr 2019
2 min read
Save for later

Introducing git/fs: A native git client for Plan 9

Bhagyashree R
05 Apr 2019
2 min read
On Wednesday, Ori Bernstein, a software engineer at Google, shared details about the Git client he has implemented for Plan 9, a non-posix system. The client named git/fs is implemented in Plan 9 flavor C and comes with tools for writing repository contents. Why git/fs is being introduced? This is the first time someone has implemented a Git client for Plan 9. The upstream Git uses a large number of system calls that are not supported in Plan 9. Bernstein came up with this client to enable working with git repositories without having to clone the git interface directly. Git/fs structure Git/fs provides read-only access to scripts via a file system mounted on ‘/mnt/git’. You will find the following content in ‘/mnt/git’: /mnt/git/object: This includes the objects in the repo. /mnt/git/branch: This includes the branches in the repo. /mnt/git/ctl: This is a file showing the status of the repo. /mnt/git/HEAD: This is an alias for the currently checked out commit directory. You can directly access the repository from the shell using standard tools. The scripts and binaries will manipulate the repository contents directly and the changes done will be immediately mirrored in the filesystem. To improve user experience, the author has put more focus on building a consistent and minimalist interface that supports the necessary functionality. Git/fs does not have any concept of the staging area. There are only three states that files can be in namely, ‘untracked', 'dirty', and 'committed'. To do the tracking it uses empty files under .git/index9/{removed,tracked}/path/to/file. The client is currently hosted in Mercurial, a distributed revision-control tool, as it is the current native plan 9 version control system. To know more detail about Git/fs, head over to its Bitbucket repository. Chris Dickinson on how to implement Git in Rust ‘Developers’ lives matter’: Chinese developers protest over the “996 work schedule” on GitHub Sublime Text 3.2 released with Git integration, improved themes, editor control and much more!  
Read more
  • 0
  • 0
  • 3041

article-image-introducing-netlify-dev-for-local-testing-and-live-stream-preview-capabilities
Amrata Joshi
10 Apr 2019
2 min read
Save for later

Introducing Netlify Dev for Local Testing and Live Stream Preview Capabilities

Amrata Joshi
10 Apr 2019
2 min read
Yesterday, the team at Netlify announced the new Netlify Dev for local testing and live stream preview capabilities. Web developers can now locally test serverless functions, API integrations, and CDN Logic; thus promoting instant progress sharing.. They can now have access to capabilities of the Netlify platform on their laptops which means they no longer have to wait for staging or production to test and get feedback on their websites and applications. Developers can live-stream their development server to a cloud URL and share updates as the code and content changes. In a statement to Business Wire, Kent C. Dodds, software engineer and educator, said, “Netlify has a knack for simplifying things that are hard so I can focus on building my web application, and Netlify Dev is another example of that. “I'm excited about being able to simply develop, test, and debug my Netlify web applications with one simple command.” Netlify has compiled its entire edge redirect engine into WebAssembly so developers can locally test before deploying to production. They can now write and validate AWS Lambda functions in the Netlify CLI using modern JavaScript and also deploy them as full API endpoints. Mathias Biilmann, CEO, said, “Netlify is obsessed with developer productivity for building modern sites on the JAMstack. The new local test and share capabilities of Netlify Dev provide a single, simplified workflow that brings everything together—from the earliest code to production global deployment. Netlify Dev can automatically detect common tools like Gatsby, Hugo, Jekyll, React Static, Eleventy and more. It also provides a single development server and workflow. New and existing users can use Netlify Dev by installing or updating the Netlify CLI for creating new sites, setting up continuous deployment and for pushing new deployments. The new features of Netlify Dev are tightly coupled with Netlify's git-based workflow for team collaboration. Netlify brings an instant CI/CD pipeline for the developers who work in Git so that every commit and pull request can build the site into a deploy preview. Developers can easily build and collaborate in the full production environment. To know more about this news, check out Netlify’s official page. Netlify raises $30 million for a new ‘Application Delivery Network’, aiming to replace servers and infrastructure management Introducing Gitpod, a one-click IDE for GitHub IPv6 support to be automatically rolled out for most Netify Application Delivery Network users  
Read more
  • 0
  • 0
  • 2895

article-image-clojurists-together-fund-a-sum-of-9000-each-for-the-open-source-projects-neanderthal-and-aleph
Bhagyashree R
26 Mar 2019
3 min read
Save for later

Clojurists Together fund a sum of $9,000 each for the open source projects, Neanderthal and Aleph

Bhagyashree R
26 Mar 2019
3 min read
Clojurists Together shortlisted two projects namely Neanderthal and Aleph for Q1 of 2019 (February-April) to provide funding for further development of these projects, the details of which they shared yesterday. These projects will get total funding of $9,000, which means $3,000 per month. https://twitter.com/cljtogether/status/1109925960155983872 What is Clojurists Together? Clojurists Together was formed back in 2017 and is run by a board of developers in the Clojure Community. It focuses on keeping the development of open source Clojure software sustainable by raising funds and providing support for infrastructure and documentation. Additionally, it also supports other community initiatives like the Google Summer of Code. The way it works is that open source developers apply for funding, and if the board members think that the project meets the requirements of the Clojurists Together members, their project is selected for funding. Then the developers get paid to work on their project for three months. The funds are raised with the help of Clojure companies and individual developers who can sign up for a monthly contribution or do a one-time donation. This is their fifth funding cycle and previously they have supported datascript, kaocha, cljdoc, Shadow CLJS, clj-http, Figwheel, ClojureScript, and CIDER. Details of the projects funded Neanderthal Neanderthal is a Clojure library for faster matrix and linear algebra computations. It is based on native libraries of BLAS and LAPACK computation routines for both CPU and GPU. On GPU, this library is almost 3000x faster than optimized Clojure/Java libraries and on CPU it is 100x faster than optimized pure Java. This project is being developed by Dragan Djuric, who works on the Uncomplicate suite of libraries and is also the professor of Software Engineering at the University of Belgrade. Within the span of these three months, Djuric plans to work on some of the following updates: Writing an introductory series named Deep Learning from the ground up with Clojure. Integrating Nvidia’s cuSolver into Neanderthal's CUDA GPU engine to provide some key LAPACK functions that are only available on the CPU. Along with these developments, he will also be improving the documentation and tutorials for Neanderthal. Aleph Aleph is a Clojure library for client and server network programming. Based on Netty, it is said to be one of the best options for building high-performance communication systems in Clojure. Oleksii Kachaiev, who is working on Aleph, has planned the following additions for Aleph in the allocated 3 months: Releasing a new version of Aleph with the latest developments Updating internals of the library and interactions with Netty to ease the operational burden and improve performance Implementing missing parts of the websocket protocol To know how far these projects have come, check out this monthly update for February shared by Clojurists Together yesterday. To read the official announcement, visit the official site of Clojurists Together. Clojure 1.10 released with Prepl, improved error reporting and Java compatibility ClojureCUDA 0.6.0 now supports CUDA 10 Clojure 1.10.0-beta1 is out!
Read more
  • 0
  • 0
  • 2879

article-image-geoserver-2-14-2-rolled-out-with-accessible-wmts-bindingimproved-style-editor-and-more
Amrata Joshi
21 Jan 2019
2 min read
Save for later

GeoServer 2.14.2 rolled out with accessible WMTS binding,improved style editor and more

Amrata Joshi
21 Jan 2019
2 min read
Last week, GeoServer 2.14.2 was released., GeoServer is an open source software server based on Java, for sharing geospatial data. It allows users to display their spatial information to the world. It is free and can display data on popular mapping applications such as Google Earth, Google Maps, Microsoft Virtual Earth and Yahoo Maps. Improvements in GeoServer 2.14.2 In GeoServer 2.14.2, WMTS Restful binding is accessible to all users and works with workspace specific services which initially used to be limited to admins. gs:DownloadEstimator now returns a true value when estimating full raster downloads at native resolution. In GeoServer 2.14.2, KML ignores sortBy parameter while querying records. The NullPointerException is thrown while using env() function with LIKE operator in CSS filters. With this release, it’s possible to modify existing GWC blobstore via UI without renaming which was not possible initially. For GetLegendGraphic, this release allows expressions in ColorMapEntry labels. In this release, OpenLayers2 preview is not automatically triggered on IE8. New MongoDB extension has been added GeoServer 2.14.2. The style editor has been improved, it now includes side by side editing Nearest match support has been added for Web Map Service (WMS) dimension handling. Major fixes Rendering issue with JAI-EXT and Input/Output TransparentColor options has been resolved. The Complex MongoDB generated properties are now handled in this release. Check out the official blog post by GeoServer for full release notes. Getting Started with GeoServer ArangoDB 3.4 releases with a native search engine, full GeoJSON support, and more Uber’s kepler.gl, an open source toolbox for GeoSpatial Analysis
Read more
  • 0
  • 0
  • 2872
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at $19.99/month. Cancel anytime
article-image-gnu-guix-1-0-0-released-with-an-improved-user-interface-hassle-free-installation-and-more
Savia Lobo
03 May 2019
3 min read
Save for later

GNU Guix 1.0.0 released with an improved user interface, hassle-free installation and more

Savia Lobo
03 May 2019
3 min read
Yesterday, GNU Guix, a transactional package manager and an advanced distribution of the GNU system, announced the release of GNU Guix version 1.0.0. or “One-point-oh”. This release includes ISO-9660 installation images, a virtual machine image, and with tarballs to install the package manager on top of GNU/Linux distro, either from source or from binaries. Guix users can update by running guix pull. According to their official post, the team says that, “For Guix, 1.0 is the result of seven years of development, with code, packaging, and documentation contributions made by 260 people, translation work carried out by a dozen of people, and artwork and web site development by a couple of individuals, to name some of the activities that have been happening. During those years we published no less than 19 “0.x” releases.” This release, the team says, is a major milestone for those who’ve been on board for several years. Highlights of GNU Guix 1.0.0 On December 6, last year, the GNU Guix team released the 0.16.0 version where 99 people contributed over 5,700 commits at that time. This new One-point-oh release includes the following highlights since the previous version. Hassle-free system installation: The ISO installation image now runs a text-mode graphical installer, which makes system installation less tedious than it was before. The installer is fully translated to French, German, and Spanish. Improved user interface: This release includes aliases for common operations such as guix search and guix install. Diagnostics are now colorized, more operations show a progress bar, there’s a new --verbosity option recognized by all commands, and most commands are now “quiet” by default. New package transformation: There’s a new --with-git-url package transformation option, that goes with --with-branch and --with-commit. Guix now has a uniform mechanism to configure keyboard layout—a long overdue addition. Also, Xorg configuration has been streamlined with the new xorg-configuration record. guix pack -R: This creates tarballs containing relocatable application bundles that rely on user namespaces. Starting from 1.0, guix pack -RR generates relocatable binaries that fall back to PRoot on systems where user namespaces are not supported. Package addition and updates: More than 1,100 packages were added, leading to close to 10,000 packages, 2,104 packages were updated, and several system services were contributed. Multiple language availability: The manual has been fully translated to French, the German and Spanish translations are nearing completion. They have also planned to add a Simplified Chinese translation. One can also help translate the manual into their language by joining the Translation Project. The team also says that Guix 1.0 is a tool that’s both serviceable for one’s day-to-day computer usage and a great playground to explore. Whether users want to help on design, coding, maintenance, system administration, translation, testing, artwork, web services, funding, organizing a Guix install party, the team is welcome to contributions. To know more about the GNU Guix 1.0.0 in detail, read the official blog post. GNU Shepherd 0.6.0 releases with updated translations, faster services, and much more GNU Nano 4.0 text editor releases! GNU Octave 5.1.0 releases with new changes and improvements
Read more
  • 0
  • 0
  • 2781

article-image-r-core-team-releases-r-3-5-3
Natasha Mathur
13 Mar 2019
2 min read
Save for later

R core team releases R 3.5.3

Natasha Mathur
13 Mar 2019
2 min read
The R Core Team released R 3.5.3, last week. R 3.5.3 explores bug fixes to the functions writeLines, setClassUnion, and stopifnot. R 3.5.3 is a minor release and does not consist of many new changes or improvements. What’s new in R 3.5.3? Detection of flags has been improved for C++ 98/11/14/17. There’s a new macro ‘F_VISIBILITY’ chosen as an alternative for ‘F77_VISIBILITY’. This new macro will now become the preferred form in R 3.6.0. The issue in writeLines (readLines (fnam), fnam) has been fixed. It now works as expected. setClassUnion () no longer sends warnings to its users. It instead uses message() on encountering “non local” subclasses in class members. The failure issue in stopifnot (exprs = T) has been fixed. R team usually use the release names that are in references to Peanuts strips/films. The code-name for this release ( R 3.5.3) has been selected as "Great Truth" by the R team, which left its users with a bit of a mystery. R core team also gave a hint to its users, saying that the clue is in the date of the release i.e. 11th March 2019. The code-name has been debunked, with one user tweeting out the reference in one of the Peanuts strips: https://twitter.com/AdelmoFilho42/status/1105079537749184512 For more information, check out the official R 3.5.3 release notes. Android Studio 3.5 Canary 7 releases! LXD 3.11 releases with configurable snapshot expiry, progress reporting, and more GNU Octave 5.1.0 releases with new changes and improvements
Read more
  • 0
  • 0
  • 2755

article-image-notepad-drops-code-signing-for-its-releases-from-version-7-6-4-onwards
Bhagyashree R
08 Mar 2019
3 min read
Save for later

Notepad++ drops code-signing for its releases from version 7.6.4 onwards

Bhagyashree R
08 Mar 2019
3 min read
On Wednesday, Don Ho, Notepad++ developer announced the release of Notepad++ 7.6.4. He also shared that from this release onwards, users will not see the blue-trusted User Access Control (UAC) popup as Notepad++ has dropped code signing for its releases. UAC is a Windows security feature which helps prevent unauthorized changes to operating systems. Why Notepad++ decided to drop code-signing for its releases? DigiCert, a US-based X.509 SSL certificate authority, donated a three years code signing certificate to Notepad++ in 2016, which has now expired. Now when Don Ho was trying to repurchase a new certificate from Certum, a Certification Authority, he was required to mention a Common Name (CN). The problem here is that as Notepad++ is not a company or organization, Certum did not allow him to use Notepad++ as CN. Additionally, he also feels that these code-signing certificates are too overpriced. He added in the blog post, “Notepad++ has done without a certificate for more than 10 years, I don’t see why I should add the dependency now (and be an accomplice of this overpricing industry). I decide to do without it.” This sparked a discussion on Hacker News, and many users supported the developer’s decision. One of the users commented, “Well I don't care if the developer paid the certificate, and I don't see why someone that develops FOSS should pay money for something that doesn't bring to him any of that money back. At least for open source software certificates should be offered for free, in my opinion.” Don Ho mentioned in the announcement that this decision will not have any effect on Notepad++ security whatsoever, but it will be less flexible from before: As always, every release will come with SHA256 hash of the installed and other packages. The SHA256 hash of all components such as ‘SciLexer.dll’, ‘GUP.exe’, and ‘nppPluginList.dll’ will be checked by Notepad++ Markdown support was planned to land in Notepad++ 7.6.3 version, but the needed file wasn’t deployed correctly by the installer. This bug is now fixed in Notepad++ 7.6.4. Additionally, this release fixes a few vulnerable issues and some crash bugs identified in the European Commission's Free and Open Source Software Auditing Bug Bounty program. To read the original announcement, visit Notepad++’s official website. EU to sponsor bug bounty programs for 14 open source projects from January 2019 Browser based Visualization made easy with the new P5.js 5 Reasons to learn programming
Read more
  • 0
  • 0
  • 2743

article-image-cygwin-3-0-0-1-released
Prasad Ramesh
18 Feb 2019
3 min read
Save for later

Cygwin 3.0.0-1 released!

Prasad Ramesh
18 Feb 2019
3 min read
Last Saturday, Cygwin 3.0.0-1 was released. This major release brings support for new file systems, new tools, APIs and other changes. New features in Cygwin 3.0.0-1 Support is added for clocks like CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE, CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM, CLOCK_BOOTTIME_ALARM. Case sensitive directories are now supported. Directories are created automatically by the mkdir(2) command within the Cygwin installation as case sensitive from this release. For this feature to work, you need Windows 10 1803 or later with Windows Subsystem for Linux (WSL) installed. There are two new file input output controls called FS_IOC_GETFLAGS and FS_IOC_SETFLAGS. The actual inode flags are Cygwin-specific. These flags allow setting or resetting the DOS attributes, file sparseness, FS level encryption, and compression. They can also be used for modifying case sensitivity programmatically. There are two new tools namely chattr(1) and lsattr(1) to utilize setting and viewing the new input output controls on the command line. Support for the following has been added: exFAT Linux-specific open(2) flag O_PATH Linux-specific linkat(2) flag AT_EMPTY_PATH. The counter for posix timers (via timer_getoverrun() or siginfo_t::si_overrun) are overrun now The following New APIs have been added: signalfd timerfd_create timerfd_gettime timerfd_settime timer_getoverrun. fork(2) now can now recover from a situation when an in-use executable/dll is removed or replaced during process runtime. This behavior is disabled by default and limited to EXE and DLL files on the same NTFS partition as Cygwin. Changes in Cygwin 3.0.0-1 clock_nanosleep, pthread_condattr_setclock and timer_create now support all clocks with the exception of CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID. clock_setres is a no-op in Cygwin 3.0.0-1. Renaming a file to another name of an in-use file deletes the other file now. Previously, it was moved to the recycle bin. You can use the new POSIX rename semantics on the NTFS starting with Windows 10 1809. Now, open(..., O_TMPFILE) moves the file to trash immediately in order to free the parent directory. The wctype functions are updated to Unicode 11.0. The matherr, SVID, and X/Open math library configurations are removed. IEEE is the default math library configuration now. uname(2) is improved for newly built applications. Kerberos/MSV1_0 S4U authentication replaces creating a token from scratch and Cygwin LSA authentication package. To know about bug fixes etc, you can keep up with the Cygwin mailing list. GitHub launches draft pull requests Introducing RustPython, a Python 3 interpreter written in Rust .NET Core 3 Preview 2 is here!
Read more
  • 0
  • 0
  • 2737
article-image-cimple-a-dsl-to-utilize-cpu-time-from-tens-to-hundreds-of-nanoseconds
Prasad Ramesh
15 Oct 2018
3 min read
Save for later

Cimple: A DSL to utilize CPU time from tens to hundreds of nanoseconds

Prasad Ramesh
15 Oct 2018
3 min read
Three MIT students and an associate professor published a paper in July. They introduce a concept called Instruction and Memory Level Parallelism (IMLP) task programming model for computing. They achieve this via a domain specific language (DSL) called Cimple (Coroutines for Instruction and Memory Parallel Language Extensions). Why Cimple? Before looking at what it is, let’s understand the motivation behind this work. As cited in the paper, currently there is a critical gap between millisecond and nanosecond latencies for process loading and execution. The existing software and hardware techniques hide the low latencies and are inadequate to fully utilize all of the memory from CPU caches to RAM. The work is based on a belief that an efficient, flexible, and expressive programming model can scale all of the memory hierarchy from tens to hundreds of nanoseconds. Modern processors with dynamic execution are more capable of exploiting instruction level parallelism (ILP) and memory level parallelism (MLP). They do this by using wide superscalar pipelines and vector execution units, and deep buffers for inflight memory requests. However, these resources “often exhibit poor utilization rates on workloads with large working sets”. With IMLP, the tasks execute as coroutines. These coroutines yield execution at annotated long-latency operations; for example, memory accesses, divisions, or unpredictable branches. The IMLP tasks are interleaved on a single process thread. They also integrate well with thread parallelism and vectorization. This led to a DSL embedded in C++ called Cimple. What is Cimple? It is a DSL embedded in C++, that allows exploring task scheduling and transformations which include buffering, vectorization, pipelining, and prefetching. A simple IMLP programming model is introduced. It is based on concurrent tasks being executed as coroutines. Cimple separates the program logic from programmer hints and scheduling optimizations. It allows exploring task scheduling and techniques like buffering, vectorization, pipelining, and prefetching. A compiler for CIMPLE automatically generates coroutines for the code. The CIMPLE compiler and runtime library are used via an embedded DSL. It separates the basic logic from scheduling hints and then into guide transformations. They also build an Abstract Syntax Tree (AST) directly from succinct C++ code. The DSL treats expressions as opaque AST blocks. It exposes conventional control flow primitives in order to enable the transformations. The results after using Cimple Cimple is used as a template library generator and then the performance gains are reported. The peak system throughput increased from 1.3× on HashTable to 2.5× on SkipList iteration. It speedups of the time to complete a batch of queries on one thread range from 1.2× on HashTable to 6.4× on BinaryTree. Source: Cimple: Instruction and Memory Level Parallelism Where the abbreviations are Binary Search (BS), Binary Tree (BT), Skip List (SL), Skip List iterator (SLi), and Hash Table (HT). Cimple reaches 2.5× throughput gains over hardware multithreading on a multi-core processor and 6.4× single thread. This is the resulting graph. Source: Cimple: Instruction and Memory Level Parallelism The final conclusions from the work is that Cimple is fast, maintainable, and portable. The paper will appear in PACT’18 to be held 1st to 4th November 2018. You can read it on the arXiv website. KotlinConf 2018: Kotlin 1.3 RC out and Kotlin/Native hits beta Facebook releases Skiplang, a general purpose programming language low.js, a Node.js port for embedded systems
Read more
  • 0
  • 0
  • 2731

article-image-differentialequations-jl-v6-4-0-released-with-gpu-support-in-ode-solvers-linsolve-defaults-and-much-more
Amrata Joshi
10 May 2019
3 min read
Save for later

DifferentialEquations.jl v6.4.0 released with GPU support in ODE solvers, linsolve defaults, and much more!

Amrata Joshi
10 May 2019
3 min read
Yesterday, the team behind JuliaDiffeEq released DifferentialEquations.jl v6.4.0,  a suite for numerically solving differential equations in Julia. This release gives users the ability to use ODE solvers on GPU, with automated tooling for faster broadcast, matrix-free Newton-Krylov, better Jacobian re-use algorithms, memory use reduction, etc. What’s new in DifferentialEquations.jl v6.4.0? Full GPU support in ODE solvers With this release, the stiff ODE solvers allow expensive calculations, like those in neural ODEs or PDE discretizations, and utilize GPU acceleration. This release also allows the initial condition to be a GPUArray where the internal methods don’t perform any indexing in order to allow for all computations to take place on the GPU without data transfers. Fast DiffEq-Specific Broadcast This release comes with a broadcast wrapper that allows all sorts of information to be passed to the compiler in the differential equation solver’s internals. This makes a bunch of no-aliasing and sizing assumptions that are normally not possible. This leads the internals to use a special @..,which also turns out to be faster than standard loops. Smart linsolve defaults This release comes with a smarter linsolve defaults, which automatically detects the BLAS installation and utilizes RecursiveFactorizations.jl that speeds up the process for ODE. Users can use the linear solver to automatically switch to a form that works for sparse Jacobians. Even banded matrices and Jacobians on the GPU are now automatically handled. Automated J*v Products via Autodifferentiation Users can now use GMRES, easily without the need for constructing the full Jacobian matrix. Users can simply use the directional derivatives in the direction of v in order to compute J*v. Performance improvement With this release, the performance of all implicit methods like KenCarp4 has been improved. DiffEqBiological.jl can now handle large reaction networks and can parse the networks much faster and can build Jacobians that utilize sparse matrices. Though there is still plenty of room for improvement. Partial Neural ODEs This release comes with a lot of improvements and gives a glimpse of working examples of partial neural differential equations that are equations, which have pre-specified portions. These equations allow for batched data and GPU acceleration. Memory optimization  This release comes with memory optimizations of low-memory Runge-Kutta methods for hyperbolic or advection-dominated PDEs. These methods now have a minimal number of registers which are required for the method. Large PDE discretizations can now make use of DifferentialEquations.jl without loss of memory efficiency. Robust callbacks The team has introduced the ContinuousCallback implementation in this release that has increased robustness in double event detection. To know more about this news, check out the official announcement. The solvers – these great unknown Moving Further with NumPy Modules How to build an options trading web app using Q-learning  
Read more
  • 0
  • 0
  • 2715

article-image-git-2-19-0-released-better-git-grep-python-3-compatibility-git-p4
Savia Lobo
13 Sep 2018
3 min read
Save for later

Git 2.19.0 released with better git grep, Python 3 compatibility for git p4

Savia Lobo
13 Sep 2018
3 min read
Git project released Git 2.19 earlier this week (September 10th, 2018). Git 2.19 brings more Python 3 compatibility work for git p4, a rewritten git submodule now implemented in C. Git Instaweb works better with newer versions of Apache. It also has a git range-diff feature, new capabilities in git grep, branch sorting changes, and a variety of other additions. Features in Git 2.19 A new ‘git range-diff’ tool Developers previously used the git rebase to rewrite history and polish their commits before making them public. git diff shows the difference between the two end states, but it doesn’t provide information about any of the individual commits. This version includes git range-diff, a tool for comparing two sequences of commits, including changes to their order, commit messages, and the actual content changes they introduce. Improvements in ‘git grep’ In Git 2.19 you can now locate the first matching column of your query with git grep --column. git grep also learned the new --only-matching option. This is useful if you have a non-trivial regular expression and want to gather only the matching parts of your search. A new ‘auto’ option The content-transfer-encoding of the message "git send-email" sends out by default was 8bit, which can cause trouble when there is an overlong line to bust RFC 5322/2822 limit.  A new option 'auto' to automatically switch to quoted-printable when there is such a line in the payload has been introduced and is made the default. The branch.sort option and other sorting options The git branch command, like git tag (and their scriptable counterpart, git for-each-ref), takes a --sort option to let you order the results by a number of properties. To show branches in the order of most recent update, you could use git branch --sort=-authordate. However, if you always prefer that order, typing that sort option can get tiresome. This version introduces the branch.sort config to set the default ordering of git branch. By default, git branch sorts by refname, hence master is first and newest is last. The other sorting options include: --sort=numparent shows the best merges. --sort=refname sorts branches alphabetically by their name. --sort=upstream sorts branches by the remote from which they originate. Other improvements in Git 2.19 ‘git submodule foreach’ has been largely rewritten in C. ‘git diff --color-moved’ feature has further improvised. The userdiff pattern for .php has been updated. ‘git instaweb’ has been adjusted to run better with newer Apache on RedHat based distros. Preparatory code to later add json output for telemetry data has been added. Read the complete updates and improvements in the Git 2.19 release notes. Microsoft announces Azure DevOps, makes Azure pipelines available on GitHub Marketplace Packt’s GitHub portal hits 2,000 repositories GitHub parts ways with JQuery, adopts Vanilla JS for its frontend
Read more
  • 0
  • 0
  • 2683
article-image-version-1-29-of-visual-studio-code-is-now-available
Amrata Joshi
13 Nov 2018
3 min read
Save for later

Version 1.29 of Visual Studio Code is now available

Amrata Joshi
13 Nov 2018
3 min read
Visual Studio Code 1.29 was released yesterday - this was the October update of Microsoft’s planned monthly updates. This update to the code editor includes multiline search, and improved support for macOS. Features of Visual Studio Code 1.29 Multiline search Visual Studio Code now supports multiline search. A regex search executes in multiline mode only if it contains a \n literal. The search view pops up a hint next to each multiline match. The ripgrep tool helps in implementing multiline search. macOS full-screen support To enable full-screen mode for Visual Studio Code, window.nativeFullScreen is set to false. Visual Studio 1.29 has an advantage of entering full-screen mode without creating a macOS space on the desktop. By default, Visual Studio Code uses macOS native full screen. Highlight modified tabs Visual Studio Code 1.29 comes with a new setting workbench.editor.highlightModifiedTabs.  Whenever the editor has unsaved changes, then this new setting displays a thick border at the top of editor tabs. It makes easier to find files that need to be saved. Even the color of the border can be customized. File and folder icons in IntelliSense The IntelliSense widget is now updated. It shows file and folder icons for file completions based on the File Icon theme. This provides a unique look which helps in quickly identifying the different file types. Format Selection With Visual Studio Code 1.29, it is now possible to speed up the small formatting operations. Without an editor selection, the Format Selection command will now format the current line. Show error codes This editor of this version, now shows the error code of a problem if an error code is defined. One can check the error code at the end of the line in square brackets. Normalized extension samples The Visual Studio Code extension samples at vscode-extension-samples have been updated in this release for consistency. Each extension sample includes a uniform coding style and structure and a README that explains the sample's functionality with a short animation. It also includes a listing of the vscode API or Contribution Points used in each sample. Start debugging with a stop on entry The team at Visual Studio Code has introduced a command for Node.js debugging. The command, Debug: Start Debugging and Stop On Entry(extension.node-debug.startWithStopOnEntry) is used for debugging and immediately stopping on the entry of your program. Clear terminal before executing the task A new property called clear got added to the task presentation configuration in this release. If the clear property is set to true then it is possible to clear the terminal before the task is run. Major Bug Fixes Previously, the startDebugging method in Visual Studio Code used to return the value ‘true’ even when the build failed. This issue has been fixed in this release. In previous releases, the Settings UI never used to remember its search on reloading. But with this release, this issue has been resolved. Earlier it wasn't possible to cancel a debug session while it was initializing. But now it’s possible with Visual Studio Code 1.29. Read more on this news on the Visual Studio Code website. Visual Studio code July 2018 release, version 1.26 is out! Unit Testing in .NET Core with Visual Studio 2017 for better code quality Neuron: An all-inclusive data science extension for Visual Studio
Read more
  • 0
  • 0
  • 2677

article-image-introducing-wavemaker-10-an-apaas-software-to-rapidly-build-applications-with-angular-7-and-kubernetes-support
Bhagyashree R
29 Nov 2018
2 min read
Save for later

Introducing WaveMaker 10: An aPaaS software to rapidly build applications with Angular 7 and Kubernetes support

Bhagyashree R
29 Nov 2018
2 min read
Last week, the WaveMaker team released its enhanced platform, WaveMaker 10. This version comes with an advanced technology stack leveraging Angular 7, integrated artifact repository, IDE synchronization features, and more. WaveMaker is an application platform-as-a-service (aPaaS) software that allows developers to rapidly build and run custom apps. It enables developers to build extensible and customizable apps with standard enterprise-grade technologies. The platform also comes with built-in templates, layouts, themes, and widgets to help you build responsive apps without having to write any code. Key enhancements in WaveMaker 10 Improved application stack with Angular 7 and Kubernetes support Developers can now leverage Angular 7 to build responsive web and mobile apps. Angular 7 support provides greater performance and efficiency, type safety, and modern user experience. Scaling applications with Kubernetes is supported via a 1-click deployment feature. You can now natively pack your apps as containers and deploy them to a running Kubernetes cluster. Enhanced developer productivity and collaboration To give developers more control over their code and help them build apps faster, WaveMaker 10 comes with enhanced IDE support. With the newly introduced workspace sync plugin, developers can pull code changes seamlessly between WaveMaker and any IDE without having to manually export and import them. To allow developers to share reusable application elements like service prefabs, templates, themes, and data models, an integrated artifact repository is introduced. The platform can now be localized in a regional language enabling better collaboration between global development teams. Increased enterprise security and accessibility Support for configuring and implementing role-based access at both platform and project levels is introduced in WaveMaker 10. You can now create multiple developer personas with unique permission sets. Open ID authentications for Single Sign-On (SSO) are supported by both the platform and applications built using it. Additionally, all WaveMaker 10 applications are protected from OWASP Top 10 Vulnerabilities to ensure greater security against threats and malicious injections. Applications built with WaveMaker 10 also support Web Content Accessibility Guidelines (WCAG) 2.1, making them more accessible to users with disabilities. Head over to WaveMaker’s official website to know more in detail. Angular 7 is now stable Introducing Alpha Support for Volume Snapshotting in Kubernetes 1.12 Kubernetes 1.12 released with general availability of Kubelet TLS Bootstrap, support for Azure VMSS
Read more
  • 0
  • 0
  • 2655
Modal Close icon
Modal Close icon