Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Events
Videos
Audiobooks
Packt Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Tech News - Programming

573 Articles
article-image-eclipse-4-10-0-released-with-major-improvements-to-colors-fonts-preference-page-and-more
Amrata Joshi
20 Dec 2018
3 min read
Save for later

Eclipse 4.10.0 released with major improvements to colors, fonts preference page and more

Amrata Joshi
20 Dec 2018
3 min read
Yesterday, the team at Eclipse release Eclipse 4.10.0, SDK project. Eclipse 4.10.0 is a part of Eclipse IDE 2018-12. This release features improved views, options, dialogs,Java editor and more. https://twitter.com/EclipseJavaIDE/status/1075422538484846597 Improvements to Eclipse 4.10.0 Views and dialogs The Quick Switch Editor (Ctrl+E) dialog for editor selection has been improved and now shows the path of the resource along with its filename. In Eclipse 4.10.0, the Workspace selection dialog shows completion proposals for making the process of picking a workspace with the keyboard easier. It is now possible to convert a plug-in project to a modular project by selecting the Configure > Create module-info.java context menu. This creates the module-info.java file for the project. Colors, Fonts preference page The Colors and Font preference page has been updated and it now supports searching for font, font height, and font style. The search has been updated allowing the users to quickly see where a font is used or where a specific style or size is used. This release comes with a new option that disables API analysis builder on the Plug-in Development preference page. Chevron button for hidden tabs The chevron button now shows the number of tabs that are hidden. It doesn't have transparency artifacts anymore, which makes it more readable especially in the dark theme. Added support for custom URL schemes in Eclipse 4.10.0 This release can handle custom URL schemes such as https, ssh, and git. When a user clicks on a link with a specific custom URL scheme, Eclipse first starts and then handles the clicked link. Users can now control the URL schemes that should be handled by the current Eclipse installation via General > Link Handlers preference page. ContentAssistant class The ContentAssistant class now allows consumers to configure whether the completion proposal trigger characters are honored or ignored. If ContentAssistant.enableCompletionProposalTriggerChars(false) is used, then completion proposal trigger characters are ignored and the users have to press the Enter key to trigger insertion. If ContentAssistant.enableCompletionProposalTriggerChars(true) is used, then completion proposal trigger characters can be used alongwith the Enter key to insert the proposal. If the enableCompletionProposalTriggerChars(boolean) method is not called, then the default behaviour is equivalent to calling enableCompletionProposalTriggerChars(true) so that extra trigger characters are honored. Java Editor Eclipse 4.10.0 comes with a quick fix Change project compliance and JRE to 11. This release comes with a quick assist, that allows adding var type to lambda parameters. This quick assist will only be available if the project compliance is Java 11 or above. An option to set compiler compliance to 11 on a Java project is now available. With this release, Java editor now shows the number of implementations and references for a Java element as decorative text (Code Minings) above the element. Read more about this news on Eclipse’ blog. Eclipse IDE’s Photon release will support Rust Will Ethereum eclipse Bitcoin? Apache Maven and m2eclipse
Read more
  • 0
  • 0
  • 12219

article-image-gitlab-11-5-released-with-group-security-and-operations-focused-dashboard-control-access-to-gitlab-pages
Amrata Joshi
23 Nov 2018
3 min read
Save for later

GitLab 11.5 released with group security and operations-focused dashboard, control access to GitLab pages

Amrata Joshi
23 Nov 2018
3 min read
Yesterday, the team at Gitlab released GitLab 11.5. GitLab, an application for the DevOps lifecycle helps the developer teams work together efficiently to secure their code. Group Security Dashboard and Operations-Focused Dashboard To strengthen security, the security teams need to have access to information about the security status of all their projects. It is important for them to understand what the most important task is to take up next. It is also equally important for directors of security in any organization, as they need to have a high-level view of possible critical issues which might affect the development. GitLab 11.5 introduced a new Group Security Dashboard launched at the group level. This security dashboard gives a summary of all the SAST (Static Application Security testing) vulnerabilities in the projects in a particular group, and also provides a list of actionable entries that could be used for starting a remediation process. This dashboard also has a new look and has new visualizations. The goal is to have a single tool that security teams can use instead of using multiple tools. GitLab 11.5 also comes with a new, operations-focused dashboard, which is responsible for providing a summary of the key operational metrics for each project where a user is interested. This dashboard comes with some interesting features, including, the most recent commit, time since the last deployment, and active alerts. A user can also set this dashboard as their preferred homepage. GitLab 11.5 brings control access to Gitlab Pages GitLab Pages is a feature that helps users to publish static websites directly from a repository in GitLab. GitLab Pages is also used to serve static content on the web easily. GitLab 11.5 brings control access to GitLab Pages. The access control permissions applied to issues and code can now also be applied to static webpages. This way the access can be restricted and given only to those permitted by the user. The users who lack permission will get a 404 when visiting the link for those webpages. Knative is a Kubernetes-based platform used for building, deploying, and managing modern serverless workloads. With GitLab 11.5, users can deploy Knative to their existing Kubernetes cluster by using the GitLab Kubernetes integration. Tasks such as routing and managing traffic, source-to-container builds, and scaling-to-zero have now become easy. GitLab 11.5 comes with improvements to Issue Boards cards Issue Boards is central place of collaboration in GitLab, where teams can organize, and view planned and ongoing work. In GitLab 11.5, issue cards have been redesigned and it now shows relevant information in a simple and organized manner. The issue cards now show the issue title, confidentiality, time-tracking information, due date, labels, weight, and assignee. To read full GitLab updates, check out the official post by GitLab. GitLab 11.4 is here with merge request reviews and many more features GitLab 11.3 released with support for Maven repositories, protected environments and more  GitLab raises $100 million, Alphabet backs it to surpass Microsoft’s GitHub
Read more
  • 0
  • 0
  • 12185

