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
All 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-racket-v7-0-is-out-with-overhauled-internals-updates-to-drracket-typedracket-among-others
Savia Lobo
30 Jul 2018
3 min read
Save for later

Racket v7.0 is out with overhauled internals, updates to DrRacket, TypedRacket among others

Savia Lobo
30 Jul 2018
3 min read
Racket programming language has a new version update, Racket 7.0. Users might not see huge differences between the previous version of Racket, v6.12 released in January 2018. However, v7.0 differs in the internals significantly. Racket or Racket lang is a multi-paradigm programming language--with an emphasis on functional programming--in the Lisp-Scheme family. Though not a popular one, Racket is considered as one of the easiest programming language. Languages such as Python, C#, Assembly, and so on are often talked about in the easy-categories; however, Racket lang is also a great choice as a starter language. What’s new in Racket 7.0? Updated Runtime This version includes a substantial change in its current runtime system and supports multiple runtime systems. New macro expander Version 7.0 replaces about ⅛ of the core v6.12 implementation with a new macro expander that bootstraps itself. The expander turns out to be about 40% of the new code needed to replace Racket’s core with Chez Scheme. Most of the other 60% is also implemented, but it is not included in this release. However, Racket-on-Chez will be ready for production use later in the v7.x series. Updates to DrRacket, the programming environment for Racket DrRacket’s “Create Executable” option for the teaching language (Beginner Student, etc.) uses --embed-dlls to create single-file, standalone ".exe"s on Windows. Improved supports within TypedRacket TypedRacket is Racket’s gradually-typed sister language which allows the incremental addition of statically-checked type annotations. TypedRacket’s support for prefab structs is significantly improved. This supports using prefab structs more polymorphically and fixes significant bugs in the current implementation. Programs which currently use predicates for prefab structs on unknown data may need to be revised since previous versions of Typed Racket allowed potentially buggy programs to type check. Check out Typed Racket RFC 1 and prefab Changes doc for more details on this change and on how to fix programs affected by it. Typed Racket also supports #:rest-star in the ->* type constructor, which allows function types to specify rest arguments with more complex patterns of types, such as the hash function. Other features in the Racket 7.0 include: The syntax (#') form supports new template subforms: ~@ for splicing and ~? for choosing between subtemplates based on whether pattern variables have “absent” value (from an ~optional pattern in syntax-parse, for example). The syntax/parse/experimental/templatelibrary, where these features originated, re-exports the new forms under old names for compatibility. On Windows, an --embed-dlls flag for raco exe creates a truly standalone, single-file ".exe" that embeds Racket’s DLLs. Interactive overlays can be added to plots produced by plot-snip. This allows constructing interactive plots or displaying additional information when the mouse hovers over the plot area. Examples of how to use this feature can be found on Alex Harsanyi’s blog racket/plot provides procedures for displaying candlestick charts for use in financial time series analysis. Added contract-equivalent?, a way to check whether two contracts are mutually stronger than each other without the exponential slowdown that two calls to contract-stronger? brings. Lazy Racket supports functions with keyword arguments. Read more about Racket 7.0 on the Racket official blog. What is the difference between functional and object-oriented programming? Putting the Function in Functional Programming Elixir Basics – Foundational Steps toward Functional Programming
Read more
  • 0
  • 0
  • 3486

article-image-delphi-community-edition-announced
Pavan Ramchandani
27 Jul 2018
2 min read
Save for later

Delphi Community Edition announced!

Pavan Ramchandani
27 Jul 2018
2 min read
Embarcadero has made a significant announcement of launching the community edition for its premium products Delphi, a cross-platform IDE and C++Builder, a powerful C++ IDE. With the community edition, the developers can start using both the products without any charge and access most of the features that are part of the Professional Edition. Apart from the developers, they have the free access to the organizations with less than $5,000 in annual revenue. This announcement is getting a big welcome in the community, considering the offerings for developers, startups, freelancers who have struggled to enter the Delphi ecosystem for years. Delphi has been unpopular among the native applications developers. This may be because of the entry point pricing. As such, this move seems to ease that barrier at least for the developers, using different IDEs. Delphi's community edition is said to provide access to all the features and components from the Professional edition. This will permit developing open source projects at no cost to the developers. Apart from the normal community edition offering, Delphi and C++Builder have free trial versions of the Pro, Enterprise, and Architect version of the products available. Embarcadero did not talk about RAD Studio, one of the 3 premium tools apart from Delphi and C++Builder in its lineup. RAD Studio is a platform to write, compile, and deploy cross-platform applications. You can download the starter edition for Delphi and C++Builder from the Embarcadero’s community website. In case you want to try other offerings, you can opt for a 30 days trial. Delphi: memory management techniques for parallel programming Implementing C++ libraries in Delphi for HPC [Tutorial] Delphi Cookbook
Read more
  • 0
  • 1
  • 4866

