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-wine-4-0-released-with-vulkan-direct3d-support-among-other-features
Sugandha Lahoti
23 Jan 2019
3 min read
Save for later

Wine 4.0 released with Vulkan, Direct3D support among other features

Sugandha Lahoti
23 Jan 2019
3 min read
Wine 4.0 stable version has been released yesterday. It comes with four main features including support for Vulkan, Direct3D 12, Game controllers and High-DPI support on Android. In total, there are over 6,000 individual changes and improvements. Wine is an implementation of the Windows Application Programming Interface (API) library. makes it possible to run Windows programs alongside Linux or any other Unix-like operating system. Wine can also be used to recompile a program into a format that Linux can understand more easily, though access to the Windows program source code is required. Major improvements in Wine 4.0 Direct3D 12 support Wine 4.0 provides initial support for Direct3D 12 and requires the vkd3d library and a Vulkan-capable graphics card. The Direct3D graphics card database recognizes more graphics cards. The Multi-Threaded Command Stream feature is enabled by default. The OpenGL core contexts are always used by default when available to all graphics cards, and all versions of Direct3D before 12. Several Direct3D 11 interfaces have been updated to version 11.2, and DXGI interfaces have been updated to version 1.6. Support for using the correct swap interval is implemented, for both DXGI and DirectDraw applications. Application-configurable frame latency is implemented for Direct3D 9Ex and DXGI applications. Vulkan Support In Wine 4.0, Vulkan driver is implemented, using the host Vulkan libraries under X11, or MoltenVK on macOS. Wine 4.0 also provides a built-in vulkan-1 loader as an alternative to the SDK loader. A number of Direct2D interfaces have been updated to version 1.2. Other features: ARGB visual can be used as default X11 visual. The old 16-bit DIB.DRV driver is implemented using the DIB engine. For large polygons, polygon drawing is much faster in the DIB engine. Improvements made in Kernel Support for running DOS binaries under Wine is removed. In wine 4.0, all the CPU control and debug registers can be accessed by kernel drivers, including on 64-bit. Events, semaphores, mutexes, and timers are also implemented in kernel mode for device drivers. The WaitOnAddress synchronization primitives are supported. Application settings, compatibility information, and execution levels are also recognized in application manifests. Other changes Wine 4.0 supports the new version of the Android graphics buffer allocator API to enable graphics support on Android version 8 and above. Android x86-64 platforms are supported also in 64-bit mode. New external dependencies The Vulkan library is used to implement the Vulkan graphics driver. The Vkd3d library is used to implement Direct3D 12 on top of Vulkan. The SDL library is used to support game controllers. The GSSAPI library is used to implement Kerberos authentication. These are a select few changes. For a full list of improvements and additions, check out the release notes. Red Hat releases Red Hat Enterprise Linux 8 beta; deprecates Btrfs filesystem Homebrew 1.9.0 released with periodic brew cleanup, beta support for Linux, Windows and more. Microsoft releases ProcDump for Linux, a Linux version of the ProcDump Sysinternals tool
Read more
  • 0
  • 0
  • 2915

article-image-paypal-replaces-flow-with-typescript-as-their-type-checker-for-every-new-web-app
Bhagyashree R
22 Jan 2019
2 min read
Save for later

PayPal replaces Flow with TypeScript as their type checker for every new web app