article-image-erlang-turns-20-tracing-the-journey-from-ericsson-to-whatsapp
Amrata Joshi
10 Dec 2018
3 min read
Save for later

Erlang turns 20: Tracing the journey from Ericsson to Whatsapp

Amrata Joshi
10 Dec 2018
3 min read
Just two days back, Erlang, a functional programming language turned twenty. Erlang has been one of the most popular open source languages with compelling features like concurrent processes, memory management, scheduling, distribution, networking, etc.WhatsApp, the most popular messaging platform’s server is almost completely implemented in Erlang. Twenty years back, on 8th December 1998, Ericsson released its development environment, Erlang/OTP (Open Telecom Platform), as an open source. It was used to make the process of building telecommunications products easier with functionalities like speed, distribution, and concurrency. It also supports a number of processors and operating systems and can be easily integrated with different development languages. Erlang fosters Ericsson’s GPRS, 3, and 4G/LTE and it also powers the internet and mobile data networks. How did Erlang become open source? When Håkan Millroth, head of the Ericsson Software Architecture Lab suggested his team to try ‘open source’, Jane Walerud, an entrepreneur agreed to it and convinced the entire Ericsson management team to release the source code for the Erlang VM. Erlang was released without any publicity, marketing buzz or media coverage. Ericsson just sent an email to Erlang’s mailing list and an announcement was posted on slashdot. During the dot-com bust era, when an extreme growth in the usage and adaptation of the Internet was observed, Erlang/OTP was used in the creation of an XMPP based instant messaging server, ejabberd,developed by Alexey Shchepin. He chose Erlang over all the other languages as it was the most suitable language for implementing a Jabber server. Ejabberd 1.0 was released in December 2005 and it formed a base for many platforms like WhatsApp. Ejabberd showed a 280% increase in throughput when it was compiled to the latest version of Erlang. In May of 2005, a version of the BEAM VM also known as Erlang VM was released that proved the Erlang concurrency and programming models are ideal for multi-core architectures. In May 2006, Erlang was also used to program RabbitMQ, an Advanced Message Queuing Protocol (AMQP). Post that, Erlang has become the language of choice for most of the messaging solutions and is now the backbone of thousands of systems. In 2007, ‘Programming Erlang’ by Joe Armstrong got published by the Pragmatic Programmers. Further in June 2008, the first paper copy of Erlang Programming got publicly available. In 2011, Elixir, a functional and concurrent programming language that runs on Erlang VM was released. In August 2015, Phoenix 1.0, a framework for web applications was released. Phoenix 1.0 uses Erlang VM capabilities to create the same effect as Rails did on Ruby, by bringing making Elixir, popular. Read more about this news on Erlang’s blog post. Elixir 1.7, the programming language for Erlang virtual machine, releases Phoenix 1.4.0 is out with ‘Presence javascript API’, HTTP2 support, and more! Amazon re:Invent Day 3: Lamba Layers, Lambda Runtime API and other exciting announcements!
Read more
  • 0
  • 0
  • 12176

article-image-google-introduces-season-of-docs-that-will-connect-technical-writers-and-mentors-with-open-source-projects
Amrata Joshi
13 Mar 2019
2 min read
Save for later

Google introduces Season of Docs that will connect technical writers and mentors with open source projects

Amrata Joshi
13 Mar 2019
2 min read
Just two days ago, the team at Google announced Season of Docs, a new program which will connect technical writers with open source projects. Season of Docs will help in bringing technical writers and open source projects together in order to work on open source documentation. https://twitter.com/GoogleOSS/status/1105138318826627072 According to Open Source Survey, documentation is valued in open source communities but it is still difficult to work on it. A person dealing with the documentation needs to know how to structure a documentation site so that people can easily understand the content and only technical writers can do that. Another plus point is that they are aware of the procedures of writing docs that can fit the needs of their audience. Technical writers can help in optimizing a community’s processes for open source contribution and onboarding new contributors. With Season of Docs, technical writers can spend a few months working closely with open source communities. Writes can work with their chosen open source project and also explore the latest technologies. Mentors from open source organizations can share their knowledge based on their communities’ processes and tools. The technical writers and mentors together can build a new doc set and improve the structure of the existing docs. They can also work on tutorials and further improve contribution processes and guides. According to the team, this project will raise awareness about open source, docs, and technical writing. The open source organizations can apply for participating in Season of Docs starting from 2nd to 23rd of April. Google will then publish the list of accepted mentoring organizations, along with their ideas for documentation projects from 30th April. In July, Google will announce the accepted technical writer projects. The technical writers will get a chance to work with mentors on the accepted projects and submit their work between 2nd September and 29th November. Google will then publish the list of successfully completed projects by 10th December. To know more about this news, check out Google’s blog post. Google Cloud Console Incident Resolved! Google confirms it paid $135 million as exit packages to senior execs accused of sexual harassment Researchers input rabbit-duck illusion to Google Cloud Vision API and conclude it shows orientation-bias  
Read more
  • 0
  • 0
  • 12132

