Language Selection

English French German Italian Portuguese Spanish

Programming: Automation, Development, Python and GstWPE

Filed under
Development
  • Top 4 open source automation tools for admins

    Open source offerings are an easy way to bring automation into your organization. When selecting software, evaluate the user experience, main features offered and Linux support.

  • Why front-end development may be the new frontier

    Google frameworks lead Nicole Sullivan praised Next.js at the October JAMstack_conf_19 in San Francisco. Though React started within Facebook (and AngularJS started within Google), developers are less concerned with origins and more focused on direction. Google Chrome has a mandate to make the web faster, she said, and React-centric Next.js is part of that mandate. Rauch was also featured with a walk-on presentation during the keynote address at Google's Chrome Dev 19 conference in San Francisco last month.

  • 11 top open-source test automation frameworks: How to choose

    If you're thinking about building your own test automation framework, think again. In most cases, you'd do better to consider one or more of the open-source options available.

    That's because, in general, a framework is a set of best practices, assumptions, common tools, and libraries that you can use across teams. You simply don't need to build one that's unique to your dev environment. A framework will help make your test automation code reusable, maintainable, and stable.

    Teams that take these benefits to the extreme by building their own elaborate automation frameworks from scratch drive me crazy. That's because they could have easily made use of existing open-source tools and libraries that would have met their needs without writing any code—and, in most cases, with better results.

  • Google Code-In 2019 Underway

    Google Code-in (GCI) is a unique opportunity for students to work on real open source software projects and for open source projects to gain extra help as well. Over the past nine years, more than 11,000 students from 108 countries have successfully completed over 55,000 tasks in GCI and this year 29 organizations, all of which have participated in Google Summer of Code, are devising over 2,500 task for teenager to choose to work on. 

  • The most copied StackOverflow Java code snippet contains a bug

    Nine years later, developer corrects code snippet.

    [...]

    An academic paper [PDF] published in 2018 identified a code snippet Lundblad posted on the site as the most copied Java code taken from StackOverflow and then re-used in open source projects.

  • Testing NVIDIA Jetson Nano Developer Kit with and without Fan

    A few weeks ago I received NVIDIA Jetson Nano for review together with 52Pi ICE Tower cooling fan which Seeed Studio included in the package, and yesterday I wrote a getting started guide...

  • Mike Driscoll: PyDev of the Week: Sebastian Steins

    This week we welcome Sebastian Steins (@sebastiansteins) as our PyDev of the Week! Sebastian is the creator of the Pythonic News website. You can find out more about Sebastian by checking out what he’s been up to over on Github. Let’s take a few moments to get to know him better!

  • Podcast.__init__: Debugging Python Projects With PySnooper

    Debugging is a painful but necessary practice in software development. The tools that are available in Python range from the built-in debugger, to tools integrated with your coding environment, to the trusty print function. In this episode Ram Rachum describes his work on PySnooper and how it can be used to speed up your problem solving in complex or legacy applications.
    Summary

    Debugging is a painful but necessary practice in software development. The tools that are available in Python range from the built-in debugger, to tools integrated with your coding environment, to the trusty print function. In this episode Ram Rachum describes his work on PySnooper and how it can be used to speed up your problem solving in complex or legacy applications.

  • HTML overlays with GstWPE, the demo

    Once again this year I attended the GStreamer conference and just before that, Embedded Linux conference Europe which took place in Lyon (France). Both events were a good opportunity to demo one of the use-cases I have in mind for GstWPE, HTML overlays!

    As we, at Igalia, usually have a booth at ELC, I thought a GstWPE demo would be nice to have so we can show it there. The demo is a rather simple GTK application presenting a live preview of the webcam video capture with an HTML overlay blended in. The HTML and CSS can be modified using the embedded text editor and the overlay will be updated accordingly. The final video stream can even be streamed over RTMP to the main streaming platforms (Twitch, Youtube, Mixer)! Here is a screenshot:

More in Tux Machines

Leftovers: IBM, MicroK8s and Devices

  • Broadridge Signs With IBM For Greater Cloud Capabilities

    Red Hat, which IBM acquired in 2018 is the most pervasive container solution on the planet today, said Schlesinger. “It allows us to containerize our apps and then allows us to run them on any cloud unchanged, whether our private cloud, Azure, AWS or IBM.”

  • IBM Power-based cloud instances available… from Google

    IBM and Google may be competitors in the cloud platform business, but that doesn't prevent them from working together. Google is partnering with IBM to offer "Power Systems as a service" on its Google Cloud platform. IBM’s Power processor line is the last man standing in the RISC/Unix war, surviving Sun Microsystems’ SPARC and HP’s PA-RISC. Along with mainframes it’s the last server hardware business IBM has, having divested its x86 server line in 2014. IBM already sells cloud instances of Power to its IBM Cloud customers, so this is just an expansion of existing offerings to a competitor with a considerable data center footprint. Google said that customers can run Power-based workloads on GCP on all of its operating systems save mainframes — AIX, IBM i, and Linux on IBM Power.

  • An intro to MicroK8s

    MicroK8s is the smallest, fastest multi-node Kubernetes. Single-package fully conformant lightweight Kubernetes that works on 42 flavours of Linux as well as Mac and Windows using Multipass. Perfect for: Developer workstations, IoT, Edge, CI/CD. Anyone who’s tried to work with Kubernetes knows the pain of having to deal with getting setup and running with the deployment. There are minimalist solutions in the market that reduce time-to-deployment and complexity but the light weight solutions come at the expense of critical extensibility and missing add-ons.

  • QNAP Launches Two Bay TS-251D NAS: Gemini Lake, HDMI, PCIe Expandability

    QNAP has announced its new budget-friendly two-bay NAS aimed at home users and supporting hardware-accelerated media playback. The TS-251D can store up to 32 TB of data using today’s hard drives and can be further expanded with a PCIe card to add SSD caching or other options. The QNAP TS-251D NAS is based on Intel’s dual-core Celeron J4005 processor with UHD 600 Graphics core and hardware decoding for multiple modern video codecs. The SoC is accompanied by 2 GB or 4 GB of DDR4 memory that can be expanded by the end user. The NAS has two bays that can support 2.5-inch or 3.5-inch HDDs or SSDs with a SATA 6 Gbps interface, though RAID modes are not supported. The unit has one GbE port, one HDMI 2.0 output, two USB 3.0 ports, three USB 2.0 connectors, and an IR sensor for an optional remote.

  • Coffee Lake module boasts extended temp operation

    Axiomtek’s Linux-friendly “CEM520” is a COM Express Basic Type 6 module with an Intel 8th Gen “Coffee Lake” Core or Xeon CPU, 4x SATA, PCIe x16, 8x PCIe x1, and support for -20 to 70°C and triple independent displays. Axiomtek has released the Intel 8th Gen based CEM520, which follows its earlier 6th Gen Skylake Core and Xeon E3 based CEM500 COM Express Basic Type 6 module. Other Coffee Lake driven Basic Type 6 modules include Avalue’s recent ESM-CFH.

Android Leftovers