Bhagyashree R
22 Jan 2019
2 min read
Yesterday, Kent C. Dodds, a JavaScript engineer at PayPal, shared in a post that now every app created at PayPal uses TypeScript by default replacing its previous type checker, Flow.  He also shared why it took them so much time to migrate to TypeScript and what are the drawbacks of using Flow which TypeScript solves. Dodds works on a toolkit called paypal-scripts, which is a package of all the tools common to PayPal applications and published modules. It was created to replace the huge list of devDependencies in the package.json and all the config files with a single entry in the devDependencies. Keeping all the tools and config in a single package, also made updating very easier. Now, this paypal-scripts module is also merged with their base GitHub repo named “sample-app”, to ensure that every new application will get their start with modern technology and tools. These applications will also be statically typed with TypeScript and tested with Jest. It took Dodds so long to adopt TypeScript because he was hesitant towards leaving Babel and ESLint. He was using these tools for several years and enjoyed building custom plugins for both. Also, earlier, TypeScript users faced some challenges when using Babel and ESLint. A common theme was that Babel users found it difficult to set up TypeScript. The linting experience also needed some improvement, so the TypeScript team started working on improving TypeScript’s compatibility for ESLint. This meant for Dodds that he did not have to give up these tools to adopt TypeScript, and that is why he decided to replace Flow with TypeScript. Dodds mentions that the regular unreliability of Flow made him take this decision. Explaining the challenges, he wrote, “The editor plugins only sometimes worked (full disclosure, I never tried Nuclide and maybe my life would’ve been different if I had, but I tried Flow in Atom and VSCode) and I would get issues like the one all the time. It was incredibly frustrating because I could never trust my type checker. There were other issues as well.” Read more in detail on Kent C. Dodds’ post: Why every new web app at PayPal starts with TypeScript. Future of ESLint support in TypeScript The Angular 7.2.1 CLI release fixes a webpack-dev-server vulnerability, supports TypeScript 3.2 and Angular 7.2.0-rc.0 Announcing ‘TypeScript Roadmap’ for January 2019- June 2019
Read more
  • 0
  • 0
  • 3211

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
  • 1917
Visually different images

article-image-midi-2-0-prototyping-in-the-works-35-years-after-launch-of-the-first-version
Prasad Ramesh
21 Jan 2019
2 min read
Save for later

MIDI 2.0 prototyping in the works, 35 years after launch of the first version

Prasad Ramesh
21 Jan 2019
2 min read
In a blog post last Friday, the MIDI Manufacturers Association (MMA) together with the Association of Music Electronics Industry (AMEI) announced prototyping of MIDI 2.0. Musical Instrument Digital Interface or otherwise commonly referred to as MIDI is a digital protocol used for recording and playing back music. It was originally designed for musical keyboards but was soon enough adopted to be used in computers. MIDI was also used in phone ringtones. The protocol was first released in 1983. Now, the MMA and in association with AMEI have settled on the specifications and features for the next generation of the music recording protocol and have named it MIDI 2.0. These two companies are now working together in order to develop prototypes based on a co-developed draft specification. There will be a ‘plugfest’ in Winter NAMM 2019 between some MIDI 2.0 prototypes to test compatibility. Some of the participating companies are Google, Yamaha, Roland, and Steinberg. The prototyping will continue through this year as the involved associations work together on launch plans of the new protocol. This includes developing a new logo and self-certification programs for both MMA and AMEI member organizations. However, during the prototyping phase, the specifications for MIDI 2.0 is exclusive to MMA and AMEI members. MIDI 2.0 brings auto-configuration, new DAW/web integrations, extended resolution, increased expressiveness, and tighter timing. While adding the new features, they will also strive to maintain backward compatibility. The new specifications will join the current MIDI specifications when they are finalized and will be available as a free download on the MIDI website. 3D Secure v2: a new authentication protocol supported by Stripe for frictionless authentication and better user experience Qt creator 4.8 beta released, adds language server protocol Golang plans to add a core implementation of an internal language server protocol
Read more
  • 0
  • 0
  • 1615

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

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

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

article-image-future-of-eslint-support-in-typescript
Prasad Ramesh
21 Jan 2019
2 min read
Save for later

Future of ESLint support in TypeScript

Prasad Ramesh
21 Jan 2019
2 min read
In a blog post, the ESLint team talks about the future of ESLint on TypeScript. Earlier, the TypeScript team talked about their future and including ESLint into their repository to improve compatibility between the two. Based on the feedback from the TypeScript community, it was discovered that the linting experience was not that good in TypeScript. They then announced support for both ESLint and TSLint. The former worked well with TypeScript while TSLint would cause duplicate work and induce some breaking changes. Also, some lint rules were not present in TSLint. Hence the focus has been on incorporating ESLint. Many members from the ESLint team have been working to improve its compatibility with TypeScript. The focus of this earlier work was on the TypeScript parser and typescript-eslint-parser. Other than that there were efforts also on eslint-plugin-typescript which was maintained by individual team members. The Typescript parser will become an important part in the integration of the two and the ESLint teams want to ensure its proper maintenance. The typescript-eslint project A key contributor working on ESLint compatibility in TypeScript, James Henry started the typescript-eslint project as a centralized repository. It contains all things pertaining to TypeScript ESLint compatibility and will be housing TypeScript parser, eslint-plugin-typescript, and other utilities that aid in the TypeScript ESLint integration. However, the ESLint team itself won’t be formally a part of this project but seem to be supportive of Henry’s efforts. ESLint’s future in TypeScript The ESLint official team will no longer maintain the typescript-eslint-parser. The repository is now archived and there will be no future released of typescript-eslint-parser in npm. Users who are using typescript-eslint-parser are advised to switch to @typescript-eslint/parser. The typescript-eslint repository will be updated for any new developments on ESLint support in TypeScript. Announcing ‘TypeScript Roadmap’ for January 2019- June 2019 TypeScript 3.2 released with configuration inheritance and more Introducing ReX.js v1.0.0 a companion library for RegEx written in TypeScript
Read more
  • 0
  • 0
  • 2511
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-rust-1-32-released-with-a-print-debugger-and-other-changes
Prasad Ramesh
18 Jan 2019
3 min read
Save for later