article-image-rust-1-33-0-released-with-improvements-to-const-fn-pinning-and-more
Amrata Joshi
01 Mar 2019
2 min read
Save for later

Rust 1.33.0 released with improvements to Const fn, pinning, and more!

Amrata Joshi
01 Mar 2019
2 min read
Yesterday, the team at Rust announced the stable release, Rust 1.33.0, a programming language that helps in building reliable and efficient software. This release comes with significant improvements to const fns, and the stabilization of a new concept: "pinning." What's new in Rust 1.33.0? https://twitter.com/rustlang/status/1101200862679056385 Const fn It’s now possible to work with irrefutable destructuring patterns (e.g. const fn foo((x, y): (u8, u8)) { ... }). This release also offers let bindings (e.g. let x = 1;). It also comes with mutable let bindings (e.g. let mut x = 1;) Pinning This release comes with a new concept for Rust programs called pinning. Pinning ensures that the pointee of any pointer type for example P has a stable location in memory. This means that it cannot be moved elsewhere and its memory cannot be deallocated until it gets dropped. And the pointee is said to be "pinned". Compiler It is now possible to set a linker flavor for rustc with the -Clinker-flavor command line argument. The minimum required LLVM version is 6.0. This release comes with added support for the PowerPC64 architecture on FreeBSD and x86_64-unknown-uefi target. Libraries In this release, the methods overflowing_{add, sub, mul, shl, shr} are const functions for all numeric types. Now the is_positive and is_negative methods are const functions for all signed numeric types. Even the get method for all NonZero types is now const. Language It now possible to use the cfg(target_vendor) attribute. E.g. #[cfg(target_vendor="apple")] fn main() { println!("Hello Apple!"); }. It is now possible to have irrefutable if let and while let patterns. It is now possible to specify multiple attributes in a cfg_attr attribute. One of the users commented on the HackerNews, “This release also enables Windows binaries to run in Windows nanoserver containers.” Another comment reads, “It is nice to see the const fn improvements!” https://twitter.com/AndreaPessino/status/1101217753682206720 To know more about this news, check out Rust’s official post. Introducing RustPython, a Python 3 interpreter written in Rust How Deliveroo migrated from Ruby to Rust without breaking production Rust 1.32 released with a print debugger and other changes  
Read more
  • 0
  • 0
  • 12120

article-image-facebook-releases-skiplang-a-general-purpose-programming-language
Prasad Ramesh
01 Oct 2018
2 min read
Save for later

Facebook releases Skiplang, a general purpose programming language

Prasad Ramesh
01 Oct 2018
2 min read
Facebook released Skip or Skiplang last week, a language it has been developing since 2015. It is a general-purpose programming language that provides caching with features like reactive invalidation, safe parallelism, and efficient garbage collection. Skiplang features Skiplang's primary goal is to explore language and runtime support for correct, efficient memoization-based caching and cache invalidation. It achieves this via a static type system that carefully tracks mutability. The language is typed statically and compiled ahead-of-time using LLVM to produce executables that are highly optimized. Caching with reactive invalidation The main new language feature in Skiplang is its precise tracking of side effects. It includes both mutability of values and distinguishing between non-deterministic data sources. This distinguishing includes data sources that can provide reactive invalidations that tell Skiplang when data has changed. Safe parallelism Skiplang has support for two complementary forms of concurrent programming. Both forms avoid the usual thread safety issues due to the language's tracking of side effects. This language also supports ergonomic asynchronous computation with async/await syntax. Asynchronous computations cannot refer to mutable state and are therefore safe to execute in parallel allowing independent async continuations to continue in parallel. Skiplang also has APIs for direct parallel computation, again using its tracking of side effects it prevents thread safety issues like shared access to mutable state. An efficient and predictable garbage collector Skiplang’s approach to memory management combines aspects of typical garbage collectors with more straightforward linear allocation schemes. The garbage collector only has to scan the memory that is reachable from the root of a computation. This allows developers to write code with predictable garbage collector overhead. A hybrid functional object-oriented language Skiplang is a mix of ideas from functional and object-oriented styles. They are all carefully integrated to form a cohesive language. Like other functional languages, it is expression-oriented and supports features like abstract data types, pattern matching, easy lambdas, higher-order functions, and enforcing pure/referentially-transparent API boundaries (optional). Like OOP languages, it supports classes with inheritance, mutable objects, loops, and early returns. In addition to these, Skiplang also incorporates ideas from “systems” languages supporting low-overhead abstractions, and compact memory layout of objects. Know more about the language from the Skiplang website and their GitHub repository. JDK 12 is all set for public release in March 2019 Python comes third in TIOBE popularity index for the first time Michael Barr releases embedded C coding standards
Read more
  • 0
  • 0
  • 12108
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €18.99/month. Cancel anytime
article-image-microsoft-bring-an-open-source-model-of-component-firmware-update-cfu-for-peripheral-developers
Prasad Ramesh
19 Oct 2018
4 min read
Save for later