article-image-wanna-be-rockstar-developer
Aaron Lazar
27 Jul 2018
5 min read
Save for later

Hey hey, I wanna be a Rockstar (Developer)

Aaron Lazar
27 Jul 2018
5 min read
New programming languages keep popping up every now and then, but here’s something that’s out of the box - jukebox to be precise! If you’ve ever dressed up (or at least thought of it) in leather tights, a leather jacket, with an axe strung around your neck, belting out your favourite numbers, you’re probably going to love this! Somebody...no not Nickelback, created a language that is designed for creating computer programs using song lyrics! The language is called...hold your breath...Rockstar! Say, what?? Are you kidding me? Is this some kind of joke/’fake news’? No, it’s not. It’s as real as Kurt writing those songs she sang in Hole! ;) Rockstar is heavily influenced by the lyrical conventions of 1980’s hard rock and power ballads. And the somebody who created it is Dylan Beattie, a Microsoft MVP for Visual Studio and Development Technologies. Unsurprisingly, Dylan’s a musician himself. Rockstar is already growing in popularity! Will you take a look at the growth on Github and the discussions going on on Reddit? You ask why would Dylan do such a thing? Cos, as Van Halen would say, “Everybody Wants Some”! Well, he thought it would be cool to have such a language, where you can use your favourite lyrics to drive your computer and HR recruiters nuts! It’s mainly part of a movement to force recruiters from using the term, “Rockstar Programmers”. Did I say movement? Rockstar supports a unique feature known as poetic literals, which allow programmers to simultaneously initialize a variable and express their innermost angst. I’m sure Billie Joe Armstrong and Axl Rose will surely appreciate this! This is what sample Rockstar code looks like, solving the fizzbuzz problem: Let’s start with the minimalistic version: Modulus takes Number and Divisor While Number is as high as Divisor Put Number minus Divisor into Number (blank line ending While block) Give back Number (blank line ending function declaration) Limit is 100 Counter is 0 Fizz is 3 Buzz is 5 Until Counter is Limit Build Counter up If Modulus taking Counter, Fizz is 0 and Modulus taking Counter, Buzz is 0 Say "FizzBuzz!" Continue (blank line ending 'If' Block) If Modulus taking Counter and Fizz is 0 Say "Fizz!" Continue (blank line ending 'If' Block) If Modulus taking Counter and Buzz is 0 Say "Buzz!" Continue (blank line ending 'If' Block) Say Counter (EOL ending Until block) And now, the same thing in idiomatic Rockstar code: Midnight takes your heart and your soul While your heart is as high as your soul Put your heart without your soul into your heart Give back your heart Desire is a lovestruck ladykiller My world is nothing Fire is ice Hate is water Until my world is Desire, Build my world up If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing Shout "FizzBuzz!" Take it to the top If Midnight taking my world, Fire is nothing Shout "Fizz!" Take it to the top If Midnight taking my world, Hate is nothing Say "Buzz!" Take it to the top Whisper my world Oh yeah, did I mention that Rockstar doesn’t care two hoots about indentation. Also, it discourages the use of comments. Why? Cos this is Rock ‘n’ Roll, baby! Let whoever wants to know the meaning, discover it on their own! Now that’s hardcore! To declare a variable in Rockstar, you simply use a common word like "a, an, the, my or your" as a preface and any unique name (e.g. "Suzanne"). For types, you can use words like "mysterious", meaning no value is assigned, or "nothing/ nowhere/nobody", for null. You could name your variable “em” so to increment it, you’d use "build em up" and to decrement it, you’d use "knock em down". Now if that’s not cool, you tell me what is! Like in Ruby or Python, variables are dynamically typed and you don't need to declare them before use. That’s not all! For I/O, you’re at the liberty of using words like "listen to" or "shout," "whisper" or "scream". Someone actually happened to test out the error handling capabilities of Rockstar, a couple of days ago: If you accidentally typed “!love” as a property, it will return “you give !love a bad name”. I wonder what it would do, if we just typed in the lyrics to Sweet Child o’ Mine. Nevertheless, the Github (Shooting) Stars are growing like a weed (pun intended) ;) I suggest you Don’t Stop Believin’ in it and go check this language out! And don’t forget to tell us in the comments, about how it Rock(ed) You Like a Hurricane or better yet, Shook Me You All Night Long! ;) Will Rust Replace C++? Why Guido van Rossum quit as the Python chief (BDFL) Apollo 11 source code: A small step for a woman, and a huge leap for ‘software engineering’
Read more
  • 0
  • 0
  • 4492
Visually different images

article-image-elixir-1-7-language-for-erlang-virtual-machine-releases
Sugandha Lahoti
27 Jul 2018
3 min read
Save for later

Elixir 1.7, the programming language for Erlang virtual machine, releases

