Language Selection

English French German Italian Portuguese Spanish

Development

Programming: littler, Kubeflow and More

Filed under
Development
  • Dirk Eddelbuettel: littler 0.3.6: Two neat enhancements

    The seventh release of littler as a CRAN package is now available, following in the now more than twelve-year history as a package started by Jeff in 2006, and joined by me a few weeks later.

    littler is the first command-line interface for R and predates Rscript. And it is (in my very biased eyes) better as it allows for piping as well shebang scripting via #!, uses command-line arguments more consistently and still starts faster. It also always loaded the methods package which Rscript converted to rather recently.

    littler lives on Linux and Unix, has its difficulties on macOS due to yet-another-braindeadedness there (who ever thought case-insensitive filesystems as a default where a good idea?) and simply does not exist on Windows (yet – the build system could be extended – see RInside for an existence proof, and volunteers are welcome!).

  • Kubeflow to the rescue: ML toolkit offers hope for data science and deep learning

    Data scientists in the machine learning community have a growing skills gap, and it will take some serious technology to fix it.

    Google Cloud executive Rajen Sheth recently voiced his agreement with estimates that the number of machine learning engineers capable of moving deep learning from concept to production equals a few thousand. But there are millions of data scientists and significantly more developers. How can the gap be closed?

    The answer may be found in large part to the current activity taking place among major cloud players and key figures in the open-source community focused on a relatively new, yet vitally important project — Kubeflow.

  • Create a thread for the video editing application

    Hello and welcome back to this final part of the video editing project. After this chapter, you will be good enough to continue to develop this application by yourself and hopefully, you can come out with a better idea of how to further develop this video editing application.

    In this chapter I have created a thread for this video editing application which will separate the application into two part, the user interface part and the thread part. The user interface part will take care of the user’s click event and the user’s input and the threaded part will process the user input.

  • Idera acquires Travis CI
  • GitHub: The top 10 programming languages for machine learning [Ed: Stop judging FOSS as a whole based on a Microsoft repo with spying (NSA PRISM). FOSS is far bigger than this proprietary network.]
  • Macintosh API Comes To Linux, Android
  • Weekly Python StackOverflow Report: (clxii) stackoverflow python report

Attack on git signature verification via crafting multiple signatures

Filed under
Development
Gentoo
Security

This article shortly explains the historical git weakness regarding handling commits with multiple OpenPGP signatures in git older than v2.20. The method of creating such commits is presented, and the results of using them are described and analyzed.

Read more

Programming: Crytek, Node.js, JBoss, Travis CI and Python

Filed under
Development

Programming and howtos

Filed under
Development

Introductory Go Programming Tutorial

Filed under
Development

You've probably heard of Go. Like any new programming language, it took a while to mature and stabilize to the point where it became useful for production applications. Nowadays, Go is a well established language that is used in web development, writing DevOps tools, network programming and databases. It was used to write Docker, Kubernetes, Terraform and Ethereum. Go is accelerating in popularity, with adoption increasing by 76% in 2017, and there now are Go user groups and Go conferences. Whether you want to add to your professional skills or are just interested in learning a new programming language, you should check it out.

Read more

Programming: LLVM 8.0, WWW, Software Dependency Problem, C++ and Python