Microsoft bring an open-source model of Component Firmware Update (CFU) for peripheral developers

Prasad Ramesh
19 Oct 2018
4 min read
Microsoft announced an open-source model for Component Firmware Update (CFU), for Windows developers. CFU enables delivering firmware updates for peripheral components through Windows Update by using CFU drivers. This protocol aims to enable system and peripheral developers to leverage the CFU protocol. It allows them to easily and automatically push firmware updates to Windows Update for their firmware components. CFU aims to bring smooth updates via Windows updates and verify the firmware version before download. CFU permits but does not specify authentication, encryption, rollback policies/ methods, or recovery of bricked firmware. Overview of CFU The CFU driver is the host and is created by the device manufacturer. It is delivered via a Windows Update. Then the driver is installed once the device is detected by Windows. Primary and sub-components A hierarchical system with a primary component and subcomponents is followed in a CFU compatible system. A primary component implements CFU on the device side and can receive updates for itself and the connected sub-components. A device may have multiple primary components with or without additional sub-components. Offers and payloads A CFU driver which is the host, may contain multiple firmware images for a primary component and its sub-components. A package in the host consists of an offer, a payload and other information. The offer contains information about the payload to allow the primary component in deciding if it is acceptable. A payload is the firmware image. Offer Sequence The primary component can accept, reject, or skip the offer of firmware update. On accepting, the payload is delivered immediately. On rejecting or skipping, the host cycles through all other offers in the list. Host independence The host’s (CFU driver) decisions are independent of the offers’ contents or payloads. It does not necessarily use any logic and simply sends the offers and the accepted payloads. Payload delivery On an offer being accepted, the host proceeds to download the firmware image or referred as the payload. Delivery is done in three phases—beginning, middle, and end. The payload is a set of addresses and fixed-size arrays of bytes. Payload validation and authentication Validation of the incoming firmware update is an important aspect. The primary component should verify bytes after each write ensuring that the data is stored properly before proceeding with the next set of data bytes. A CRC or hash should also be calculated on download, to be verified after the download is complete, ensuring the data wasn’t modified in transit. In addition, a cryptographic signature mechanism is recommended to provide end-to-end protection. An encryption mechanism can also be employed for confidential downloads. On image authentication, the properties should be validated against the offer and other rules the device manufacturer may specify. CFU does not specify any rules to be applied. Payload Invocation The CFU Protocol is run at the application level in the primary component. The component can continue to do other tasks as long it can receive and store the incoming payload without significant disruptions. The only real disruption occurs when the new firmware must be invoked. There are two recommended ways to avoid that disruption. A very generic approach is to use a small bootloader image to select one of multiple images to run when the device is reset. This is typically at boot time. The image selection algorithm is specific to the implementation. It is typically based on an algorithm which involves code version, and an indication of successful image validation. Another invocation method is to physically swap the memory of the desired image with the active address space. This is done upon reset. A disadvantage of this method is that it requires specialized hardware. The advantage being all images are statically linked to the same address space eliminating the need for a bootloader. CFU limitations There are some limitations of the protocol. It cannot update a bricked component that can no longer run the protocol. CFU does not provide any security. The CFU protocol requires extra memory to store the incoming images which helps in non-disruptive updates. Updating sub-component images larger than the component’s available storage requires dividing the sub-component image into smaller packages The CFU protocol allows pausing the download, so care needs to be taken for proper validation. CFU assumes that the primary component has set validation rules. If they need to be changed, the component must first be successfully updated by using the old rules first, only then new rules can be applied. For more details, visit the Microsoft website. How the Titan M chip will improve Android security Microsoft fixing and testing the Windows 10 October update after file deletion bug Paul Allen, Microsoft co-founder, philanthropist, and developer dies of cancer at 65
Read more
  • 0
  • 0
  • 12075

article-image-exclusivity-enforcement-is-now-complete-in-swift-5
Prasad Ramesh
06 Feb 2019
2 min read
Save for later

Exclusivity enforcement is now complete in Swift 5

