Language Selection

English French German Italian Portuguese Spanish


Git v2.17.0 released

Filed under

The latest feature release Git v2.17.0 is now available at the
usual places. It is comprised of 516 non-merge commits since
v2.16.0, contributed by 71 people, 20 of which are new faces.

Read more

Cutelyst 2.1 Released

Filed under

Cutelyst a Qt/C++ Web Framework got upped to 2.1. Yesterday I found a bug that although not critical it’s important enough to roll out a new release.

As a new feature we have LangSelect plugin to help with auto detection of user language (Matthias).

Read more

Also: New in Qt 5.11: quick text selection in QLineEdit

What Attracts Devs To Open Source

Filed under

In an era in which we are becoming more an more reliant on open source software, it is important to know how to recruit and retain core developers - the ones that are key to a project's survival, sustainability and success. An attempt to do this comes from Brazil to be presented in Sweden.

Jailton Coelho, Marco Tulio Valente, Luciana L. Silva, Andre Hora wanted to understand what motivates developers to assume a key role in Free/Libre Open source Software (FLOSS) projects. Their paper reporting the results of a survey of 52 developers who were core contributors of GitHub projects has been accepted for CHASE 2018: 11th International Workshop on Cooperative and Human Aspects of Software Engineering which is part of the 40th International Conference on Software Engineering taking place May 27 - 3 June 2018 in Gothenburg, Sweden.

Read more

Red Hat on programming today:

5 Best Open Source Frameworks For Developers and Programmers

Filed under

A framework provides you the best solution for developing well structured, maintainable and up-gradable software. It saves a lot of time by re-using generic modules and libraries in order to focus on the other areas. Applications developed using a framework are inter-operable with market standards.

But, there’s always been a confusion for many beginners to select a right framework. There are many frameworks for developing a same type of application. Without proper knowledge and research, you may end up learning a framework which is no longer useful or required for modern applications. That is the main reason behind this article. Here, I’m going to mention 5 best open source frameworks for developing modern applications.

Read more

Programming: Rust, Python and Copyright/Patents on Java APIs