Sugandha Lahoti
27 Jul 2018
3 min read
Elixir 1.7 has been released. Elixir builds on top of Erlang designed for building scalable and maintainable applications. This release is focused on improving error handling, logger reporting, and documentation. It also brings improvements to ExUnit, Elixir’s testing library. ExUnit improvements ExUnit is Elixir’s unit testing library. ExUnit uses Elixir macros to provide error reports when a failure happens using the assert macro. The assert macro can look at the code, extract the current line, extract the operands and show a difference between the data structures alongside the stacktrace when the assertion fails. However, for certain ‘bare’ assertions, ExUnit usually re-runs the tests, debugging or printing the values. In Elixir 1.7, now, whenever a “bare” assertion will fail, it will print the value of each argument individually. E.g, For a simple example such as assert some_vars(1 + 2, 3 + 4), users will get this report: Their build tool Mix has also received new updates. There is a new --failed flag that runs all tests that failed the last time they ran. The coverage reports generated with mix test --cover includes a summary out of the box. Updates to the ExDoc tool ExDoc is a tool to generate documentation for user Elixir projects. It leverages metadata to provide better documentation for developers. These are the updates to ExDoc. Deprecated modules, functions, callbacks, and types now have a warning automatically attached to them. Functions, macros, callbacks, and types now include the version in which they were added. Future Elixir versions will include their own section for guards in the documentation and in the sidebar. They are currently exploring ways to generalize this feature in ExDoc itself. Erlang/OTP logger integration improvements Elixir 1.7 fully integrates with the new :logger module available in Erlang/OTP 21. The Logger.Translator mechanism has also been improved to export metadata, allowing custom Logger backends to leverage information such as: :crash_reason, a two-element tuple with the throw/error/exit reason as the first argument and the stacktrace as the second. :initial_call, the initial call that started the process. :registered_name, the process’ registered name as an atom. Updates to Logger configuration system From Elixir 1.7 the Logger macros such as debug, info, will evaluate their arguments only when the message is logged. The Logger configuration system also accepts a new option: compile_time_purge_matching that allows users to remove log calls with specific compile-time metadata. There are also certain developments in areas not directly related to the Elixir codebase. A new Development section has been added to the website, that outlines the Elixir team structure and goals. It also now has its own mini-documentary. Read the Elixir-lang blog for the full list of Elixir 1.7 updates. You can also check the Install section to get Elixir installed and read the Getting Started guide to learn more. Elixir Basics – Foundational Steps toward Functional Programming 5 Reasons to learn programming
Read more
  • 0
  • 0
  • 2676

article-image-microsoft-releases-the-python-language-server-in-visual-studio
Kunal Chaudhari
27 Jul 2018
3 min read
Save for later

Microsoft releases the Python Language Server in Visual Studio

Kunal Chaudhari
27 Jul 2018
3 min read
Last week Microsoft announced the release of Python Language Server which is a part of the July release for Python Extension for Visual Studio Code and will be released as a standalone product in the near future. Intellisense, Microsoft’s code analysis, and suggestion tool have been supporting Python since 2011, but this language support can now be extended to other tools using the Microsoft Language Server. Intellisense and Language Server Demystified IntelliSense is the general term for a number of features like List Members, Parameter Info, Quick Info, and Complete Word. These features help developers to learn more about the code they are using and to keep track of the parameters. With Intellisense, Microsoft has long featured the completion feature that makes writing code faster and less error-prone. Many aspects of IntelliSense are language-specific and many of its features are powered by a language server. Adding all these smart features in IntelliSense takes massive efforts and traditionally this effort is repeated for each development tool, as each tool provides different APIs for implementing the same feature. This effort can be significantly reduced with the help of a language server, as they provide these language-specific features to different tools with the help of a standard protocol known as Language Server Protocol (LSP). This way, a single Language Server can be re-used in multiple development tools, which in turn can support multiple languages with minimal effort. Benefits of the Python Language Server Python IntelliSense has been supported in Visual Studio since 2011 and is one of the most downloaded extensions, but only limited to Visual Studio developers. The Visual Studio team at Microsoft plan to separate the Python IntelliSense from Visual Studio and make it available as a standalone program using the language server protocol. Steve Dower, a developer at Microsoft, wrote in his blog that “Having a standalone, cross-platform language server means that we can continue to innovate and improve on our IntelliSense experience for Python developers in both Visual Studio and Visual Studio Code at the same time”. The July release of Visual Studio Codes Python extension includes features such as: Syntax errors will appear as the code is typed Improved performance for analyzing workspaces and presenting completions The ability to detect syntax errors within the entire workspace Faster startup times and imports Better handling for several language constructs The standalone release of the Python Language Server will be released in a few months, till then you can check out VS Code release announcement for more information. Microsoft’s GitHub acquisition is good for the open source community Microsoft launches a free version of its Teams app to take Slack head on Microsoft’s Brad Smith calls for facial recognition technology to be regulated
Read more
  • 0
  • 0
  • 3063