Prasad Ramesh
06 Feb 2019
2 min read
Yesterday Apple talked about exclusivity enforcement in Swift 5, in a post. No this is not some exclusive feature or patenting of some sort. This idea is on how variables in a Swift program access memory. Swift is the programming language used for developing Apple apps. What is exclusivity enforcement? The Swift 5 release allows runtime checks on “Exclusive Access to Memory”. This further adds to Swift showing that it is a ‘safe language’. For memory safety to take place, Swift needs exclusive access to a variable and modify it. This means that the variable can be accessed only with the same name when it is being modified as particular arguments. A programmer’s intention in case of exclusivity violations is often ambiguous in Swift. So, to protect against it and to allow the safety features, exclusivity enforcement was introduced in Swift 4. In Swift 4, both compile-time and run-time enforcement was available, the latter being available only in debug builds. Some of the holes in exclusivity enforcement are patched in Swift 5 by changing the language model. So runtime exclusivity enforcement is enabled by default in Release builds. This can impact Swift projects in two ways: Violation of Swift exclusivity rules causing a runtime trap Overhead due to memory access checks can degrade performance slightly Why exclusivity enforcement? This enforcement is done mainly to enforce memory safety in Swift. It eliminates dangerous interactions in Swift programs which involves mutable states Enforcement gets rid of unspecified behavior rules from Swift It is mandatory to maintain ABI stability In addition to protecting memory safety, this enforcement helps in optimizing performance The exclusivity rules give programmers the control to move only types Even though the memory problem is a rare occurrence, addressing it early on improves Swift a bit. A comment on Hacker news says: “The benefit being that you only have to deal with this issue rarely, rather than all the time with manual memory management.” Apple is patenting Swift features like optional chaining Swift 5 for Xcode 10.2 beta is here with stable ABI Swift is now available on Fedora 28
Read more
  • 0
  • 0
  • 12043

article-image-eclipse-announces-support-for-java-12
Amrata Joshi
12 Apr 2019
2 min read
Save for later

Eclipse announces support for Java 12

Amrata Joshi
12 Apr 2019
2 min read
Last month, the team at Eclipse announced that Eclipse now supports Java 12. What are the latest changes in support with Java 12 Updated project compliance and JRE Eclipse comes with project compliance and JRE updated to 12 that changes the current project to be compatible with Java 12. Preview features Users can enable preview features in Java 12 by selecting Preferences > Java > Compiler > Enable preview features option. Users can further configure the problem severity of these preview features. Set enable preview features The issue with the Enable preview features option in preferences has been resolved. Configure problem severity of preview features Configure problem severity is now provided to update the problem severity of preview features in Java 12. Default case has been added Add 'default' option is now available to add a default case to the enhanced switch statement in Java 12. Missing case statements An option to add missing case statements has been provided for the enhanced switch statement in Java 12. Java Editor In the Java > Editor > Code Mining preference, users can now enable the Show parameter names option which will show the parameter name in method or constructor calls. Java views and dialogs An option to control the comment generation while creating module-info.java or package-info.java is now available. To know more about this news, check out the post by Eclipse. Eclipse 4.10.0 released with major improvements to colors, fonts preference page and more Eclipse IDE’s Photon release will support Rust What can Blockchain developers learn from Eclipse Attacks in a Bitcoin network – Koshik Raj
Read more
  • 0
  • 0
  • 12030

article-image-kotlin-based-framework-ktor-1-0-released-with-features-like-sessions-metrics-call-logging-and-more
Amrata Joshi
21 Nov 2018
3 min read
Save for later

Kotlin based framework, Ktor 1.0, released with features like sessions, metrics, call logging and more

Amrata Joshi
21 Nov 2018
3 min read
In October, Kotlin’s framework Ktor 1.0 beta was released. It delivered high performance and an idiomatic API. Yesterday Ktor 1.0 was released as the first major version of the Kotlin-based framework. Ktor, a JetBrains project, builds asynchronous servers and clients in connected systems coroutines and also delivers good runtime performance. Ktor version 1.0 includes few essential features like sessions, authentication, JSON serialization, popular template engines, Web sockets, metrics, and many others. Ktor 1.0 feature highlights Ktor 1.0 has two main parts, namely, HTTP server framework and a multiplatform HTTP client. HTTP server framework The HTTP server framework built on Netty, Jetty and Java servlets runs on the JVM. Netty and Jetty, the lightweight engines make the processing faster as it helps in receiving connections within a second. It is container-friendly and can easily be embedded into desktop/Android applications. It could be run in an application server, for example,Tomcat. Multiplatform HTTP client Multiplatform HTTP client is asynchronous and is built using coroutines and IO primitives which are responsible for driving the server. It is implemented as a multiplatform library. The client is used for building asynchronous microservice architectures and for connecting all the backend functionalities into asynchronous pipelines. The multiplatform HTTP client makes it easy to retrieve data without blocking application execution on mobile devices and web pages uniformly. It supports JVM, JS, Android and iOS. Features Ktor’s built-in support for serving static content is useful for serving style sheets, scripts, images, etc. Ktor provides a mechanism for constructing URLs and reading the parameters to create routes in a typed way. Ktor’s Metrics feature helps in configuring the Metrics to get useful information about the server and the requests. It also has a mechanism called session useful for persisting data between different HTTP requests. Session also helps servers to keep a piece of information associated with the client during a sequence of HTTP requests and responses. Ktor’s Compression feature is used for compressing outgoing content using gzip, deflate or custom encoder. This helps in reducing the size of the response. Ktor provides Call Logging feature which is used for logging client requests. Ktor 1.0 introduced WebSockets mechanism to keep a bi-directional, real-time and ordered connection between the server and the client. Major improvements Ktor 1.0 comes with improved performance and documentation It uses Kotlin 1.3.10 Ktor 1.0 has fixed client response cancelation via receive<Unit>() and response.cancel() In Ktor 1.0 there are improvements to test client and mock engine The DevelopmentEngine has been renamed to EngineMain There is an improved serialization client feature Bug fixes Fixes to Cookies dates, domains, and dupicate parameters processing. Websocket session lifecycle has been fixed in Ktor 1.0 Timeouts in WebSockets have been fixed with jetty To know more about this news, check out the announcement on Jetbrains blog. Kotlin 1.3 released with stable coroutines, multiplatform projects and more How to avoid NullPointerExceptions in Kotlin [Video] Implementing Concurrency with Kotlin [Tutorial]
Read more
  • 0
  • 0
  • 12003