Programming and Security Patches

  • A little hidden gem: QStringIterator

    The code above is broken.

    It falls into the same trap of endless other similar code: it doesn’t take into account that QString does not contain characters/code points, but rather UTF-16 code units.

    All operations on a QString (getting the length, splitting, iterating, etc.) always work in terms of UTF-16 code units, not code points. The reality is: QString is Unicode-aware only in some of its algorithms; certainly not in its storage.

    For instance, if a string contains simply the character “A” — that is, MATHEMATICAL BOLD CAPITAL A (U+1D400) — then its QString storage would actually contain 2 “characters” reported by size() (again, really, not characters in the sense of code points but two UTF-16 code units): 0xD835 and 0xDC00.

    The naïve iteration done above would then check whether those two code units are uppercase, and guess what, they’re not; and therefore conclude that the string is not uppercase, while instead it is. (Those two code units are “special” and used to encode a character outside the BMP; they’re called a surrogate pair. When taken alone, they’re invalid.)

  • How to get started with test-driven development

    I am often approached by software developers who are on board with the switch to test-driven development (TDD). They understand that describing expectations first and then writing code to meet those expectations is the best way to write software. And they agree that writing tests first does not introduce any overhead since they must write tests anyway. Still, they find themselves stuck, not being clear on what to test, when to test it, and how to test it. This article will answer those questions.

    [...]

    One way to the test custom-made car battery would be to hire a testing crew, ship the car with the battery to Portland, and then get the testing crew to drive the car from Portland to Seattle. If the car arrives in Seattle, you can confirm that, yes, the car battery functions as expected.

    Another way to test the custom-made car battery would be to install it in the car and see if the engine turns over. If the engine starts, you can confirm that, yes, the car battery functions as expected.

    Still another way would be to use a voltmeter and connect the positive (+) and the negative (-) terminals to see if the voltmeter registers voltage output in the range of 12.6 to 14.7 volts. If it does, you can confirm that, yes, the car battery functions as expected.

  • Perl Weekly Challenge 44: Only 100, Please, and Make it $200

    These are some answers to the Week 44 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

    [...]

    For solving this task, we first use a recursive combine subroutine that generates all possible strings by inserting between the digits of the “123456789” string the + plus addition, the - subtraction operator, or the '' empty string (i.e. no operator). We then use the evaluate subroutine with each string to perform the various arithmetic operations and compute whether the total is 100.

    [...]

    You have only $1 left at the start of the week. You have been given an opportunity to make it $200. The rule is simple with every move you can either double what you have or add another $1. Write a script to help you get $200 with the smallest number of moves.

    Obviously, doubling your asset is a faster way to go high values than just adding 1. But, if you only double your asset, you get powers of 2, leading you to 128, and then you have to go all the way from 128 to 200, which is most probably not the fastest way to get to 200. In fact, if you first go to three (for example by adding 1 twice), then multiplying by 2 six times, you get to 192, which is much closer to 200. That’s 16 moves, which seems not bad at all. But there may be a yet faster way, let’s see.

  • Wine Debugger Improvements Are On The Way, Start Of LLVM LLDB Support

    With Wine 5.0 having released and the Git tree back open for feature work, we're quite looking forward to see what new material will land following this feature freeze that was in effect the past two months.

    One of the new patch series out by CodeWeavers' Rémi Bernon is improving Winedbg, the Wine debugger. Winedbg is used for debugging Windows applications and among its many debug capabilities is a proxy mode for interacting with the GNU Debugger (GDB). It's that GDB integration that is being improved upon while also starting to support LLVM's Debugger (LLDB).

  • Security updates for Monday

    Security updates have been issued by Debian (jsoup and slirp), Fedora (community-mysql, elog, fontforge, libuv, libvpx, mingw-podofo, nodejs, opensc, podofo, thunderbird-enigmail, transfig, and xfig), openSUSE (arc, libssh, and libvpx), Red Hat (git, java-1.8.0-openjdk, java-11-openjdk, python-reportlab, and sqlite), Slackware (thunderbird), and SUSE (java-1_8_0-openjdk, python, and samba). 

Programming and Security Patches

  • A little hidden gem: QStringIterator

    The code above is broken. It falls into the same trap of endless other similar code: it doesn’t take into account that QString does not contain characters/code points, but rather UTF-16 code units. All operations on a QString (getting the length, splitting, iterating, etc.) always work in terms of UTF-16 code units, not code points. The reality is: QString is Unicode-aware only in some of its algorithms; certainly not in its storage. For instance, if a string contains simply the character “