Rust 1.32 released with a print debugger and other changes

Prasad Ramesh
18 Jan 2019
3 min read
Yesterday, the Rust team announced the release of Rust 1.32 in a blog post. The new version of the Rust programming language brings improvements to the quality of life, switches to the default allocator, and makes more functions const. Addition of the dbg macro in Rust 1.32 If you are a “print debugger”, you must have wanted to print out some value while working on code. Using something like println!("{:?}", x); isn’t fast enough. It is also a bit too much just to simply show the value of x. Also, there is no context here, if there are several println! statements, it is hard to distinguish between them. Rust now has a new package called dbg specifically for this purpose: fn main() {    let x = 5;       dbg!(x); } On running the above code, you will get: [src/main.rs:4] x = 5 In the output, you will see the file, line number, name, and value. While println! prints to the standard output, the dbg! function prints to the stderr. dbg! even works in more complex circumstances like factorial, iterations, etc. jemalloc is removed in Rust 1.32 In Rust’s initial years, it had a large Erlang type runtime. The developers then chose jemalloc instead of the system allocator for better performance. Over time, most of this runtime was removed except jemalloc. jemalloc was kept for users who would still need it. While it has great performance in most cases, it was not always the case. It adds 300kb to every Rust binary and has other issues. The core developers also thought it was strange that a systems language does not default to the system allocator. Hence Rust 1.28 had shipped with a global allocator. The work for using a system allocator is now finished and it can be used for all Rust programs now. jemalloc can still be used if you want to, via a crate in the Cargo.toml. Module improvements The last two Rust releases had some performance improvements to the module system. Rust 1.32 comes with something called “uniform paths” which allows import path statements to be resolved the same way as non-import paths. This was previously invalid. Efforts to revise the system module is now complete and the following code will now work. enum Color { Red, Green, Blue } use Color::*; Macro improvements A new literal string matcher is added. It matches against literals of any type. This includes string literals, numeric literals, and char literals. In Rust 2018 edition, macro_rules can also use ? to match 0 or 1 repetitions of the pattern. Library changes Other than the dbg! library, 19 functions were made cont. Now, all integral numeric primitives give conversion functions to and from byte-arrays that have specified endianness. There are six functions named as: to_<endian>_bytes and from_<endian>_bytes, in which <endian> is one of the following: ne - native endianness le - little endian be - big endian Cargo now has cargo_c as an alias for cargo_check and now usernames in registry URLs are allowed. These were the highlights of the changes in Rust 1.32, for a complete list of changes and fixes, visit the release notes. How has Rust and WebAssembly evolved in 2018 Rust Survey 2018 key findings: 80% developers prefer Linux, WebAssembly growth doubles, and more Red Hat announces full support for Clang/LLVM, Go, and Rust
Read more
  • 0
  • 0
  • 2600

article-image-tensorflow-2-0-to-be-released-soon-with-eager-execution-removal-of-redundant-apis-tf-function-and-more
Amrata Joshi
15 Jan 2019
3 min read
Save for later

TensorFlow 2.0 to be released soon with eager execution, removal of redundant APIs, tf function and more