Filed under
  • Announcing Rust 1.25

    The Rust team is happy to announce a new version of Rust, 1.25.0. Rust is a systems programming language focused on safety, speed, and concurrency.

  • Rust 1.25 Released, Upgrades To LLVM 6.0

    Version 1.25.0 of the Rust programming language implementation is now available. Rust 1.25 comes in as being a bit more significant than some of the recent updates.

  • Python ChatOps libraries: Opsdroid and Errbot

    ChatOps is conversation-driven development. The idea is you can write code that is executed in response to something typed in a chat window. As a developer, you could use ChatOps to merge pull requests from Slack, automatically assign a support ticket to someone from a received Facebook message, or check the status of a deployment through IRC.

    In the Python world, the most widely used ChatOps libraries are Opsdroid and Errbot. In this month's Python column, let's chat about what it's like to use them, what each does well, and how to get started with them.

  • Oracle's win over Google in Android copyright case can see sea change in global software industry

    Google could owe Oracle billions of dollars for using the latter's open-source Java programming code while developing its Android mobile platform, a U.S. appeals court said Tuesday, in a ruling that can significantly impact the software industry worldwide.

    The ruling is the latest development in an eight-year copyright feud between the two software giants.

  • Google faces $9 billion in damages after ripping off Java in Android

    A lawsuit seeking damages from Google over its willful appropriation of Java as the basis of its Android operating system has been slowly grinding through the courts for most of the last decade. It has finally concluded that Google's taking of Java "was not fair" use, opening up Google to billions in damages.

  • A Google vs Oracle copyright ruling could well kill small scale open source projects

    A US JUDGE who clearly didn't understand the full repercussions of what they were doing, has ruled that Google's use of Java APIs in the original Android code did not constitute fair use, and that reparations are due.

    Some analysts believe that Google could be $8bn to $9bn poorer as a result of the ruling, the latest chapter in a long-running dispute.

    The story runs thus: Google used the Java code, formally owned by Sun Microsystems to create large swaths of the Android code.

    That's fine because the code is open-source. However, the Java APIs, now owned by Oracle, are not, and Oracle has long since argued that it deserves a piece of the billions made by Google through the Android platform.

  • Oracle’s victory over Google in Java copyright case may rewrite the rules of software

    Oracle Corp.’s latest victory in its eight-year-old copyright infringement lawsuit against Google Inc. could fundamentally rewrite the rules of software development if today’s ruling withstands a possible appeal by the search giant.

    The U.S. Court of Appeals for the Federal Circuit earlier today said Google’s use of portions of Oracle’s Java development platform to create the Android operating system isn’t protected by the fair-use provision of copyright law. The ruling reverses a 2016 jury verdict that had found that Google’s actions were covered under the fair use provisions of the copyright code, which permit unlicensed use of copyrighted material in certain situations.

  • Oracle Wins Court Ruling Against Google in Multibillion-Dollar Copyright Case
  • The Federal Circuit's Judicial Hypocrisy In Overturning Jury Concerning Java API Fair Use Question

    Yesterday we went through the details of the truly awful appeals court decision by the Court of Appeals for the Federal Circuit (CAFC) concerning whether or not Google copying a few pieces of the Java API for Android was fair use. As we mentioned, there were a whole bunch of oddities both in the procedural history of the case, but especially in the CAFC's decision here that has left a ton of legal experts scratching their heads. What becomes quite clear is that the CAFC panel decided long ago that Google infringed, and it's not going to let the law or even consistency get in its way. As you'll recall, the same three panel set of judges (Judges Kathleen O'Malley, Jay Plager, and Richard Taranto) made a terrible, nonsensical, technically ignorant ruling four years ago, saying that APIs are covered by copyright and then sent the case back to the lower court to hold a new trial on fair use.

    As we noted in yesterday's post, what's really incredible is that part of the reasoning in the CAFC opinion from four years ago is "this is an issue that a jury should hear to determine if it's fair use." And the ruling yesterday said "no reasonable jury could possibly find fair use" (after the jury here did find fair use). Which raises the question of why the fuck did the CAFC send the case back in the first place? To waste everyone's time? To pad the wages of the very very expensive lawyers employed by Oracle and Google? To waste Judge Alsup's time?

  • Oracle v. Google Again: The Unicorn of a Fair Use Jury Reversal

    It's been about two years, so I guess it was about time to write about Oracle v. Google. The trigger this time: in a blockbuster opinion (and I never use that term), the Federal Circuit has overturned a jury verdict finding that Google's use of 37 API headers was fair use and instead said that said reuse could not be fair use as a matter of law. I won't describe the ruling in full detail - Jason Rantanen does a good job of it at Patently-O.

    Instead, I'll discuss my thoughts on the opinion and some ramifications. Let's start with this one: people who know me (and who read this blog) know that my knee jerk reaction is usually that the opinion is not nearly as far-reaching and worrisome as they think. So, it may surprise a few people when I say that this opinion may well be as worrisome and far-reaching as they think.

    And I say that without commenting on the merits; right or wrong, this opinion will have real repercussions. The upshot is: no more compatible compiler/interpreters/APIs. If you create an API language, then nobody else can make a competing one, because to do so would necessarily entail copying the same structure of the input commands and parameters in your specification. If you make a language, you own the language. That's what Oracle argued for, and it won. No Quattro Pro interpreting old Lotus 1-2-3 macros, no competitive C compilers, no debugger emulators for operating systems, and potentially no competitive audio/visual playback software. This is, in short, a big deal.

  • Federal Circuit sends Oracle v. Google back for third trial

    The Federal Circuit has ruled for a second time in Oracle v. Google, the software copyright lawsuit over Google’s Android platform. The new decision reverses the district court yet again and sends the case back for a third trial to determine damages for Oracle. In the last trial, Oracle sought almost $9 billion in damages.

    The litigation has been dragging on for about eight years now, bouncing up and down through appeals and two whole jury trials. [...]

  • “Google’s use of the Java API packages was not fair,” appeals court rules

    On Tuesday, the US Court of Appeals for the Federal Circuit ruled in favor of Oracle, finding that Google may owe billions in damages. Nearly 7.5 years after the original lawsuit was filed, the case will now be sent back down to federal court in San Francisco to figure out how much Google should pay.

    "Google’s use of the Java API packages was not fair," the court ruled Tuesday.

  • Federal Circuit revives Oracle v Google

    The Federal Circuit has overturned the jury verdict of fair use in Oracle v Google and remanded the case to a federal judge in the Ninth Circuit for a third trial to determine damages

  • Java-aaaargh! Google faces $9bn copyright bill after Oracle scores 'fair use' court appeal win

    The US Court of Appeals for the Federal Circuit in Washington DC has revived Oracle's bid to bill Google for billions over its use of copyrighted Java APIs in its Android mobile operating system.

    On Tuesday, the appeals court reversed a 2016 jury finding of fair use that deemed Google's actions acceptable, and sent the case back to federal court in California to determine damages, which Oracle in 2016 said should amount to about $8.8bn.

    Figures cited in the court ruling suggest Google has generated $42bn in advertising from Android, which is made available to consumers for free, with contractual requirements for handset makers.

Programming Leftovers