article-image-gradle-4-9-released
Savia Lobo
24 Jul 2018
3 min read
Save for later

Gradle 4.9 released!

Savia Lobo
24 Jul 2018
3 min read
Team Gradle has released a new version of their tool and that’s Gradle 4.9. Gradle is a build tool for build automation with multi-language development. It offers excellent flexibility to the complete development lifecycle. As per the team, one of the quickest ways to update one’s build to use the new version is by updating the build wrapper properties as follows: ./gradlew wrapper --gradle-version=4.9 However, the standalone downloads are available at gradle.org/install What’s new in the Gradle 4.9 Command line arguments are now supported by JavaExec One can now pass command line arguments to JavaExec using --args. This means if one wants to launch their application using the command line arguments foo --bar, hardcoding it into the build script is not required. One just has to simply run gradle run --args 'foo --bar. An improved dependency insight report This version features an improved dependency insight report including build scans.  The report helps in easy diagnosis of dependency management problems, locally. Some improvements in this report include: All participants of conflict resolution are shown All custom reasons for a component selection are shown Modules rejected by a rule are displayed Modules which didn't match the version selector but were considered in the selection are shown This report also solves the readability resolution failures by restricting the report to one path with each dependency. Native ecosystem continues The Gradle Native project stays steady in order to improve and evolve the native ecosystem support for Gradle. Checkout builds are now fast and clean This version now stores more states in the Gradle user home instead of the project directory. This results in clean and faster checkout builds on CI as long as the user home is preserved. Java and Groovy compilers are now leak-proof file descriptors By default, the Java and Groovy compilers both leak file descriptors during the run in-process. This, in turn, can lead to "cannot delete file" exceptions on Windows and "too many open file descriptors" on Unix. In the Gradle 4.9, these leaks have been fixed. Users who had switched to forking mode because of this problem, can now safely switch back to in-process compilation. Experimental new task API Gradle 4.9 includes a new task API which allows builds to avoid the cost of creating and configuring tasks for the ones that will never be executed. By upgrading to this new API, one can experience slightly faster configuration times. The benefits will keep improving as more plugins adopt this API. Note that this API is in incubation and may change before Gradle 5.0. The promoted features are now stable This version includes some promoted features which were in incubation during the previous release. The promoted features which include a stable dependency insight report and the tooling API types and methods are now supported and stable. These two features are also subject to backward compatibility. Potential breaking changes in Gradle 4.9 EclipseProject tasks defined for gradle eclipse are allowed to run in Buildship. Two tasks from the EclipseProject, namely the EclipseClasspath and EclipseProject are now executed by the gradle. Use of Groovy GPath expression with the method, tasks.withType() would get a runtime exception. The easiest fix is to explicitly use the spread operator. As per my past research on Gradle and observing its past release trends, it looks like we can expect Gradle 5.0 in August or September. Read more about the other fixed issues and deprecations in the Gradle 4.9 release notes. Gradle with the Java Plugin Speeding up Gradle builds for Android Working with Gradle  
Read more
  • 0
  • 0
  • 1790
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 €14.99/month. Cancel anytime
article-image-reactos-version-0-4-9-released-with-self-hosting-and-fastfat-crash-fixes
Sugandha Lahoti
24 Jul 2018
3 min read
Save for later

ReactOS version 0.4.9 released with Self-hosting and FastFAT crash fixes

Sugandha Lahoti
24 Jul 2018
3 min read
ReactOS, the free and open source “ Windows-like” operating system has been released as a new version. ReactOS 0.4.9 comes with system stability and general consistency improvements such as Self-hosting, shell improvements, FastFAT crash fixes and more. As they target a newer release every three months, more focus is given on improvements with fewer headliner changes. ReactOS is now capable of Self-Hosting Self-hosting is a process of building an OS on an OS. Self-hosting although considered to be a milestone in any OS’ maturity, is associated with many challenges of its own. First, compiling any large codebase requires high memory usage and storage I/O stressing the operating system. Scheduling is also stressed, as modern build systems in general attempt to produce multiple compilation processes to speed up the build process. ReactOS featured self-hosting in an older version. However, changes brought by subsequent releases, such as the reworking of the kernel, made this self-hosting process non-existent. However, with the recent changes made to the filesystem, Self-hosting is now completely established in the 0.4.9 release. The open source FreeBSD project’s implementation of qsort played a major role in achieving this. Stability brought in by fixing FastFAT crashes ReactOS had significant resource leakages caused by the FastFAT driver. This leakage was eating up the common cache to the point where attempts to copy large files would result in a crash. The new version fixes the FastFAT driver’s behavior by adding in write throttling support and restraining its usage of the cache. A conservative usage of the cache may slow the system a bit during IO operations. However, it ensures that resources remain available to service for large IO operations instead of crashing like before. FastFAT driver also featured a complete rewrite of the support for dirty volumes greatly reducing the chance of file corruptions. This will protect the system from becoming unusable after a crash. Shell Improvements & Features Shell has also received several upgrades. It now has a built-in zipfldr (Zip Folder) extension. With this, ReactOS can also uncompress zipped files without needing to install third-party tools to accomplish it. It also allows users to now choose whether to move, copy, or link a file or folder when they drag it with the right mouse button. Some other new improvements A new mouse properties dialog in the GUI component of the ReactOS installer The inclusion of RAPPS, the gateway program used for getting various applications installed on ReactOS. With this Unicode support, ReactOS can now easily support many different languages. ReactOS can now present itself as Windows 8.1 with the Version APIs. These are just a select few major updates. For a full list of features, upgrades, and improvements, read the changelog. Microsoft releases Windows 10 SDK Preview Build 17115 with Machine Learning APIs Microsoft releases Windows 10 Insider build 17682! What’s new in the Windows 10 SDK Preview Build 17704
Read more
  • 0
  • 0
  • 1879

