Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
  • How to teach software engineering students about the enterprise

    In this opinion article, you will find a set of suggestions for the inclusion of enterprise technology into software engineering courses. This piece goes through the difficulties that students face and proposes simplifications successfully used in the past. The continual advancement of enterprise technologies leads to a simplifying of the inclusion process in education.

    In the coming years, one can expect that industry demand for experts who know the technology used in enterprise development processes and production systems will increase. Academic institutions are here to prepare experts and leaders for industry, and thus they should know the technologies being used.

    It has been ten years since I taught my first software engineering course. Since then, I have taught this course every year. Many software engineering courses put emphasis on analysis and design from the abstract perspective, involving UML models and notations, and letting students develop software projects on their own.

  • Writing tests for Rust HTTP source | GSoC 2019

    My GSoC mentor, Sebastian Dröge coded the skeleton of the test with a basic unit test case for HTTP source plugin (aka reqwesthttpsrc). Here is the link to the merge request. The test was to check whether we receive the data correctly which is sent by the server. Here we make a hyper HTTP server which respond with "Hello World". Then we use our plugin to receive the data and we compare both. Also the interesting thing here is the Custom test harness which can be used to initialize a HTTP server with required behavior and our HTTP element with required properties set. We can use this to create the desired Harness for the any test case.

  • Wing Tips: Extending Wing with Python (Part 4 of 4)

    In this issue of Wing Tips we continue to look at how to extend Wing's functionality, by taking a closer look at at the scripting API and writing up a more complex script.

    If you haven't read the previous installments of this series, you may want to take a look at Part 1 where we introduced Wing's scripting framework and set up auto-completion for the scripting API, Part 2 where we used Wing to debug itself for easier extension script development, and Part 3 where we looked at how to collect arguments from the user.

  • Rust: How do we teach "Implementing traits in no_std for generics using lifetimes" without sutdents going mad?
  • A Brief Introduction To Markov Chains | Markov Chains In Python
  • How I learned Python Programming RAPIDLY!
  • Stop using indices!

    A very common things I see among my newer Python students is that often try to access values by index within loops. Part of this is down to experience in other programming languages, where this kind of pattern is common, but there are also situations where they just don't realise there's a better way. In this post, I want to show off some of those better ways so you can write more Pythonic loops, and ditch indices in favour of descriptive variable names.

  • This Week in Rust 294
  • PSF GSoC students blogs: Week 6
  • How Tara AI Is Helping Developers Build Better Software Faster
  • 32-bit life support: Cross-compiling with GCC

    If you're a developer creating binary packages, like an RPM, DEB, Flatpak, or Snap, you have to compile code for a variety of different target platforms. Typical targets include 32-bit and 64-bit x86 and ARM. You could do your builds on different physical or virtual machines, but that means maintaining several systems. Instead, you can use the GNU Compiler Collection (GCC) to cross-compile, producing binaries for several different architectures from a single build machine.

    Assume you have a simple dice-rolling game that you want to cross-compile. Something written in C is relatively easy on most systems, so to add complexity for the sake of realism, I wrote this example in C++, so the program depends on something not present in C (iostream, specifically).

More in Tux Machines

GNU Parallel Released and 10 Years of GNU Health

  • GNU Parallel 20191022 ('Driving IT') released [stable]

    GNU Parallel 20191022 ('Driving IT') [stable] has been released. It is available for download at: No new functionality was introduced so this is a good candidate for a stable release. GNU Parallel is 10 years old next year on 2020-04-22. You are here by invited to a reception on Friday 2020-04-17.

  • GNU Health: 10 years of Freedom and Equity in Healthcare

    I am back from my trip to India, where I spent a week with the team of All India Institute of Medical Sciences – AIIMS –, the largest public hospital in Asia and a leading research institution. They have taken the decision to adopt GNU Health, the Free Hospital and Health Information System. One key aspect in Free Software is ownership. From the moment they adopted GNU Health, it now also belongs to AIIMS. They have full control over it. They can download and upgrade the system; access the source code; customize it to fit their needs; and contribute back to the community. This is the definition of Free Software. The definition of Free Software is universal. GNU Health is equally valid for very large institutions, national public health networks and small, rural or primary care centers. The essence is the same.