Filed under
  • Getting started with Jupyter Notebooks

    Since the days of papyrus, publishers have struggled with formatting data in ways that engage readers. This is a particular issue in the areas of mathematics, science, and programming, where well-designed charts, illustrations, and equations can be key to helping people understand technical information.

    The Jupyter Notebook is addressing this problem by reimagining how we produce instructional texts. Jupyter (which I first learned about at All Things Open in October 2017) is an open source application that enables users to create interactive, shareable notebooks that contain live code, equations, visualizations, and text.

    Jupyter evolved from the IPython Project, which features an interactive shell and a browser-based notebook with support for code, text, and mathematical expressions. Jupyter offers support for over 40 programming languages, including Python, R, and Julia, and its code can be exported to HTML, LaTeX, PDF, images, and videos or as IPython notebooks to be shared with other users.

  • Trip Report: C++ Standards Meeting in Jacksonville, March 2018
  • Don't make me code in your text box!

    Whenever I start a new data project, my first step is rooting out any false assumptions I have about the data.

    The key here is iterating quickly. My workflow looks like this: Code a little, plot the data, what do you see? Ah, outliers. Code a little, plot the data, what do you see? Shoot, why are there so many NULL's in the dataset?

    This is a critical part of working with data so we have a ton of tools tuned for fast iteration loops. These are the tools in the "Building Intuition" stage of experimental analysis. Jupyter notebooks are a perfect example. Great way to explore a dataset quickly.

    Once I'm done exploring, I need to distill what I've learned so I can share it and reference it later. This is where I run into problems. Often, these fast-iteration tools are really hard to escape, and are a horrible way to store code. As a result, these tools end up getting used for things they're not built to do. It's hard to spot if you're not looking out for it.

  • This Week In Rust: This Week in Rust 227

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

Billions at stake as Oracle beats Google in latest Android Java API legal dustup

Filed under

Like it or not -- and most developers hate it -- the US Federal Circuit Court of Appeals ruled in 2014 that APIs could be copyrighted. Because of that decision, the legal battle between Google and Oracle over whether Google had the right to use Java APIs in Android without compensation has dragged on for years. In the last go-around, Google won again because a jury found that Google's use of Java APIs was allowed because it constituted "fair use". Done? Over? Not so fast. Now the US Court of Appeals for the Federal Circuit ruled Google's Java API work wasn't fair use.

Read more

Programming: Python 2.*, Functional Computation, and Plagiarism in CS

Filed under
  • 1.5 Year Warning: Python2 will be End of Lifed

    The end of upstream Python 2.7 support will be January 1, 2020 (2020-01-01) and the Fedora Project is working out what to do with it. As Fedora 29 would be released in 2019-11 and would get 1.5 years of support, the last release which would be considered supportable would be the upcoming release of Fedora 28. This is why the current Python maintainers are looking to orphan python2. They have made a list of the packages that would be affected by this and have started a discussion on the Fedora development lists, but people who only see notes of this from blogs or LWN posts may not have seen it yet.

  • Why is functional programming seen as the opposite of OOP rather than an addition to it?

    So: both OOP and functional computation can be completely compatible (and should be!). There is no reason to munge state in objects, and there is no reason to invent “monads” in FP. We just have to realize that “computers are simulators” and figure out what to simulate.

  • Why we still can’t stop plagiarism in undergraduate computer science

    The most important goal is to keep the course fair for students who do honest work. Instructors must assign grades that accurately reflect performance. A student who grapples with a problem — becoming a stronger programmer in the process — should never receive a lower grade than one who copies and pastes.


    University administrators should communicate their support. Instructors should know that, not only will they suffer no retaliation, but that the university encourages them to enforce university policies. This might require administrators to acknowledge the inconvenient truth of widespread plagiarism.

Programming languages can be hard to grasp for non-English speakers. Step forward, Bato: A Ruby port for Filipinos

Filed under

A Filipino developer is hoping his handmade Ruby port will help bring coding skills to some of the Philippines's poorest communities.

Joel Bryan Juliano says he built Bato as a way for speakers of Tagalog – the most widely-spoken language in the nation – to be able to learn the basics of programming without also having to be fluent in English. Today's coding languages tend to be built around English grammar, which is a problem for people without a grasp on English.

A software engineer with Altus Digital Capital by day, Juliano told The Register he developed Bato as an educational tool for skilling up family members, and quickly saw how it could be used to show the basics of programming without language barriers.

Read more

Programming/Development: JupyterLab, Python Enhancement Proposal (PEP), Rust, Python 3.7 in Fedora