article-image-spotify-has-one-of-the-most-intricate-uses-of-javascript-in-the-world-says-former-engineer
Richard Gall
19 Jul 2018
3 min read
Save for later

Spotify has "one of the most intricate uses of JavaScript in the world," says former engineer

Richard Gall
19 Jul 2018
3 min read
A former Spotify engineer, Mattias Peter Johansson, has outlined how the music streaming platform uses JavaScript on it's desktop application. It's complicated and, according to Reddit, "kind of insane". Responding to a question on Quora, Johansson says it could be "among the top 25 most intricate uses of JavaScript in the world." What's particularly interesting is how this intricate JavaScript has influenced the Spotify architecture and the way the development teams are organized. How JavaScript is used on the Spotify desktop app JavaScript is used across the Spotify desktop client. Wherever UI is concerned, it uses JavaScript. C++ is used for functionality beneath the UI, with JavaScript sitting on top of it. The languages are connected by an interface aptly called a 'bridge.' Spotify's squads and spotlets The Spotify team is made up of small squads of anywhere from 3 to 12 people. Johansson explains that  "a feature is generally owned by a single squad, and during normal conditions the squad has all it needs to develop and maintain its feature." Each team has as many backend, front end, and mobile developers as necessary for the particular feature it owns. These features are known as 'spotlets.' Each of these spotlets are essentially web apps that come together to power the desktop app's UI. Johansson explains how they work, saying: They all run inside Chromium Embedded Framework, each app living within their own little iframe, which gives squads the ability to work with whatever frameworks they need, without the need to coordinate tooling and dependencies with other squads. The advantage of this is that it makes technical decision making much easier. As Johansson explains, "introducing a library is a discussion between a few people instead of decision that involves ~100 people and their various needs." Shared functionalities across the Spotify development team Although spotlets and squads create a somewhat fragmented picture of a development team, things are unified. "The latest versions of all Spotlets are zipped and bundled with the desktop client binary on every release, assets and all," says Johansson. Individual spotlets are also sometimes released where an emergency fix might be needed. Although tooling decisions are left up to individual squads, there are a couple of tools that are used across the team. This includes GLUE, a CSS framework that allows some coordination and alignment in terms of design. The team also rely heavily on npm, as you might expect. "We have our own internal npm repository where we publish internal modules, and we package the code together using a Browserify-like tool."
Read more
  • 0
  • 1
  • 11052

article-image-qt-creator-4-7-0-releases
Natasha Mathur
19 Jul 2018
2 min read
Save for later

Qt Creator 4.7.0 releases!

Natasha Mathur
19 Jul 2018
2 min read
Qt team released Qt Creator 4.7.0 yesterday. The latest release includes features such as C++ Support, Test Integration, Windows Hosts and other improvements. The highlights of this latest release are: C++ Support Clang code model has now been turned on by default. The built-in model, earlier, wasn’t able to keep up with the developments in the C++ language and the tooling around it. You can still continue to use the built-in model by disabling the ClangCodeModel plugin. Clang code model has been upgraded to Clang 6.0. and provides information for the document used for the symbols dropdown, outline pane and “.” locator filter. There’s a new tool in Debug mode (Analyze > Clang-Tidy and Clazy) with the help of which you can run checks over your entire code. You can check the warnings and errors from the code model in the Issues pane. Test Integration For cases when your text cursor in the C++ editor is inside a test function, an individual test can be directly run with the new Run Test Under Cursor action. The location of failed tests is also marked by test integration in the editor. Google Test provides support for filtering. Windows Hosts The scanning for MSVC compilers on Windows has been improved. Issue leading to short-term freezes during Windows debug stream has been fixed. Now, saving files on network drives should work in all configurations. Other Improvements The kit options are put in their own top-level entry in the preferences dialog. Now, easily choose if you want Qt’s automatic scaling by enabling or disabling the new option in Environment > Interface ( for HiDPI screen on Windows or Linux). The File System is equipped with new options which show folder on top as well as turn off the base folder synchronization. New folders can be created directly in the File System view. The open source version of Qt Creator 4.7.0  is available on the Qt download page. You can find commercially licensed packages on the Qt Account Portal. Qt Creator 4.7.0 is also available through an update in the online installer. Apart from these major updates, there have been many other improvements and fixes. Check out the official changes file for more coverage on Qt Creator 4.7.0. How to create multithreaded applications in Qt How to Debug an application using Qt Creator Qt 5.11 has arrived!  
Read more
  • 0
  • 0
  • 2253