article-image-microsoft-joins-the-openchain-project-to-help-define-standards-for-open-source-software-compliance
Bhagyashree R
08 Feb 2019
2 min read
Save for later

Microsoft joins the OpenChain Project to help define standards for open source software compliance

Bhagyashree R
08 Feb 2019
2 min read
This Wednesday, OpenChain announced that Microsoft has joined them as a platinum member and a board member to help drive open source compliance. Microsoft is a new addition to the list of many huge companies joining the OpenChain project including Uber, Google, and Facebook. OpenChain General Manager, Shane Coughlan announcing the collaboration said in a blog post, “We’re thrilled that Microsoft has joined the project and welcome their expertise. Microsoft is a strong addition not only in terms of open source but also in standardization. Their membership provides great balance to our community of enterprise, cloud, automotive and silicon companies, allowing us to ensure the standard is suitable for any size company across any industry.” Why Microsoft joined OpenChain? While building new products and services, companies make use of existing open source software provided by their supply chains. Working on these large-scale projects makes it difficult for them to ensure that the license requirements are met in a timely and effective manner. To make open source compliance simpler and more consistent for companies, the OpenChain Project develops standards and training materials. As a part of the OpenChain community, Microsoft will now work more closely with it to create future standards that will help bring even greater trust to the open source ecosystem. It has helped the OpenChain community in developing its upcoming OpenChain Specification version. David Rudin, Assistant General Counsel at Microsoft, said, “Trust is key to open source, and compliance with open source licenses is an important part of building that trust. By joining the OpenChain Project, we look forward to working alongside the community to define compliance standards that help build confidence in the open source ecosystem and supply chain.” Not only with  OpenChain, but Microsoft is also working with the Linux Foundation’s TODO Group, which is an open group of companies who collaborate to create practices, tools, and other ways for running open source programs. It also joined the Open Invention Network (OIN) last year in October and made its entire patent portfolio available to OIN members. Read the full announcement on OpenChain's website. Microsoft Cloud services’ DNS outage results in deleting several Microsoft Azure database records Microsoft announces Internet Explorer 10 will reach end-of-life by January 2020 Microsoft Office 365 now available on the Mac App Store
Read more
  • 0
  • 0
  • 11999

article-image-github-services-were-down-for-4-hours-yesterday
Bhagyashree R
23 Jul 2019
4 min read
Save for later

GitHub services experienced a 41-minute disruption yesterday