Amrata Joshi
15 Jan 2019
3 min read
Just two months ago Google’s TensorFlow, one of the most popular machine learning platforms celebrated its third birthday. Last year in August, Martin Wicke, engineer at Google, posted the list of what’s expected in TensorFlow 2.0, an open source machine learning framework, on the Google group. The key features listed by him include: This release will come with eager execution. This release will feature more platforms and languages along with improved compatibility. The deprecated APIs will be removed. Duplications will be reduced. https://twitter.com/aureliengeron/status/1030091835098771457 The early preview of TensorFlow 2.0 is expected soon. TensorFlow 2.0 is expected to come with high-level APIs, robust model deployment, powerful experimentation for research and simplified API. Easy model building with Keras This release will come with Keras, a user-friendly API standard for machine learning which will be used for building and training the models. As Keras provides various model-building APIs including sequential, functional, and subclassing, it becomes easier for users to choose the right level of abstraction for their project. Eager execution and tf.function TensorFlow 2.0 will also feature eager execution, which will be used for immediate iteration and debugging. The tf.function will easily translate the Python programs into TensorFlow graphs. The performance optimizations will remain optimum and by adding the flexibility, tf.function will ease the use of expressing programs in simple Python. Further, the tf.data will be used for building scalable input pipelines. Transfer learning with TensorFlow Hub The team at TensorFlow has made it much easier for those who are not into building a model from scratch. Users will soon get a chance to use models from TensorFlow Hub, a library for reusable parts of machine learning models to train a Keras or Estimator model. API Cleanup Many APIs are removed in this release, some of which are tf.app, tf.flags, and tf.logging. The main tf.* namespace will be cleaned by moving lesser used functions into sub packages such as tf.math. Few APIs have been replaced with their 2.0 equivalents like tf.keras.metrics, tf.summary, and tf.keras.optimizers. The v2 upgrade script can be used to automatically apply these renames. Major Improvements The queue runners will be removed in this release The graph collections will also get removed. The APIs will be renamed in this release for better usability. For example,  name_scope can be accessed using  tf.name_scope or tf.keras.backend.name_scope. For ease in migration to TensorFlow 2.0, the team at TensorFlow will provide a conversion tool for updating TensorFlow 1.x Python code for using TensorFlow 2.0 compatible APIs. It will flag the cases where code cannot be converted automatically. In this release, the stored GraphDefs or SavedModels will be backward compatible. With this release, the distribution to tf.contrib will no more be in use. Some of the existing contrib modules will be integrated into the core project or will be moved to a separate repository, rest of them will be removed. To know about this news, check out the post by the TensorFlow team on Medium. Building your own Snapchat-like AR filter on Android using TensorFlow Lite [ Tutorial ] Google expands its machine learning hardware portfolio with Cloud TPU Pods (alpha) to effectively train and deploy TensorFlow machine learning models on GCP Google researchers introduce JAX: A TensorFlow-like framework for generating high-performance code from Python and NumPy machine learning programs
Read more
  • 0
  • 0
  • 3857

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

Elixir 1.8 released with new features and infrastructure improvements

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

article-image-llvm-officially-migrating-to-github-from-apache-svn
Prasad Ramesh
14 Jan 2019
2 min read
Save for later

LLVM officially migrating to GitHub from Apache SVN

Prasad Ramesh
14 Jan 2019
2 min read
In October last year, it was reported that LLVM (Low-Level Virtual Machine) is moving from Apache Subversion (SVN) to GitHub. Now the migration is complete and LLVM is available on GitHub. This transition was long under discussion and is now officially complete. LLVM is a toolkit for creating compilers, optimizers, and runtime environments. This migration comes in place as continuous integration is sometimes broken in LLVM because the SVN server was down. They migrated to GitHub for services lacking in SVN such as better 24/7 stability, disk space, code browsing, forking etc. GitHub is also used by most of the LLVM community. There already were unofficial mirrors on GitHub before this official migration. Last week, James Y Knight from the LLVM team wrote to a mailing list: “The new official monorepo is published to LLVM's GitHub organization, at: https://github.com/llvm/llvm-project. At this point, the repository should be considered stable -- there won't be any more rewrites which invalidate commit hashes (barring some _REALLY_ good reason...)” Along with LLVM, this monorepo also hosts Clang, LLD, Compiler-RT, and other LLVM sub-projects. Commits are being made to the LLVM GitHub repository even at the time of writing and the repo currently has about 200 stars. Updated workflow documents and instructions on migrating user work that is in-progress are being drafted and will be available soon. This move was initiated after positive responses from LLVM community members to migrate to GitHub. If you want to be up to date with more details, you can follow the LLVM mailing list. LLVM will be relicensing under Apache 2.0 start of next year A libre GPU effort based on RISC-V, Rust, LLVM and Vulkan by the developer of an earth-friendly computer LLVM 7.0.0 released with improved optimization and new tools for monitoring
Read more
  • 0
  • 0
  • 15622