article-image-cmake-3-12-0-releases
Natasha Mathur
18 Jul 2018
3 min read
Save for later

CMake 3.12.0 releases!

Natasha Mathur
18 Jul 2018
3 min read
CMake 3.12.0 is now available for download. The new release includes changes in generators, command lines, variables, modules and other updates. Let’s have a look at major changes and new features in CMake 3.12.0 Key Updates Here are the new features added in the latest release: Generators The Visual Studio Generators for VS 2017 now offers support for version=14.## option in the CMAKE_GENERATOR_TOOLSET value (e.g. via the cmake(1) -T option). This helps in specifying a toolset version number. Command Line The cmake(1) Build Tool Mode (cmake --build) gained --parallel [<jobs>] and -j [<jobs>] options. This helps to specify a parallel build level. They also help map to the corresponding options in the native build tool. Commands The add_compile_definitions() command is now added to set the preprocessor definitions at a directory level. This supersedes add_definitions(). Also, the cmake_minimum_required() and cmake_policy(VERSION) commands can now accept a version range using the form <min>[...<max>]. The list() command offers a SUBLIST sub-command to get a sublist of the list. Variables The CMAKE_SUPPRESS_REGENERATION variable is extended and now provides support to the Ninja and Makefile Generators. The CMAKE_FOLDER variable has been added to initialize the FOLDER property on all targets. Properties VS_SHADER_DISABLE_OPTIMIZATIONS and VS_SHADER_ENABLE_DEBUG, which are the properties of HLSL source file now offer support for generator expressions. HLSL source file property VS_SHADER_OBJECT_FILE_NAME has been added to the Visual Studio Generators for VS 2010 and above. The property helps to specify the file name of the compiled shader object. Modules The FindALSA module is now capable of providing imported targets. The FindMatlab module offers support for the Matlab Runtime Compiler (MCR) for compiling and linking matlab extensions. The UseSWIG module has also gained support now for CSHARP variant wrapper files. Generator Expressions A new $<GENEX_EVAL:...> and $<TARGET_GENEX_EVAL:target,...> generator expression is now added to allow consumption of generator expressions. Their evaluation itself delivers generator expressions. Added a new $<TARGET_NAME_IF_EXISTS:...> generator expression. Other changes The Visual Studio 8 2005 generator has been deprecated. Fortran dependency scanning now provides support for dependencies implied by Fortran Submodules. The Compile Features functionality will now make use of C features in MSVC since VS 2010. For more information on the latest updates and features, check out the official CMake 3.12.0 release notes. Qt for Python 5.11 released! Apache NetBeans 9.0 RC1 released!  
Read more
  • 0
  • 0
  • 3625
article-image-github-has-added-security-alerts-for-python
Richard Gall
16 Jul 2018
2 min read
Save for later

GitHub has added security alerts for Python

Richard Gall
16 Jul 2018
2 min read
At the end of 2017 GitHub announced the launch of its 'security alerts' feature for vulnerable Ruby and JavaScript packages. With the feature proving a huge success for GitHub, the platform has now rolled out the feature for Python. The GitHub team promised that Python would be the next language to receive the security alert feature - but with fears over a possible mass migration to GitLab, following Microsoft's acquisition of the platform, the news couldn't come at a better time. How Github's security alerts work GitHub's security alerts work using its dependency graph. The dependency graph allows developers to visualize the range of projects on which their code depends. Security alerts followed the release of the dependency graph for Ruby and JavaScript. With the dependency graph in place, the security alerts "track when dependencies are associated with public security vulnerabilities." When you enable the dependency graph GitHub will notify you if there is a possible vulnerability in one of your dependencies. It will also suggest some possible fixes as well. Rolling security alerts out to Python projects The Python roll out was announced on the GitHub blog by Robert Schultheis on July 12. He writes: We’ve chosen to launch the new platform offering with a few recent vulnerabilities. Over the coming weeks, we will be adding more historical Python vulnerabilities to our database. Going forward, we will continue to monitor the NVD feed and other sources, and will send alerts on any newly disclosed vulnerabilities in Python packages. He isn't specific about the Python vulnerabilities. However, as noted earlier, launching support for Python has always been part of GitHub's plan since 2017. As The Register notes, there have only been four Python entries on the CVE database in 2018 so far "and one of those is disputed." According to Schultheis, Github "will be adding more Python vulnerabilities to our database."
Read more
  • 0
  • 0
  • 2532