Filed under
Development
  • [llvm-dev] [8.0.0 Release] rc1 has been tagged

    8.0.0-rc1 was just tagged (from the branch at r351980).

    It took a little longer than planned, but it's looking good.

    Please run the test script, share your results, and upload binaries.

  • LLVM 8.0-RC1 Tagged Ahead Of Release Next Month

    While LLVM 8.0 embarked on its feature freeze and subsequent code branching last week, tagged today the first release candidate was tagged for this upcoming compiler stack release.

    Release manager Hans Wennborg announced, "It took a little longer than planned, but it's looking good." RC1 binaries are not yet available but the sources are out for testing.

  • Daniel Stenberg: HTTP/3 talk on video

    Yesterday, I had attracted audience enough to fill up the largest presentation room GOTO 10 has, which means about one hundred interested souls.

    The subject of the day was HTTP/3. The event was filmed with a mevo camera and I captured the presentation directly from my laptop as well, and I then stitched together the two sources into this final version late last night. As you’ll notice, the sound isn’t awesome and the rest of the “production” isn’t exactly top notch either, but hey, I don’t think it matters too much.

  • WebExtensions v3 considered harmful

    The Open Web Platform is a careful and fragile construction billions of people, including millions of implementors rely on. HTML, CSS, JavaScript, the Document Object Model, the Web API and more are all standardized one way or another; that means vendors and stakeholders gather around a table to discuss all changes and that these changes must pass quality and/or availability criteria to be considered "shippable".

    One notable absent from the list of Web Standards is WebExtensions. WebExtensions are the generalized name of Google Chrome Extensions that became mainstream when Google achieved dominance over the desktop browser market and when Mozilla abandoned its own, and much more powerful, addons system based on XUL and privileged scripts.

  • Our Software Dependency Problem

    For decades, discussion of software reuse was far more common than actual software reuse. Today, the situation is reversed: developers reuse software written by others every day, in the form of software dependencies, and the situation goes mostly unexamined.

    My own background includes a decade of working with Google’s internal source code system, which treats software dependencies as a first-class concept, and also developing support for dependencies in the Go programming language.

    Software dependencies carry with them serious risks that are too often overlooked. The shift to easy, fine-grained software reuse has happened so quickly that we do not yet understand the best practices for choosing and using dependencies effectively, or even for deciding when they are appropriate and when not. My purpose in writing this article is to raise awareness of the risks and encourage more investigation of solutions.

  • C++17 projections even without ranges

    There’s a nice post by Ryou about the projections feature of Eric Niebler’s ranges that we’re going to get in C++20.

    I’ll try to provide a more general look at what projections are – not only in the context of ranges. I recommend reading Ryou’s post before or after this one for completeness.

  • AI introduction in healthcare
  • Five Habits for Fast Learning
  • RPM and Debian Repositories for Miniconda
  • Everything is terrible (but more so inside a keypress event handler)
  • Episode #196: Datalore: Hosted smart notebooks

Programming: Red Hat JBoss Enterprise Application Platform (EAP), Coding on a Chromebook, HPC and What’s New In Python 3.7.2

Filed under
Development
  • Announcing the general availability of Red Hat JBoss Enterprise Application Platform 7.2

    Today we are announcing the general availability of Red Hat JBoss Enterprise Appplication Platform (EAP) 7.2, which brings greater compliance with Java Enterprise Edition (EE) 8, JDK 11/Java SE 11, and further support for Microsoft Windows and enterprise Java microservices. With this release, Red Hat is continuing our commitment to Java EE 8 and Jakarta EE, the new home for cloud-native Java, a community-driven specification under the Eclipse Foundation.

    JBoss EAP is an open source Java EE 8-compliant application server and is used by organizations around the world to deploy and manage business-critical enterprise Java applications, whether in bare metal, virtualized, containerized, on-premises, private, public or hybrid cloud environments. JBoss EAP 7.2 is Java EE 8 certified, which means new functionality as well as updates to a variety of existing capabilities.

  • Coding on a Chromebook: I’m all in with Crostini and the Pixel Slate

    One of the most read posts on About Chromebooks is from last April when I detailed how I was coding with my Pixelbook. Technically, I wasn’t coding on the Pixelbook, because my solution was to remotely access a Raspberry Pi that had Python installed on my local network. Thanks to the addition of Linux containers through Project Crostini in Chrome OS, I don’t have to rely on — or be limited to — another computing device for my coding.

  • Reflections on HPC Past, Present, and Future

    What you need are the tools to enable you to use these systems effectively. This comes down to engineering your network, your storage, and so forth, to meet your criteria. Part of this work is to iterate quickly, which does imply common toolsets across environments. And it generally suggests local resources for development, that at least mirror some aspects of the large remote systems. Again, to minimize friction.

    Watching the toolchains grow up has been fairly uplifting. You can write your own CUDA code to handle GPU work. Or, in ML, you can leverage higher level toolkits such as TensorFlow, MXnet, PyTorch, etc. For a number of reasons, ML folks seem to have converged around Python as their lingua franca, though given its many issues (GIL, format as structure, etc.), the door is open to other systems.

    One of my favorite is Julia language. It has a wonderful interface to GPUs via the JuliaGPU project. Unlike Python, it doesn’t have a GIL, as it is compiled and built for parallelism, nor does it have structure by indentation. It has a native GPU compiler built in to its LLVM stack, meaning that it can optimize not merely for the CPUs, but also for the GPUs. It is rapidly maturing, so there are a few rough spots, but I expect tools like this to become more standard for HPC applications.

  • What’s New In Python 3.7.2: Look At 7 Features That You Should Know

    There’s a lot of new material in Python Latest version and much of it is pretty simple. For example, str, bytes and bytearray now have an isascii() function that returns ‘true’ if they only include ASCII characters.

    In this article, we list down 7 essential features of the latest version which Python aspirants must get updated with.