Programming Leftovers

  • NumFOCUS and Tidelift partner to support essential community-led open source data science and scientific computing projects

    NumFOCUS and Tidelift today announced a partnership to support open source libraries critical to the Python data science and scientific computing ecosystem. NumPy, SciPy, and pandas—sponsored projects within NumFOCUS—are now part of the Tidelift Subscription. Working in collaboration with NumFOCUS, Tidelift financially supports the work of project maintainers to provide ongoing security updates, maintenance and code improvements, licensing verification and indemnification, and more to enterprise engineering and data science teams via a managed open source subscription from Tidelift.

  • Python Plotting With Matplotlib

    A picture is worth a thousand words, and with Python’s matplotlib library, it fortunately takes far less than a thousand words of code to create a production-quality graphic. However, matplotlib is also a massive library, and getting a plot to look just right is often achieved through trial and error. Using one-liners to generate basic plots in matplotlib is relatively simple, but skillfully commanding the remaining 98% of the library can be daunting.

  • Nominations for 2019 Malcolm Tredinnick Memorial Prize

    Malcolm was an early core contributor to Django and had both a huge influence and large impact on Django as we know it today. Besides being knowledgeable he was also especially friendly to new users and contributors. He exemplified what it means to be an amazing Open Source contributor. We still miss him. The DSF Prize page summarizes the prize nicely: The Malcolm Tredinnick Memorial Prize is a monetary prize, awarded annually, to the person who best exemplifies the spirit of Malcolm’s work - someone who welcomes, supports and nurtures newcomers; freely gives feedback and assistance to others, and helps to grow the community. The hope is that the recipient of the award will use the award stipend as a contribution to travel to a community event -- a DjangoCon, a PyCon, a sprint -- and continue in Malcolm’s footsteps.

  • Dirk Eddelbuettel: pkgKitten 0.1.5: Creating R Packages that purr

    This release provides a few small changes. The default per-package manual page now benefits from a second refinement (building on what was introduced in the 0.1.4 release) in using the Rd macros referring to the DESCRIPTION file rather than duplicating information. Several pull requests fixes sloppy typing in the, NEWS.Rd or manual page—thanks to all contributors for fixing these. Details below.

Commitment To Elevating The Very Best

OSI applauds the efforts of every individual who has ever spoken up and taken steps to make free, libre, and open source software communities more inclusive. Without you, the movement would be less vibrant, less welcoming, and irreversibly diminished. Whether you’ve led your community to implement a code of conduct or taken the time to mentor someone who isn’t like you, whether you’ve reported toxic behavior or pressured community leaders to act: thank you. It takes courage to change the status quo, and all too often, that comes at a personal expense. Ultimately, ours is a moral movement, and our integrity hinges on whether we rise to meet the challenge of seeking justice and equity for all. As we move forward, we hope that we can learn as a community and incorporate the lessons of the past into building a better future. Further, we hope we can build bridges to those who have been shut out of our movement, whether by omission or commission, at the hands of systemic bias as well as toxic and predatory behavior. As the saying goes in open source, “Many eyes lead to shallower bugs.” So too do many perspectives lead to better software. Here’s to a better, more inclusive tomorrow. - The OSI Board of Directors Read more

NextCloud on Pi Adventures and Escaping Google

  • NextCloud on Pi Adventures

    I spent yesterday *finally* setting up a NextCloud instance of my own. It’s been on my todo since I installed fiber at home and got a decent Internet connection. I started out with Rasbian Lite and combined it with the NextCloudPi install script from ownyourbits. I then used certbot to install certificates from let’s encrypt before migrating the data directory using these instructions. After that it was happy account creation time, before realizing that I could not upload files larger than ~10kB. Very annoying.

  • Escape Google!

    Being practical most people are going to want to keep using Google services, but at least knowing what the issues are, how you can use privacy-enhanced versions or escape completely with your own services is good to know. While Nextcloud is so slick these days and with pre-packaged options it’s certainly fun just to try out, if not deployed as a full-time personal cloud solution. But it’s not all worrying about invasion of the privacy snatchers, we’ve plenty of down-to-earth tutorials and projects to keep you busy. We take another look at using Audacity to improve your YouTube audio and create effects, we test out of a bunch of server distros to see which is best for you in Roundup, there’s some lovely retro loving with a look at running ZX Basic and we look at building a wearable webcam from a Pi Zero. Enjoy!