article-image-netbeans-intellij-idea-and-pycharm-come-to-haiku-os
Prasad Ramesh
14 Jan 2019
2 min read
Save for later

Netbeans, Intellij IDEA and PyCharm come to Haiku OS

Prasad Ramesh
14 Jan 2019
2 min read
Last week three IDEs were ported to Haiku OS. Now, Haiku OS users can build applications with Netbeans, Intellij IDEA, and PyCharm. Haiku is an offspring of BeOS which was created by an ex-Apple executive, Jean Luis Gassee. Haiku’s development began in 2001, the first beta was released in September 2018. It is a single user system targeted specifically for personal computing. It uses a custom kernel, a fully threaded design, and a cohesive interface. Haiku houses the progressive concepts from BeOS and delivers it in a free and open source package. Now, let’s look at the package ports to Haiku. Haiko OS users can now run both Netbeans and IntelliJ IDEA with the OpenJDK8 x86_64 port. This is not in the depot yet, only in the haikuports recipe. Moreover, due to the efforts of another community member, a package for PyCharm Community Edition 2018.3 is also available. There are some minor issues and users have to work around a few settings to get things working. The addition of NetBeans IDE 8.2 and Intellij IDEA Community Edition 2018.3 to Haiku OS has many of its users excited. A comment on Hacker news says: “That's a really impressive achievement I think, those are complex applications running on complex stacks. It's certainly a big step in the direction of making Haiku a system that a developer could plausibly run for the development of cross-platform applications. This coupled with the Libre Office port last year means there's a pretty strong selection of applications for it cropping up.” Note that, by default Haiku comes with the dying Python 2.7 and the next major version, Python 3 can be installed via the package manager. To keep an eye on updates of these IDEs, head over to the Haiku forums. Haiku beta released with package management, a new preflet, webkit and more The Haiku operating system has released R1/beta1 Haiku, the open source BeOS clone, to release in beta after 17 years of development
Read more
  • 0
  • 0
  • 3118

article-image-ibm-q-system-one-ibms-standalone-quantum-computer-unveiled-at-ces-2019
Sugandha Lahoti
09 Jan 2019
2 min read
Save for later

IBM Q System One, IBM’s standalone quantum computer unveiled at CES 2019

Sugandha Lahoti
09 Jan 2019
2 min read
At the ongoing CES 2019, IBM has unveiled what possibly is the world’s first standalone quantum computer. Dubbed, the IBM Q System One, it is a giant 50-qubit quantum computer that gives repeatable and predictable high-quality qubits. This is IBM’s first step forward in the commercialization of quantum computing as IBM Q System One steps out of the research lab for the first time. https://youtu.be/LAA0-vjTaNY IBM Q System One is comprised of a number of custom components. This includes a stable and auto-calibrated Quantum hardware. It has Cryogenic engineering for maintaining a cold and isolated quantum environment. The Quantum firmware manages system health and upgrades without downtime for users. Classical computation provides secure cloud access and hybrid execution of quantum algorithms. IBM is calling the Q System One as the future beyond supercomputing, capable of handling applications such as modeling financial data and organizing super-efficient logistics. “This new system is critical in expanding quantum computing beyond the walls of the research lab as we work to develop practical quantum applications for business and science,” said Arvind Krishna, senior vice-president of hybrid cloud and director of IBM Research. In the second half of 2019, IBM is planning to open the IBM Q Quantum Computation Center to expand IBM’s commercial quantum computing program. This new center will be accessible to members of the IBM Q Network. You may go through IBM’s Q-Experience FAQs and Beginner's guide to working with System Q for a much substantive understanding. The US to invest over $1B in quantum computing, President Trump signs a law UK researchers build the world’s first quantum compass to overthrow GPS Italian researchers conduct an experiment to prove that quantum communication is possible on a global scale
Read more
  • 0
  • 0
  • 3134