Filed under
  • JupyterLab: ready for users

    In the recent article about Jupyter and its notebooks, we mentioned that a new interface, called JupyterLab, existed in what its developers described as an "early preview" stage. About two weeks after that article appeared, Project Jupyter made a significant announcement: JupyterLab is "ready for users". Users will find a more integrated environment for scientific computation that is also more easily extended. JupyterLab takes the Jupyter Notebook to a level of functionality that will propel it well into the next decade—and beyond.

    While JupyterLab is still in beta, it is stable and functional enough to be used in daily work, and steadily approaching a 1.0 release. From the point of view of developers working on extensions or other projects that use the JupyterLab API, however, the beta status serves as a caution that its developer interfaces are still in flux; they should plan for the possibility of breaking changes.

    JupyterLab arose in 2015 from the desire to incorporate the "classic" (as it is known now) Jupyter Notebook into something more like an integrated development environment running in the browser. In addition, the user was to have the ability to extend the environment by creating new components that could interact with each other and with the existing ones. The 2011 web technology that the Jupyter Notebook was built upon was not quite up to this task. Although existing JavaScript libraries, such as React, suggested a way forward, none of them had the power and flexibility, particularly in the area of interprocess communication, that was required. The JupyterLab team addressed this problem by developing a new JavaScript framework called PhosphorJS. JupyterLab and PhosphorJS are co-developed, with capabilities added to the JavaScript framework as they are needed for JupyterLab.


    The Jupyter Notebook has already won over many scientists and educators because of the ease with which it allows one to explore, experiment, and share. JupyterLab makes the Notebook part of a more complete, powerful, and extensible environment for pursuing computational science and disseminating the results, leaving little doubt that this free-software project will win over an even larger portion of the scientific community. I've tried to give some idea of the power and convenience of the JupyterLab interface, but to really appreciate this technology, you need to try it out yourself. Fortunately, this is easy to do, as it's simple to install and intuitive enough to get started without reading documentation—and it happens to be a great deal of fun.

  • Variable-length arrays and the max() mess

    Variable-length arrays (VLAs) have a non-constant size that is determined (and which can vary) at run time; they are supported by the ISO C99 standard. Use of VLAs in the kernel has long been discouraged but not prohibited, so there are naturally numerous VLA instances to be found. A recent push to remove VLAs from the kernel entirely has gained momentum, but it ran into an interesting snag on the way.

  • Discussing PEP 572

    As is often the case, the python-ideas mailing list hosted a discussion about a Python Enhancement Proposal (PEP) recently. In some sense, this particular PEP was created to try to gather together the pros and cons of a feature idea that regularly crops up: statement-local bindings for variable names. But the discussion of the PEP went in enough different directions that it led to calls for an entirely different type of medium in which to have those kinds of discussions.

  • This Week in Rust 226

    Always wanted to contribute to open-source projects but didn't know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!

  • Python 3.7 now available in Fedora

    On February 28th 2018, the second beta of Python 3.7 was released. This new version contains lots of fixes and, notably, several new features available for everyone to test. The pre-release of Python 3.7 is available not only in Fedora Rawhide but also all other Fedora versions. Read more about it below.

Syndicate content

More in Tux Machines

Android Leftovers

SparkyLinux 5.4 GameOver, Multimedia, and Rescue Special Editions Are Out Now

Released last week on June 11, 2018, the SparkyLinux 5.4 "Nibiru" rolling release operating system was available only as LXQt, MinimalGUI, and MinimalCLI editions. Today, the project launches three more editions, namely GameOver, Multimedia, and Rescue. "New live/install ISO images of special editions of SparkyLinux 5.4 "Nibiru": GameOver, Multimedia & Rescue are out. Sparky 5 follows the rolling release model and is based on Debian testing branch "Buster"," reads today's announcement. Read more

KDE Plasma 5.13 Desktop Environment Gets First Point Release, over 20 Bugs Fixed

The KDE Plasma 5.13 desktop environment launched a week ago as the best release of the acclaimed desktop designed for GNU/Linux distributions, introducing new lock and login screens, redesigned system settings, Plasma Browser Integration, Plasma Discover enhancements, and many other improvements and changes. Now, users can update their KDE Plasma 5.13 installations to the first point release, KDE Plasma 5.13.1, which brings more than 20 bug fixes across various components, such as Plasma Discover, Plasma Add-ons, Plasma Desktop, Plasma Networkmanager (plasma-nm), KWin, and KDE Hotkeys. Read more

Qt 5.11.1 Released

I am pleased to announce that Qt 5.11.1 is released today. As a patch release Qt 5.11.1 does not add any new functionality, but provides important bug fixes and other improvements. New Qt 5.11.1 is first patch release for Qt 5.11 series. There are fixes for over 150 bugs and it contains more than 700 changes compared to Qt 5.11.0. For details of the most important changes, please check the Change files of Qt 5.11.1. And don’t worry if some fix is missing from new Qt5.11.1 release; we are planning to release Qt 5.11.2 at the beginning of September. Read more Also: Qt 5.11.1 Released With 150+ Bug Fixes