Bhagyashree R
23 Jul 2019
4 min read
Update: Yesterday the GitHub team in a blog post stated what they have uncovered in their initial investigation, “On Monday at 3:46 pm UTC, several services on GitHub.com experienced a 41-minute disruption, and as a result, some services were degraded for a longer period. Our initial investigation suggests a logic error introduced into our deployment pipeline manifested during a subsequent and unrelated deployment of the GitHub.com website. This chain of events destabilized a number of internal systems, complicated our recovery efforts, and resulted in an interruption of service.” It was not a very productive Monday for many developers when GitHub started showing 500 and 422 error code on their repositories. This was because several services on GitHub were down yesterday from around 15:46 UTC for 41 minutes. Soon GitHub engineers began their investigation and all the services were back to normal by 19:47 UTC. https://twitter.com/githubstatus/status/1153391172167114752 The outage affected GitHub services including Git operations, API requests, Gist, among others. The experiences that developers reported were quite inconsistent. Some developers said that though they were able to open the main repo page, they could not see commit log or PRs. Others reported that all the git commands that required interaction with GitHub’s remotes failed. A developer commented on Hacker News, “Git is fine, and the outage does not affect you and your team if you already have the source tree anywhere. What it does affect is the ability to do code reviews, work with issues, maybe even do releases. All the non-DVCS stuff.” GitHub is yet to share the cause and impact of the downtime. However, developers took to different discussion forums to share what they think the reason behind GitHub outage could be. While some speculated that it might be its increasing user base, others believed it was because GitHub might be still moving “stuff to Azure after the acquisition.” Developers also discussed what steps they can take so that such outages do not affect their workflow in the future. One developer suggested not to rely on a single point of failure by setting two different URLs for the same remote so that a single push command will push to both. You can do something like this, a developer suggested: git remote set-url --add --push origin git@github.com:Foo/bar.git git remote set-url --add --push origin git@gitlab.com:Foo/bar.git Another developer suggested, “I highly recommend running at least a local, self-hosted git mirror at any tech company, just in these cases. Gitolite + cgit is extremely low maintenance, especially if you host them next to your other production services. Not to mention, if you get the self-hosted route you can use Gerrit, which is still miles better for code review than GitHub, Gitlab, bitbucket and co.” Others joked that this was a good opportunity to take a few hours of break and relax. “This is the perfect time to take a break. Kick back, have a coffee, contemplate your life choices. That commit can wait, that PR (i was about to merge) can wait too. It's not the end of the world,” a developer commented. Lately, we are seeing many cases of outages. Earlier this month, almost all of Apple’s iCloud services were down for some users. On July 2, Cloudflare suffered a major outage due to a massive spike in CPU utilization in the network. Last month, Google Calendar was down for nearly three hours around the world. In May, Facebook and its family of apps Whatsapp, Messenger, and Instagram faced another outage in a row. Last year, Github faced issues due to a failure in its data storage system which left the site broken for a complete day. Several developers took to Twitter to kill their time and vent out frustration: https://twitter.com/jameskbride/status/1153332862587944960 https://twitter.com/BobString/status/1153329356284055552 https://twitter.com/pikesley/status/1153332278774439941 https://twitter.com/francesc/status/1153336190390550528 Cloudflare RCA: Major outage was a lot more than “a regular expression went bad” EU’s satellite navigation system, Galileo, suffers major outage; nears 100 hours of downtime Twitter experienced major outage yesterday due to an internal configuration issue
Read more
  • 0
  • 0
  • 11998

article-image-qt-and-lg-electronics-partner-to-make-webos-as-the-platform-of-choice-for-embedded-smart-devices
Amrata Joshi
25 Jun 2019
3 min read
Save for later

Qt and LG Electronics partner to make webOS as the platform of choice for embedded smart devices

Amrata Joshi
25 Jun 2019
3 min read
The team at Qt and LG Electronics partner to provide webOS as the platform for embedded smart devices in the automotive, robotics and smart home sectors. The webOS, also known as LG webOS, is a Linux kernel-based multitasking operating system for smart devices. The webOS platform powers smart home devices including LG Smart TVs and smart home appliances, and can also deliver greater consumer benefits in high-growth industries such as the automotive sector. The system UI of LG webOS is written mostly using Qt Quick 2 and Qt technology. Last year in March, LG announced an open-source edition of webOS. I.P. Park, president and CTO of LG Electronics, said in a statement, “Smart devices have the potential to deliver an unmatched customer experience wherever we may be – in our homes, cars, and anywhere in between.” Park further added, “Our partnership with Qt enables us to dramatically enhance webOS, providing our customers with the most advanced platform for the creation of highly immersive devices and services. We look forward to continuing our long-standing collaboration with Qt to deliver memorable experiences in the exciting areas of automotive, smart homes and robotics.” LG selected Qt as its business and technical partner for webOS to meet the challenging requirements and also to navigate the market dynamics of the automotive, smart home and robotics industries. With this partnership, Qt will provide LG with end-to-end, integrated as well as a hardware-agnostic development environment for engineers, developers, and designers for creating innovative and immersive apps and devices. Also, officially, the webOS will become a reference operating system of Qt. This partnership will help the customers to leverage webOS’ set of middleware-enabled functionality that saves customer time and effort in their embedded development projects. Qt’s feature-rich development tools such as Qt Creator, Qt Design Studio and Qt 3D Studio will also support webOS. Juha Varelius, CEO of Qt, said to us, “LG has been a technology leader for generations, which is one of the many reasons they’ve become such a trusted partner of Qt.” Varelius further added, “With the company’s initiative to expand the reach of webOS into rapidly growing markets, LG is underscoring the massive potential of Qt-enabled connected experiences. By collaborating with LG on this initiative, we’re able to make it easy as possible for our customers to build devices that bring a new definition to the word ‘smart’.” Qt 5.13 releases with a fully-supported WebAssembly module, Chromium 73 support, and more Qt Creator 4.9.0 released with language support, QML support, profiling and much more Qt installation on different platforms [Tutorial]  
Read more
  • 0
  • 0
  • 11997
article-image-gimp-gets-100k-of-the-400k-donation-made-to-gnome
Prasad Ramesh
07 Sep 2018
2 min read
Save for later

GIMP gets $100K of the $400K donation made to GNOME