article-image-announcing-typescript-roadmap-for-january-2019-june-2019
Melisha Dsouza
08 Jan 2019
4 min read
Save for later

Announcing ‘TypeScript Roadmap’ for January 2019- June 2019

Melisha Dsouza
08 Jan 2019
4 min read
Today, Daniel Rosenwasser, the Program Manager of TypeScript, released a roadmap to be followed for TypeScript starting from January 2019 to June 2019. This roadmap outlines the priorities that the team will be focussing on, over the next 6 months, which will serve as a set of guidelines to accomplish the listed goals by June 2019. These goals (as listed on GitHub) include: Types on every desk, for every JS developer Using strong tooling to increase productivity Improved Approachability and UX More Community engagement Better Infrastructure and engineering systems In order to achieve these goals, the Typescript team will focus on tweaking the following domains: #1 Language design and innovation Under this domain, the team will focus on the core ‘type’ system. They plan to enable popular JS patterns in a type-safe way, while also proving relationships between types. The latter simply means generalizing patterns between type operators and encoding them in type relationships. They also plan to implement ECMAScript features with stricter settings. In terms of Committee representation, their goals include prioritizing forward compatibility with proposals/features adopted in the earlier stages of developing TS. They also want to be involved in other features like Class fields (public and private), decorators, ES/CJS module interop, and much more to ensure that ECMAScript grows to ‘make a developers' life easier’. #2 Developer productivity tools and integration The team plans to introduce ‘quick fixes’ that will be proactive in nature. This includes a class of code modifications and fixes that are applicable, which will be useful for teaching users about language features and patterns, making it more approachable to work with TypeScript/JavaScript. Proactive fixes also imply that TypeScript can analyze code and can surface suggestions and code changes for improvements rather than just fix an error. This is in contrary to most of the current quick fixes that are reactive in nature and are created and triggered after a user has seen a definite error. They also plan on focussing on more targeted workflows like ‘migration’. They will come up with ways to ease migration to TypeScript and typed JavaScript to improve the process of adding types. In the field of ‘Linting’, the team noticed architectural issues with the way TSLint rules operate that impacted performance. They will be working towards fixing these issues. Since ESLint already has the more-performant architecture, the TS team will be focusing on leveraging ESLint rather than duplicating work. For scenarios that ESLint currently doesn't cover, they will be sending contributions to bring ESLint's TypeScript support to parity with TSLint. To build co-located TypeScript projects, the team will be making improvements such as functionality for automatically swapping projects in and out to save memory. They will also investigate the emit-time regressions seen in the last few versions of TS. Finally, they plan to investigate surfacing language service operations on the command line. #3 Education and UX The team says that the documentation provided for TypeScript needs to be improved for a more seamless learning experience. They will be working on a new version of the handbook with  three different parts: Tailored introductions for the core handbook The core handbook for everyone Reference pages (eg. appendices) They believe the segmentation of this documentation will help developers from all backgrounds--right from complete novices to experienced developers--to learn TypeScript without any hassle. They will also be improving their error UX to make it more ‘approachable’ for inexperienced users. Their website will also be undergoing an upgrade along with the examples mentioned on the same. #4 Community investment TypeScript's 'DefinitelyTyped' is the 10th most popular open source project on GitHub. The team will be focussing on weekly PR rotations--where members of the TS team review external PRs to DefinitelyTyped--and DefinitelyTyped's surrounding infrastructure such as the types publisher, dtslint, and dt-mergebot. They also plan to ease the process of external contributions to the documentation and investigate improving rich editing experiences. This year, users can also expect more public talks, meetups and blog posts on TypeScript. #5 Team Infrastructure The team will be focussing on faster builds by converting them to avoid bootstrapping themselves outside of CI, adding/migrating lint rules, and much more. This will, in turn, improve TS stability, productivity, and ease of contribution. Besides this, they also plan on providing internal guidance on TypeScript-first API designs, assisting internal partner teams with best practices for projects and addressing major Microsoft-internal build regressions. You can head over to TypeScript’s GitHub page for more insights on this announcement. npm JavaScript predictions for 2019: React, GraphQL, and TypeScript are three technologies to learn TypeScript 3.2 released with configuration inheritance and more Vue.js 3.0 is ditching JavaScript for TypeScript. What else is new?    
Read more
  • 0
  • 0
  • 2745