article-image-microsoft-launches-a-free-version-of-its-teams-app-to-take-slack-head-on
Natasha Mathur
13 Jul 2018
3 min read
Save for later

Microsoft launches a free version of its Teams app to take Slack head on

Natasha Mathur
13 Jul 2018
3 min read
Yesterday, Microsoft announced a free version of the Microsoft Teams app posing heavy competition to its rival chat service Slack. The new Teams app comes loaded with key features such as unlimited free chat messages, app integrations, 300 user base limit, etc.  Whereas, Slack’s free version limits users to 10,000 searchable messages, making the Teams app a strong contender to Slack. Until now, Teams was only offered to clients that paid for Office 365 and its subscription. But, there is no need to be an Office 365 subscriber anymore to experience the power of the Teams app as stated by Lori Wright, General Manager of Microsoft 365 Teamwork. Let’s have a look at the features that the free version of the Teams app offers. Key Features The free version of Teams app is globally available in 40 different languages. It offers unlimited chat messages, app integrations, and search. It provides 10 GB team file storage as well as additional 2 GB per user. It has a built-in online office which includes Word, Excel, PowerPoint, OneNote along with SharePoint and OneDrive. There are native audio and video calling options for one on one meetings, small groups as well as for the full team. With over 140 business apps working with Teams, Microsoft will offer two additional features to the free version of Teams app, later this year. This includes background blurring and Inline message Translation in 36 languages. Background Blurring will intelligently blur out your screen’s background. So if you are conducting a video call from your kitchen table, there is no need to worry about the dirty dishes and the mess in the background as it won’t be visible.  Inline Message Translation allows people to chat in their native language and then translate their messages into English. But, there are still some key features that are available only in the paid version of the Teams app. With the paid version, all the video chats conducted within Team can be stored in the cloud. These are searchable and comes with automatic captioning. It also offers Email hosting through Exchange or Outlook. Microsoft is also planning on including facial recognition for the viewers to easily search what was said and who said it. Other than that, there will be a public preview of "live events” feature i.e. video broadcasts that can be transcribed, archived, and time coded which will be available shortly. Microsoft doesn't consider the free version of the Teams App as a lightweight version of the paid offering, which is the case with Slack. As mentioned earlier, Microsoft includes innumerable features that offer increased storage space, messaging search features along with letting users make group video and voice calls. Whereas, Slack's free version only allows calls between two people at a time. But, Slack is also working on improving its own in-app search, with automated suggestions. The main question is, whether the users who are already happy using Slack would want to switch to the Teams app or not. We can only wait to find out. Microsoft launches Surface Go tablet at just $399 Microsoft Azure IoT Edge is open source and generally available! Microsoft introduces ‘Immutable Blob Storage’, a highly protected object storage for Azure  
Read more
  • 0
  • 0
  • 2902

article-image-kotlin-native-0-8-recently-released-with-safer-concurrent-programming
Sugandha Lahoti
12 Jul 2018
2 min read
Save for later

Kotlin/Native 0.8 recently released with safer concurrent programming

Sugandha Lahoti
12 Jul 2018
2 min read
Jetbrains have released a new version of their Kotlin/Native technology. With Kotlin/Native, you can compile Kotlin to native binaries that run without any virtual machine. It can also be used when a developer needs to produce a reasonably-sized self-contained program not requiring an additional runtime. Kotlin/Native is now available in version 0.8 with the focus on safer concurrent programming, extending the stdlib functionality, and better iOS development support. The version also hosts numerous bug-fixes and performance optimizations. Let us take a look into each one in detail: Better concurrency support The version 0.8 improves concurrency support with the addition of shared immutable state and improved atomic values and references. Previously, Kotlin/Native applications kept the singleton object state local to a particular thread of execution. This helped in keeping the state of singleton objects on different threads non-synchronized. Now, the version 0.8 allows freezing on singleton objects. With this, developers now have a shared immutable state. A file will be read once per process execution, and is available to any thread or worker. Once published, the object is frozen, and cannot be modified anymore. Library improvements in Kotlin/Native Kotlin/Native has added performance improvements to the existing libraries. The standard library (kotlin.*) is standardized with other platforms using expect/actual mechanism and mostly matches other Kotlin flavors. The standard random number generator and collection shuffling functions are now available, eliminating the need of platform-specific APIs to obtain random numbers. Other JetBrains-provided libraries, like kotlinx.coroutines, kotlinx.serialization, and Ktor HTTP client will get experimental Kotlin/Native support. Developers can now write an iOS app and Android application sharing the same REST API-related logic. iOS support improvements The version 0.8 fixes bugs that prevent publishing iOS apps to AppStore and solves framework initialization problems. It also adds support for 32-bit ARM iOS, so that older devices can be used with Kotlin/Native as well. Binaries can be downloaded for macOS, Linux, and Windows. Visit the GitHub release page for additional information. Forget C and Java. Learn Kotlin: the next universal programming language Getting started with Kotlin programming 4 operator overloading techniques in Kotlin you need to know
Read more
  • 0
  • 0
  • 2984