Programming: Qt, Git, Django, Rust and Python

Filed under
Development

Programming: Node.js, Micro:bit, L4Re, Python, Go and More

Filed under
Development
  • 14 Best NodeJS Frameworks for Developers in 2019

    Node.js is used to build fast, highly scalable network applications based on an event-driven non-blocking input/output model, single-threaded asynchronous programming.

    A web application framework is a combination of libraries, helpers, and tools that provide a way to effortlessly build and run web applications. A web framework lays out a foundation for building a web site/app.

    The most important aspects of a web framework are – its architecture and features (such as support for customization, flexibility, extensibility, security, compatibility with other libraries, etc..).

  • Debian now got everything you need to program Micro:bit

    I am amazed and very pleased to discover that since a few days ago, everything you need to program the BBC micro:bit is available from the Debian archive. All this is thanks to the hard work of Nick Morrott and the Debian python packaging team. The micro:bit project recommend the mu-editor to program the microcomputer, as this editor will take care of all the machinery required to injekt/flash micropython alongside the program into the micro:bit, as long as the pieces are available.

    There are three main pieces involved. The first to enter Debian was python-uflash, which was accepted into the archive 2019-01-12. The next one was mu-editor, which showed up 2019-01-13. The final and hardest part to to into the archive was firmware-microbit-micropython, which needed to get its build system and dependencies into Debian before it was accepted 2019-01-20. The last one is already in Debian Unstable and should enter Debian Testing / Buster in three days. This all allow any user of the micro:bit to get going by simply running 'apt install mu-editor' when using Testing or Unstable, and once Buster is released as stable, all the users of Debian stable will be catered for.

  • Some Ideas for 2019

    Well, after my last article moaning about having wishes and goals while ignoring the preconditions for, and contributing factors in, the realisation of such wishes and goals, I thought I might as well be constructive and post some ideas I could imagine working on this year. It would be a bonus to get paid to work on such things, but I don’t hold out too much hope in that regard.
    In a way, this is to make up for not writing an article summarising what I managed to look at in 2018. But then again, it can be a bit wearing to have to read through people’s catalogues of work even if I do try and make my own more approachable and not just list tons of work items, which is what one tends to see on a monthly basis in other channels.
    In any case, 2018 saw a fair amount of personal focus on the L4Re ecosystem, as one can tell from looking at my article history. Having dabbled with L4Re and Fiasco.OC a bit in 2017 with the MIPS Creator CI20, I finally confronted certain aspects of the software and got it working on various devices, which had been something of an ambition for at least a couple of years. I also got back into looking at PIC32 hardware and software experiments, tidying up and building on earlier work, and I keep nudging along my Python-like language and toolchain, Lichen.
    Anyway, here are a few ideas I have been having for supporting a general strategy of building flexible, sustainable and secure computing environments that respect the end-user. Such respect not being limited to software freedom, but also extending to things like privacy, affordability and longevity that are often disregarded in the narrow focus on only one set of end-user rights.

  • 5 Best Python IDEs You Can Get in 2019

    If you’re taking Python lessons online, you will eventually need a good IDE (Integrated Development Environment) to write better code. The command line interface can only prove so useful. At Python.com you can download a native IDE called IDLE (Integrated Development and Learning Environment). However, it is rather basic in scope, and debugging can consume more time than necessary. With this in mind, here are a few of the best IDEs for Python which add to your productivity.

  • Python’s Requests Library (Guide)
  • Factorial one-liner using reduce and mul for Python 2 and 3
  • Sample Chapters from Creating wxPython Applications Book
  • Migrating from Pelican 3 to Pelican 4
  • Python Software Foundation Fellow Members for Q4 2018 [Ed: Python Software Foundation has many Microsoft employees in it now. Not good. Microsoft has been using money to filtrate just about everything, including its competition. This isn't so new a strategy and many examples of it exist.]
  • PyCoder’s Weekly: Issue #352 (Jan. 22, 2019)
  • Why Don't People Use Formal Methods?

    Before we begin, we need to lay down some terms. There really isn’t a formal methods community so much as a few tiny bands foraging in the Steppe.1 This means different groups use terms in different ways. Very broadly, there are two domains in FM: formal specification is the study of how we write precise, unambiguous specifications, and formal verification is the study of how we prove things are correct. But “things” includes both code and abstract systems. Not only do we use separate means of specifying both things, we often use different means to verify them, too. To make things even more confusing, if somebody says they do formal specification, they usually mean they both specify and verify systems, and if somebody says they do formal verification, they usually mean mean they both specify and verify code.

    Before we begin, we need to lay down some terms. There really isn’t a formal methods community so much as a few tiny bands foraging in the Steppe.1 This means different groups use terms in different ways. Very broadly, there are two domains in FM: formal specification is the study of how we write precise, unambiguous specifications, and formal verification is the study of how we prove things are correct. But “things” includes both code and abstract systems. Not only do we use separate means of specifying both things, we often use different means to verify them, too. To make things even more confusing, if somebody says they do formal specification, they usually mean they both specify and verify systems, and if somebody says they do formal verification, they usually mean mean they both specify and verify code.

    For clarity purposes, I will divide verification into code verification (CV) and design verification (DV), and similarly divide specification into CS and DS. These are not terms used in the wider FM world. We’ll start by talking about CS and CV, then move on to DS and DV.

  • Learning C as an uneducated hobbyist

    V=Programming, however, is conscious. It’s an activity in which you have to think in order to act. Unlearning bad practice in programming takes no energy at all apart from that spent being told that the practice is bad and coming to understand and remember it. Once you’ve done that, it’s almost impossible to make the same mistake again.

    That’s why you shouldn’t be afraid of learning “along the way”, “as you go” or “in an ad-hoc manner” because “you might learn bad practice”. If you learn the wrong thing, you can learn the right thing later. After all, you’re not a professional programmer. It doesn’t matter very much if you make a mistake; your job doesn’t depend on it.

  • Demystifying Pointers in Go

    If you’ve never worked with a language that exposes pointers, it could be a little confusing. But the good news is pointers don’t need to be scary. In fact, pointers can be pretty straightforward. Here are the basics of pointers in Go:

Programming: Homebrew 1.9, JBoss EAP, Python, Qt and Inclusion

Filed under
Development
  • Homebrew 1.9 Adds Linux Support, Auto-Cleanup, and More

    The latest release of popular macOS package manager Homebrew includes support for Linux, optional automatic package cleanup, and extended binary package support.

    Linux support, merged from the Linuxbrew project, is still in beta and will become stable in version 2.0. It also enables the use of Homebrew on Windows 10 systems with the Windows Subsystem for Linux installed.

    Auto-cleanup is meant to optimize disk space occupation by removing all intermediate data that Homebrew generates when installing packages. This can be a significant amount when Homebrew actually builds the packages from sources instead of just installing binaries. Auto-cleanup is opt-in by setting the HOMEBREW_INSTALL_CLEANUP. This behaviour will become opt-out in version 2.0, where you will be able to set the HOMEBREW_NO_INSTALL_CLEANUP environment variable to disable auto-cleanup.

  • Streamline your JBoss EAP dev environment with Red Hat CodeReady Workspaces: Part 1
  • Counteracting Code Complexity With Wily - Episode 195

    As we build software projects, complexity and technical debt are bound to creep into our code. To counteract these tendencies it is necessary to calculate and track metrics that highlight areas of improvement so that they can be acted on. To aid in identifying areas of your application that are breeding grounds for incidental complexity Anthony Shaw created Wily. In this episode he explains how Wily traverses the history of your repository and computes code complexity metrics over time and how you can use that information to guide your refactoring efforts.

  • Qt Visual Studio Tools 2.3.1 Released

    The Qt VS Tools version 2.3.1 has now been released to the Visual Studio Marketplace.

  • Ben Cotton: Inclusion is a necessary part of good coding

    Too often I see comments like “some people would rather focus on inclusion than write good code.” Not only is that a false dichotomy, but it completely misrepresents the relationship between the two. Inclusion doesn’t come at the cost of good code, it’s a necessary part of good code.

    We don’t write code for the sake of writing code. We write code for people to use it in some way. This means that the code needs to work for the people. In order to do that, the people designing and implementing the technology need to consider different experiences. The best way to do that is to have people with different experiences be on the team. As my 7th grade algebra teacher was fond of reminding us: garbage in, garbage out.

Syndicate content

More in Tux Machines

Security: Nest Lockout, Moment of Truth for Cyber Insurance, DNS Hijacking Attacks and Australian Cracking

  • Nest is locking customers out of accounts until they fix their security

    Emails were sent last night to all users that may have been affected by recent [breaches], with a new password being mandatory, as it tries to avoid the "I'll do it later" attitude that means that often vulnerable passwords remain in use for months or years.

  • A Moment of Truth for Cyber Insurance

    Mondelez’s claim represents just a fraction of the billions of dollars in collateral damage caused by NotPetya, a destructive, indiscriminate cyberattack of unprecedented scale, widely suspected to have been launched by Russia with the aim of hurting Ukraine and its business partners. A compromised piece of Ukrainian accounting software allowed NotPetya to spread rapidly around the world, disrupting business operations and causing permanent damage to property of Mondelez and many others. According to reports, Zurich apparently rejected Mondelez’s claim on the grounds that NotPetya was an act of war and, therefore, excluded from coverage under its policy agreement. If the question of whether and how war risk exemptions apply is left to the courts to decide on a case-by-case basis, this creates a profound source of uncertainty for policyholders about the coverage they obtain.

  • A Deep Dive on the Recent Widespread DNS Hijacking Attacks

    The U.S. government — along with a number of leading security companies — recently warned about a series of highly complex and widespread attacks that allowed suspected Iranian hackers to siphon huge volumes of email passwords and other sensitive data from multiple governments and private companies. But to date, the specifics of exactly how that attack went down and who was hit have remained shrouded in secrecy.

    This post seeks to document the extent of those attacks, and traces the origins of this overwhelmingly successful cyber espionage campaign back to a cascading series of breaches at key Internet infrastructure providers.

  • With elections weeks away, someone “sophisticated” [cracked] Australia’s politicians

    With elections just three months away, Australian Prime Minister Scott Morrison announced on February 18 that the networks of the three major national political parties had been breached by what Australian security officials described as a "sophisticated state actor."

  • Australia's major political parties [cracked] in 'sophisticated' attack ahead of election

    Sources are describing the level of sophistication as "unprecedented" but are unable to say yet which foreign government is behind the attack.

  • Parliament attackers appear to have used Web shells

    Attackers who infiltrated the Australian Parliament network and also the systems of the Liberal, National and Labor Parties appear to have used Web shells – scripts that can be uploaded to a Web server to enable remote administration of a machine.

Android Leftovers

How Linux testing has changed and what matters today

If you've ever wondered how your Linux computer stacks up against other Linux, Windows, and MacOS machines or searched for reviews of Linux-compatible hardware, you're probably familiar with Phoronix. Along with its website, which attracts more than 250 million visitors a year to its Linux reviews and news, the company also offers the Phoronix Test Suite, an open source hardware benchmarking tool, and OpenBenchmarking.org, where test result data is stored. According to Michael Larabel, who started Phoronix in 2004, the site "is frequently cited as being the leading source for those interested in computer hardware and Linux. It offers insights regarding the development of the Linux kernel, product reviews, interviews, and news regarding free and open source software." Read more

Programmes and Events: Outreachy, FOSDEM and LibreOffice Asia Conference

  • Outreachy Summer 2019 Applications Open With Expanded Eligibility
    But beginning this round, they are also opening the application process to "anyone who faces systemic bias or discrimination in the technology industry of their country is invited to apply." For evaluating the systemic bias or discrimination, an essay question was added to the application process about what discrimination they may have faced or otherwise think they could face in seeking employment. Also different beginning this round is only students (update: for non-student participants, this restriction does not apply) from the Northern Hemisphere can apply to this May to August round while the Southern Hemisphere round is being deemed the December to March round moving forward.
  • VkRunner at FOSDEM
    I attended FOSDEM again this year thanks to funding from Igalia. This time I gave a talk about VkRunner in the graphics dev room. It’s now available on Igalia’s YouTube channel below: I thought this might be a good opportunity to give a small status update of what has happened since my last blog post nearly a year ago.
  • First LibreOffice Asia Conference
    The First LibreOffice Asia Conference Will Be Held On May 25-26, 2019 In Nihonbashi, Tokyo, Japan This is the first ever LibreOffice conference covering Asia, a rapidly-growing area for free and open source software. The call for papers will be launched soon. Berlin, February 18, 2019 – After the huge success of the LibreOffice Conference Indonesia in 2018, members of the Asian communities have decided to raise the bar in 2019 with the first ever LibreOffice Asia Conference in Nihonbashi – the very center of Tokyo, Japan – on May 25-26. One of the main organizers, Naruhiko Ogasawara, a member of the Japanese LibreOffice community and The Document Foundation, can’t hide his excitement: “When we launched the LibreOffice Mini Conference Japan in 2013 as a local event, we knew little about communities in other parts of Asia. In recent years we have attended the LibreOffice Conference and other Asian events like OpenSUSE Asia, COSCUP etc. We have realized that many of our colleagues are active and that our community should learn a lot from them. We are proud to be able to hold the first Asia Conference with our colleagues to further strengthen that partnership.”