article-image-github-was-down-first-working-day-of-2019-hacker-claims-ddos
Prasad Ramesh
04 Jan 2019
2 min read
Save for later

GitHub was down first working day of 2019, hacker claims DDoS

Prasad Ramesh
04 Jan 2019
2 min read
This Wednesday, GitHub pages were non-functional as there was some instability in their servers. A hacker claimed that he performed a DDoS attack on the website. Github was down for roughly about an hour before normal functionality was restored. A hacker that goes by the name of Hax Stroke, a part of Ghost Squad Hackers Tweeted: https://twitter.com/HaxStroke/status/1080517770222231553 Hax Stroke claims to have performed the attack using RPCBIND service DDoS amp and that it was ‘just a demo’. The Issues, PRs, Dashboard, Projects seemed to be down, enough for the website to not load at all. https://twitter.com/odraudek99/status/1080517844763377665 The outage was observed in many parts of the globe. https://twitter.com/ReportOutage/status/1080517092569423878 The same person also claims to be responsible for the YouTube outage end of last year. https://twitter.com/HaxStroke/status/1052743020435640325 The new year has just started and users observed issues in using GitHub: https://twitter.com/arungupta/status/1080518646152089601 On their status website, their official comment as of January 2, 16:32 UTC is: “Resolved - We observed elevated error rates and discovered a capacity issue in one of our databases which impacted Web, API, and Gists. A backlog was cleared and systems returned to normal.” This isn’t the first time when the crowd favorite open-source repository was malfunctional. In October last year, GitHub was down for one whole day due to a failure in its data storage system. GitHub down for a complete day due to failure in its data storage system GitHub plans to deprecate GitHub services and move to Webhooks in 2019 GitHub Octoverse: The top programming languages of 2018
Read more
  • 0
  • 0
  • 4668

article-image-introducing-coconut-for-making-functional-programming-in-python-simpler
Bhagyashree R
04 Jan 2019
3 min read
Save for later

Introducing Coconut for making functional programming in Python simpler

Bhagyashree R
04 Jan 2019
3 min read
Adding to the list of Python-like programming languages is Coconut that allows developers write simple and elegant functional code, while using the familiar Python environment and libraries. It is basically a superset of Python that adds on top of Python syntax and is inspired by programming languages like Haskell, CoffeeScript, F#, and patterns.py. The language is written by Evan Hubinger, an undergraduate student studying mathematics and computer science at Harvey Mudd College. Why Coconut was developed? Writing functional programs in Python can be challenging at times. While Python does allow developers to write high-order functions, it lacks concise syntax for lambdas, boilerplate-less pattern matching, etc. One Hacker News user mentioned, “It's capable of functional programming in the sense that functions are first class values that you can pass around, but it is infamously hostile to functional programming. For example, Python still doesn't have multiline lambdas, and the justifications for why always boil down to it being "unpythonic".” This is what Coconut tries to solve by bringing tools of modern functional programming. It provides a clean -> operator replacing Python’s lambda statements. It supports pipeline-style programming, partial application, pattern-matching, destructuring assignment, parallel programming, and more. To provide optional static type-checking you can integrate Coconut with MyPy, which is an optional static type checker for Python. But, it is not purely functional that allows programmers to choose whatever programming style they are comfortable with. As it is a variant of Python, developers who have experience in working on Python will not have much difficulty in learning it. Coconut code are compiled to Python code. Developers can access the Coconut compiler through its command-line utility, which also comes with an interpreter to enable real-time compilation. Additionally, it also supports the use of IPython/Jupyter notebooks. What are the Python version it supports? It supports these Python versions: >= 2.6 on the 2.x branch or >= 3.2 on the 3.x branch. To make Coconut built-ins universal across Python versions, it automatically overwrites Python 2 built-ins with their Python 3 counterparts. It also overwrites some Python 3 built-ins for optimization and enhancement purposes. If developers want to access the original Python versions of any overwritten built-ins, they can retrieve the old built-in by prefixing them with py_. pandas will drop support for Python 2 this month with pandas 0.24 Qt for Python 5.12 released with PySide2, Qt GUI and more Google researchers introduce JAX: A TensorFlow-like framework for generating high-performance code from Python and NumPy machine learning programs
Read more
  • 0
  • 0
  • 4435