article-image-eclipse-ides-photon-release-will-support-rust
Pavan Ramchandani
29 Jun 2018
2 min read
Save for later

Eclipse IDE’s Photon release will support Rust

Pavan Ramchandani
29 Jun 2018
2 min read
Eclipse Foundation announced the release of Photon release of Eclipse IDE. Also with this release, the community announced the support for Rust language. This support will give a native Eclipse IDE working experience for Rust developers. Eclipse IDE has been known for providing the IDE support and the learning demands for the Rust community. This release marks the thirteenth annual simultaneous release of Eclipse. The important features in the Photon release as follows: Full Eclipse IDE support for building, debugging, running, and packaging Rust applications and giving a good user experience for Rust development. More support for C# for editing and debugging codes, this includes syntax coloring, autocomplete suggestions, diagnostics, and navigation. The Photon release has added some more frameworks to the IDE such as RedDeer (framework for building automated test), Yasson (Java framework for providing binding with JSON documents), JGit (Git for Java), among others. It also comes with some more updates and features for dynamic language toolkit, Eclipse Modeling Framework (EMF), PHP development tools, C/C++ development tools, tools for Cloud Foundry, dark theme and improvement in background color and popup dialogs. Eclipse foundation has also introduced, what they called Language Server Protocol (LSP), with the Photon release. WIth the LSP based release, Eclipse will deliver support for popular and emerging languages in the IDE. With the normal release cycle, LSP will focus on keeping pace with the emerging tools and technologies andon the developers and their commercial needs in their future releases. For more information on the Photon project and contributing to the Eclipse community, you can check out the Eclipse Meetup event. Read more What can you expect from the upcoming Java 11 JDK? Perform Advanced Programming with Rust The top 5 reasons why Node.js could topple Java
Read more
  • 0
  • 0
  • 2798

article-image-the-bbc-brings-the-history-of-computing-to-life
Richard Gall
28 Jun 2018
3 min read
Save for later

The BBC brings the history of computing to life

Richard Gall
28 Jun 2018
3 min read
The Computer Literacy Project was launched by the BBC in the early eighties. Running throughout the decade, it aimed to document and explore computing and programming for a generation of British people born long before the concept even emerged. The corporation even created its own personal computer, called the BBC Micro, which people could use to learn how to program. Now, the BBC has opened up access to its entire Computer Literacy Project archive. Featuring 267 programs, 146 of which were part of the original Computer Literacy Project, it offers a valuable insight into the years when computing began to enter into the public consciousness. There are also interviews with particularly young-looking Steve Wozniak and Bill gates... Run BBC Micro software in your browser The initiative also features old BBC Micro programs that you can run in your browser. These include BASE3, which illustrates how a database works, and ENCRY3B, which shows you some simple encryption methods from the eighties. It's well worth exploring! The best Computer Literacy Project TV shows The archive features an impressive range of content. Some of it features even earlier television programs, like Tomorrow's World, a BBC technology program. Watch this clip to see what computing in the sixties looked like... https://www.youtube.com/watch?v=8bzTgbHn83Q But many of the programs were created as part of the project too. Here are some of the best, which you can watch online for free. The Silicon Factor, first broadcast in 1980 This show was a prequel to everything that we've been living through over the last 30 years. It explores how microchips could change British industry, and what might happen if Britain fails to keep up with the rest of the world. It's well worth watching as a useful historical document of how people viewed technology at the end of the twentieth century. There are certainly some parallels with where we are today and the concerns around artificial intelligence and automation. Electronic Office, first broadcast in 1984 Electronic Office was a prophetic look at the lives we'd lead today. Okay, so it isn't all prophetic, and some it might seem strange to us today. But there's obviously much more about how we work today that would seem even stranger to anyone watching the program in the mid-eighties. With a Little Help from the Chip, first broadcast in 1985 With a Little Help from the Chip throws up plenty of interesting parallels with where we are today in terms of IoT and connected homes. It also demonstrates how technology can be used to support people who need it. It gives us an insight on an one of the earliest ways in which technology was used to provide an innovative solution to a complex social issue. The BBC reminds us that people drive innovation, not technology Yes, the archive is a fun and engaging way to look at the history of software, but it also reminds us that innovation is never set in stone. Progress and development are often uncertain (and sometimes a little bit frightening). It has taken a generation of people to get us to where we are today - and it will take generations of people to build the future.
Read more
  • 0
  • 0
  • 1223