Prasad Ramesh
07 Sep 2018
2 min read
Many of you may remember GIMP from school if you weren’t using MS Paint instead. The open-source cross-platform image editor is free to use and to modify the source code. GIMP is associated with the non-profit GNOME, a Linux desktop environment. The $100K donation given to them is a part of the $400K donation made to GNOME by Handshake.org in early August. Now 25 percent of this donation will go to GIMP. After the release of GIMP 2.10.6, hopefully, this donation helps them to accomplish their next GTK3-ported GIMP 3.0 release. In May this year, an anonymous donor pledged $1M to the GNOME foundation over the course of next two years. This donation enabled them to put up job listings for four additional roles of Development Coordinator, Program Coordinator, DevOps/Sysadmin, and GTK+ core developer. Their website states “We thank both Handshake.org and GNOME Foundation for the generous donation and will use the money to do much overdue hardware upgrade for the core team members and organize the next hackfest to bring the team together, as well as sponsor the next instance of Libre Graphics Meeting.” Handshake.org was launched on August 2 this year. It is a decentralized certificate authority and peer-to-peer DNS service. Handshake.org is donating about $10 million to non-profits and free/open-source projects. Handshake’s purpose is not to replace the DNS protocol. But it aims at replacing the root zone file and root servers with a public commons. Their website states: “Handshake’s original incubators, Purse.io and Private Internet Access, provided enough support to build and launch the platform without additional funding. In the spirit of free software and radical gifting we’ve taken the validation value from this project and shared it with the world.” The details are posted on the official GIMP website. A Tour Around GIMP GNOME 3.30 released with improved Desktop performance, Screen Sharing, and more Creating a quick logo for a company with GIMP 2.6
Read more
  • 0
  • 0
  • 11929

article-image-gitlab-considers-moving-to-a-single-rails-codebase-by-combining-the-two-existing-repositories
Amrata Joshi
22 Feb 2019
4 min read
Save for later

GitLab considers moving to a single Rails codebase by combining the two existing repositories

Amrata Joshi
22 Feb 2019
4 min read
The team at GitLab is now considering to move towards a single Rails repository by combining the two existing repositories. Although the GitLab Community Edition code would remain open source and MIT licensed and also the GitLab Enterprise Edition code would remain source available and proprietary. The challenges with having two repositories? The Ruby on Rails code of GitLab is currently maintained in two repositories. The gitlab-ce repository for the code with an open source license and the gitlab-ee repository for code with a proprietary license which is source available. Having two similar but separate repositories, can make feature development difficult and error-prone while making any change in GitLab. To demonstrate the problem, the team at GitLab has given a few examples: Duplicated work during feature development The frontend only Merge Request needed a backport to CE repository. Backporting requires creating duplicate work in order to avoid future conflicts and changes to the code to support the feature. A simple change can break master A minor change in CE repository failed the pipeline in the master branch. Conflicts during preparation for regular releases There might be conflicts during preparation for a regular release, e.g. 11.7.5 release. Merge requests for both the CE repository and EE repository need to be created. And when the pipelines pass, the EE repository would require a merge from the CE repository. This would cause additional conflicts, pipeline failures, and similar delays during which the CE distribution release also would get delayed. Steps taken by GitLab team to improve the situation Before 2016, merging the CE repository into the EE repository was done when the team was ready to cut a release and the number of commits was small so it could be done by one person. As the number of commits between the two repositories grew in 2016, so the task got divided between seven developers who were responsible for merging the code once a day. This worked fine for some time until delays started happening due to failed specs or difficult merge conflicts. The team then merged an MR that allowed the creation of automated MRs between the two repositories by the end of 2017. This task ran every three hours, which allowed for a smaller number of commits to be worked on. The number of changes going into CE and EE repositories grew to thousands of commits in some cases by the end of 2018. This made the automated MR insufficient. The Merge Train tool was then created to automate these workflows further and which automatically rejected merge conflicts and preferred changes from one repository over the other. What is the GitLab team proposing? The gitlab-ce distribution package consists of gitlab-ce repository which offers only the Core feature set.  The gitlab-ee distribution package consists of gitlab-ee repository. The change which the team is considering proposing would be to merge the gitlab-ce and gitlab-ee repositories into a single gitlab repository. The design for merging two codebases requires the work and process changes in detail. Though the proposed change would pertain only to the Ruby on Rails repository. Expected changes The gitlab-ce and gitlab-ee repositories may be replaced with a gitlab repository, with all open issues and merge requests moved into the single repository. All frontend assets such as JavaScript, CSS, images, views will be open sourced under the MIT license. The proprietary backend code will be located in the /ee repository. All the documentation that will be merged together will now clearly state which features belong to which feature set. The downsides The GitLab team was clear about the possible downsides of this approach: Users with installations from the source are currently cloning the gitlab-ce repository. The clone will also fetch the proprietary code in /ee directory. The database migration code is open source and does not require additional maintenance so there is no additional work required. The team is now exploring better ways to solve the problem of busy work and plans to bring improvements to the current proposal. To know more about this news, check out the post by GitLab. Introducing GitLab Serverless to deploy cloud-agnostic serverless functions and applications GitLab 11.7 releases with multi-level child epics, API integration with Kubernetes, search filter box and more Why moving from a monolithic architecture to microservices is so hard, Gitlab’s Jason Plum breaks it down [KubeCon+CNC Talk]
Read more
  • 0
  • 0
  • 11921
Modal Close icon
Modal Close icon