Language Selection

English French German Italian Portuguese Spanish

Development

Python Programming

Filed under
Development
  • Python Programming

    Python is a powerful multipurpose programming language created by Guido van Rossum.

    It has a simple and easy-to-use syntax, making it a popular first-choice programming language for beginners.

    This is a comprehensive guide that explores the reasons you should consider learning Python and the ways you can get started with Python.

  • Python 3.7.5 : The PyQtChart from python Qt5.

    The PyQtChart is a set of Python bindings for The Qt Company’s Qt Charts library and is implemented as a single module.

  • Null in Python: Understanding Python's NoneType Object

    If you have experience with other programming languages, like C or Java, then you’ve probably heard of the concept of null. Many languages use this to represent a pointer that doesn’t point to anything, to denote when a variable is empty, or to mark default parameters that you haven’t yet supplied. null is often defined to be 0 in those languages, but null in Python is different.

    Python uses the keyword None to define null objects and variables. While None does serve some of the same purposes as null in other languages, it’s another beast entirely. As the null in Python, None is not defined to be 0 or any other value. In Python, None is an object and a first-class citizen!

  • Python Bytes: #169 Jupyter Notebooks natively on your iPad
  • Test and Code: 101: Application Security - Anthony Shaw

    Anthony Shaw is doing something about it by creating an editor plugin that actually helps you write more secure application code while you are coding.

    On today's Test & Code, Anthony and I discuss his security plugin, but also application security in general, as well as other security components you need to consider.

    Security is something every team needs to think about, whether you are a single person team, a small startup, or a large corporation.

    Anthony and I also discuss where to start if it's just a few of you, or even just one of you.

  • Universal app reload with entr

    A useful feature many web frameworks have is auto-reload. Your app is running in the background, you change the code, and the app is restarted with those changes, so you can try them out immediately. What if you wanted that behavior for everything that you’re writing? And without any coding to implement it over and over in every little project?

    Then you can use entr. It’s a nice little UNIXy [1] tool. It really just does one thing - running commands when files change. And it has a simple, usable interface. You just pass it the names of the files it needs to watch, and give it the command to run.

  • Which verison of Python are you running?

    I actually want to ask you which version of Python3 are you running? Yes, it is a question I have to ask myself based on projects I am working on. I am sure there are many more people in the world who are also in the similar situation.

  • Ubuntu 20.04 LTS Moves Ahead With Python 2 Removal - But Sticks Around For Derivatives

    With Python 2 having been end-of-life since the start of the year and Ubuntu 20.04 being a long-term support release, Ubuntu developers are working hard to ensure Python 2 isn't shipped as part of this next Ubuntu LTS release.

    Indeed, the long process of working to remove Python 2 from Ubuntu 20.04 LTS is panning out at least as far as the official ISO is concerned. Among recent action has included removing the python* binary packages (the generic package names not python2-* or python3-*) and addressing packages that depended upon the unversioned python package names, scanning for any lingering Python 2 dependent binary packages, working to add a python-is-python2-but-deprecated package that will symlink /usr/bin/python to python2 for any hold-outs, and related work.

Python Programming

Filed under
Development
  • Integrating MongoDB with Python Using PyMongo

    In this post, we will dive into MongoDB as a data store from a Python perspective. To that end, we'll write a simple script to showcase what we can achieve and any benefits we can reap from it.

    Web applications, like many other software applications, are powered by data. The organization and storage of this data are important as they dictate how we interact with the various applications at our disposal. The kind of data handled can also have an influence on how we undertake this process.

    Databases allow us to organize and store this data, while also controlling how we store, access, and secure the information.

  • EuroPython 2020: Presenting our conference logo for Dublin

    The logo is inspired by the colors and symbols often associated with Ireland: the shamrock and the Celtic harp. It was again created by our designer Jessica Peña Moro from Simétriko, who had already helped us in previous years with the conference design.

  • Finding the Perfect Python Code Editor

    Find your perfect Python development setup with this review of Python IDEs and code editors. Writing Python using IDLE or the Python REPL is great for simple things, but not ideal for larger programming projects. With this course you’ll get an overview of the most common Python coding environments to help you make an informed decision.

  • PyCoder’s Weekly: Issue #408 (Feb. 18, 2020)
  • Airflow By Example (II)
  • PyCon: The Hatchery Returns with Nine Events!

    Since its start in 2018, the PyCon US Hatchery Program has become a fundamental part of how PyCon as a conference adapts to best serve the Python community as it grows and changes with time. In keeping with that focus on innovation, the Hatchery Program itself has continued to evolve.

    Initially we wanted to gauge community interest for this type of program, and in 2018 we launched our first trial program to learn more about what kind of events the community might propose. At the end of that inaugural program, we accepted the PyCon Charlas as our first Hatchery event and it has grown into a permanent track offered at PyCon US.

  • Using "python -m" in Wing 7.2

    Wing version 7.2 has been released, and the next couple Wing Tips look at some of its new features. We've already looked at reformatting with Black and YAPF and Wing 7.2's expanded support for virtualenv.

    Now let's look at how to set up debugging modules that need to be launched with python -m. This command line option for Python allows searching the Python Path for the name of a module or package, and then loading and executing it. This capability was introduced way back in Python 2.4, and then extended in Python 2.5 through PEP 338 . However, it only came into widespread use relatively recently, for example to launch venv, black, or other command line tools that are shipped as Python packages.

  • New Python Programmer? Learn These Concepts First.

    As a novice Python developer, the world is your oyster with regards to the type of applications that you can create. Despite its age (30 years—an eternity in tech-world terms), Python remains a dominant programming language, with companies using it for all kinds of services, platforms, and applications.

    For example, Python lets you create web applications via Django or other frameworks such as Flask. Perhaps you want to create games instead? For that, learn Pygame for 2D games (or Panda3D for 3D). Or maybe you’re more enterprise-minded, and want to create useful utilities (such as automatically cataloguing e-books); in that case, Python works well with frameworks and software such as Calibre.

Programming/Development: LLVM, Haskell, Perl and Python

Filed under
Development
  • LLVM's Go Front-End Was Finally Dropped From The Official Source Tree

    Most probably didn't even realize LLVM had a Go language front-end, but this past week it was dropped from the official source mono repository.

    This LLVM Go front-end "LLGO" hasn't been maintained in several years and never really took off... Most probably aren't even aware of this Go compiler support for LLVM. So the code has been suffering, it was stuck at Go version 1.5 well behind the latest upstream, it likely has build errors, and there are other nuisances with the code like having an entire copy of Mark Twain's "The Adventures of Tom Sawyer" novel. For those wondering why an entire novel was part of the source tree, it amounted to serving as a compression test case.

  • [llvm-dev] [10.0.0 Release] Release Candidate 2 is here
    Hello everyone,
    
    Release Candidate 2 was tagged earlier today as llvmorg-10.0.0-rc2. It
    includes 98 commits since the previous release candidate.
    
    Source code and docs are available at
    https://prereleases.llvm.org/10.0.0/#rc2 and
    https://github.com/llvm/llvm-project/releases/tag/llvmorg-10.0.0-rc2
    
    Pre-built binaries will be added as they become available.
    
    Please file bug reports for any issues you find as blockers of
    https://llvm.org/pr44555
    
    Release testers: please run the test script, share your results, and
    upload binaries.
    
    I'm hoping we can now start tying up the loose ends, fixing the
    blocking bugs, and getting the branch ready for shipping as a stable
    release soon.
    
    Thanks,
    Hans
    
  • LLVM 10.0's Release Is Very Close With RC2 Available

    The release of LLVM 10.0 is now upon us with the second and last planned release candidate issued at the end of last week.

    Ongoing LLVM release manager Hans Wennborg tagged LLVM 10.0 RC2 on Thursday with just under one hundred commits since the original release candidate. Since LLVM 10.0 RC1 in January has been a lot of bug fixing and things appear to be settling down for seeing LLVM 10.0 on time or thereabouts with its scheduled release date of 26 February.

  • Excellent Free Tutorials to Learn Haskell

    Haskell is a standardized, general-purpose, polymorphically statically typed, lazy, purely functional language, very different from many programming languages. It enables developers to produce software that’s clear, concise, and correct.

    This is a mature programming language with the first version defined in 1990. It has a strong, static type system based on Hindley–Milner type inference. The main implementation of Haskell is the Glasgow Haskell Compiler (GHC), an open source native code compiler. Recent innovations include static polymorphic typing, higher-order functions, user-definable algebraic data types, a module system, and more. It has built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, with thousands of open source libraries and tools.

    Haskell offers many advantages to programmers. It helps rapid application development with shorter, clearer code, and higher reliability. It’s suitable for a variety of applications, and often used in academia and industry.

  •      

  • 2020.07 Irky Reblessing

           

             

    Arne Sommer has blogged about a recent breaking change with regards to reblessing objects: Raku and the (Re)blessed Child and Exploring Rebless with Raku. In it, they express frustration with working code suddenly not working anymore. As always, there are two sides to the story, and Arne shows them both.

  •       

  • Python Tools for Record Linking and Fuzzy Matching

    Record linking and fuzzy matching are terms used to describe the process of joining two data sets together that do not have a common unique identifier. Examples include trying to join files based on people’s names or merging data that only have organization’s name and address.

    This problem is a common business challenge and difficult to solve in a systematic way - especially when the data sets are large. A naive approach using Excel and vlookup statements can work but requires a lot of human intervention. Fortunately, python provides two libraries that are useful for these types of problems and can support complex matching algorithms with a relatively simple API.

    The first one is called fuzzymatcher and provides a simple interface to link two pandas DataFrames together using probabilistic record linkage. The second option is the appropriately named Python Record Linkage Toolkit which provides a robust set of tools to automate record linkage and perform data deduplication.

    This article will discuss how to use these two tools to match two different data sets based on name and address information. In addition, the techniques used to do matching can be applied to data deduplication and will be briefly discussed.

  • Slightly Better Iterative Spline Decomposition

    My colleague Bart Massey (who is a CS professor at Portland State University) reviewed my iterative spline algorithm article and had an insightful comment — we don't just want any spline decomposition which is flat enough, what we really want is a decomposition for which every line segment is barely within the specified flatness value.

    My initial approach was to keep halving the length of the spline segment until it was flat enough. This definitely generates a decomposition which is flat enough everywhere, but some of the segments will be shorter than they need to be, by as much as a factor of two.

Python Programming: PyCon India, Python 3.8.2rc2 and More

Filed under
Development
  • PyCon India 2019 :: Late Report

    Personally, I think the venue choice this year was great again, as we were able to accommodate 20+ sponsor stalls while still not overloading the halls and having ample space to conduct multiple tracks of the conference scheduled for the attendees.

    [...]

    Apart from these, there also are some monetary benefits to volunteering at a conference- registration fee for volunteers is generally waived off at paid-ticket based conferences and some quite generous conferences also have accommodation options for volunteers during the conference days, free of cost.
    Also, organizers usually have free goodies to give away to the volunteers at the end of the conference.

    The volunteers met at the convention centre a day before the conference to prepare the goodies bags for the attendees. These bags simply consisted of a schedule page, a pen, a notebook and a couple of PyCon India stickers- one for you, and one for sharing with your pal.

  • Python 3.8.2rc2 is now available for testing

    Python 3.8.2rc2 is the second release candidate of the second maintenance release of Python 3.8. Go get it here:

  • Productivity Mondays - 5 tips that will boost your performance

    The following things are relatively easy to do, but also easy not to do. Do them consistently and they can change your career and life.

  • Roberto Alsina: Learning Serverless in GCP

    Usually, when I want to learn how to use a tool, the thing that works best for me is to try to build something using it. Watching someone build something instead is the second best thing.

    So, join me while I build a little thing using "serverless" Google Cloud Platform, Python and some other bits and pieces.

  • Uniquely Managing Test Execution Resources using WebSockets

    Executing tests for simple applications is complicated. You have to think about the users, how they interact with it, how those interactions propagate through different components, as well as how to handle error situations gracefully. But things get even more complicated when you start looking at more extensive systems, like those with multiple external dependencies.

    Dependencies come in various forms, including third-party modules, cloud services, compute resources, networks, and others.

Thanks to Linux, I just installed a pro-level video editor on my Chromebook

Filed under
Development
GNU
Linux
Gaming

We’re constantly looking around for new tricks to make our Chromebooks even more capable than they’ve already become over the past couple of years. Every day, there are fewer use-cases where a Windows or Mac device is a necessity and we truly believe that Chrome OS will eventually offer comparable alternatives to that narrowing space. If there is one product, in particular, that Chrome OS will need to figure out, it’s video editing. Sure, there are great online products like WeVideo for lightweight projects and you can even find some pretty good video editing platforms in the Google Play Store but what we’re talking about is serious, high-octane editing that’s worthy of a Hollywood studio. (Well, a low-budget studio maybe.)

Read more

Programming Leftovers

Filed under
Development
  • Hover a mouse over a link - just don't trust the results

    This appears to be a link to a good website. When the mouse hovers over this link, it will appear that it goes to www.somegoodplace.com. Click it. I dare you Smile

    The link really goes to guce.advertising.com. JavaScript is used to dynamically change the link just as it is clicked. Pretty cool, eh?

  • Goodbye Joyent

    But as any software veteran knows, projects often don’t survive the whims of management. No one is fired for picking Linux (these days), but they might be for picking something else. I already experienced this once before, as a core developer of the Riak database. We were rigorous, paying homage to the theoretics of distributed systems, but with a focus on bringing that theory to the masses. So much so that our last CEO said we had to stop doing so much “computer science”. He meant it as an insult, but we wore it as a badge of honor. But hey, MongoDB had a sweet API and BJSON, who cares if it lost your data occasionally [1]. I understand that people like to stick with what is popular. I respect that decision — it is theirs to make. But I’ll never be a part of that crowd. I want to use software that speaks to me, software that solves the problems I have, software guided by similar values to my own. For me, no project does this more than SmartOS and the illumos kernel. It is my Shawshank Redemption in a sea of MCU.

  • Continuous integration with GDB Buildbot

    Continuous integration is a hot topic these days, and the GNU Project Debugger is keeping up with the trend. Who better to serve as a role model for tracking and exterminating bugs than a debugger?

    The GDB Buildbot started as a pet project back in 2014 but is now an integral part of the development process. It provides an infrastructure to test new commits pushed to the official repository, as well as a service (which we call try builds) for developers to submit their proposed changes. In this article, I share the story of our Buildbot instance, where we are right now in terms of functionality, and the plans (and challenges) for the future.

    [...]

    Back in 2014, the GDB project did not have a continuous integration tool. Developers kindly provided testsuite results and reported regressions in the code, often using their own machines. However, these developers had limited resources and could not test various architectures simultaneously. Compilation failures were often not caught in systems that are not widely used. Ultimately, this issue caused delays and annoyances during the release process (or in the worst cases) after GDB was released.

    In an attempt to mitigate this problem, the GDB Buildbot was set up. Only GNU/Linux running on Intel/AMD 32 and 64-bit was supported at the beginning, but the community quickly started to contribute toward support other machines and architectures. The initial setup compiled and tested the code using common configure flags, but developers still needed to consult the web page in order to know the results.

    Over time, the instance has been improved and new features were added, including email notifications whenever a commit introduced a compilation failure, and email notifications to the gdb-testers mailing list containing the results of each testsuite run.

    Perhaps one of the most useful features was the try build system.

  • Automating unit tests in test-driven development

    DevOps is a software engineering discipline focused on minimizing the lead time to achieve a desired business impact. While business stakeholders and sponsors have ideas on how to optimize business operations, those ideas need to be validated in the field. This means business automation (i.e., software products) must be placed in front of end users and paying customers. Only then will the business confirm whether the initial idea for improvement was fruitful or not.

    Software engineering is a budding discipline, and it can get difficult to ship products that are defect-free. For that reason, DevOps resorts to maximizing automation. Any repeatable chore, such as testing implemented changes to the source code, should be automated by DevOps engineers.

    This article looks at how to automate unit tests. These tests are focused on what I like to call "programming in the small." Much more important test automation (the so-called "programming in the large") must use a different discipline—integration testing. But that's a topic for another article.

  • Create web user interfaces with Qt WebAssembly instead of JavaScript

    When I first heard about WebAssembly and the possibility of creating web user interfaces with Qt, just like I would in ordinary C++, I decided to take a deeper look at the technology.

    My open source project Pythonic is completely Python-based (PyQt), and I use C++ at work; therefore, this minimal, straightforward WebAssembly tutorial uses Python on the backend and C++ Qt WebAssembly for the frontend. It is aimed at programmers who, like me, are not familiar with web development.

  • GCC 8.4 Status Report (2020-02-17)
    Status
    ======
    
    
    
    
    It has been almost a year since GCC 8.3 has been released and GCC 8.4
    release should have been released already, so we should concentrate on
    getting it out soon.  Unfortunately we have two P1s, one of them is
    waiting for reporter's input, so we might as well just ignore it unless
    the input is provided, but the other, C++ FE one, looks something that
    should be fixed.  If we get rid of the P1s, I'd like to create
    8.4-rc1 on Wednesday, Feb 26th and release 8.4 the week afterwards.
    If you have any queued backports, please commit them to 8 branch
    (and 9 branch too, we'd like to release 9.3 soon too).
    
    
    
    
    
    
    
    
    Quality Data
    ============
    
    
    
    
    Priority          #   Change from last report
    --------        ---   -----------------------
    P1                2   +   2
    P2              284   +  75
    P3               38   +   4
    P4              151   -  11
    P5               22   -   2
    --------        ---   -----------------------
    Total P1-P3     324   +  81
    Total           497   +  68
    
    
    
    
    
    
    
    
    Previous Report
    ===============
    
    
    
    
    https://gcc.gnu.org/ml/gcc/2019-02/msg00122.html
    
  • GCC 8.4 + GCC 9.3 Compilers Coming Soon

    GCC 8.4 is already past due for release while Red Hat's Jakub Jelinek is trying to get its release organized in the coming weeks along with GCC 9.3. It's been nearly one year since GCC 8.3 and thus many fixes in tow for GCC 8.4. But two "P1" regressions of the highest priority are left to be addressed or demoted before the 8.4 release can happen. Jakub is hoping to create a release candidate of GCC 8.4 on 26 February and to then officially release the GCC 8.4 stable compiler the first week of March. A similar GCC 9.3 release is also expected soon for those on this current GCC 9 stable series. 

Python Programming

Filed under
Development
  • Refactoring and asking for forgiveness

    Recently, I had a great interaction with one of my coworkers that I think is worth sharing, with the hope you may learn a bit about refactoring and python.

    My colleague came to me to help him think through a problem that surfaced with a change to a project. The code in question sends a file to a remote storage service.

  • A Guide to the Newer Python String Format Techniques

    In the previous tutorial in this introductory series, you learned how to format string data using the string modulo operator. The string modulo operator is useful, and it’s good for you to be familiar with it because you’re likely to encounter it in older Python code. However, there are two newer ways that you can use Python to format strings that are arguably more preferable.

  • Python 101 2nd Edition Kickstarter is Live!

    I am excited to announce that my newest book, Python 101, 2nd Edition is launching on Kickstarter today!

  • February PyLadies Pune workshop

    It was the time for “learning Python with harware” in February, 2020 with PyLadies in Pune. Coding in Python becomes fun when one can see the changes it makes in the hardware.

    Selecting a place for work is always a difficult task as any organizer. College Of Engineering Pune (COEP) has always been supportive of PyLadies Pune. When I approached Abhijit for the venue he readily agreed. My sincere gratitude to him, Women Engineers Group and the FOSSMeet Pune team enough for that.

    Once I reached the venue it was already a full house and still people were coming in. We had more than 55 students of 1st to 3rd year, attending the workshop. The first year students already knew Python. Around 12-14 people were writing Python for the first time.

    The workshop started with the very basics of the language on the terminal.

    [...]

    We started with blinking the first LED of the board. When the students lit their first LED the smile and light in their eyes were precious Smile. Following that we spend some time with the simple codes. We tried our hands on different modules of Circuit Python. We took the help from the tutorial provided in Adafruit website. The students were enjoying and indulged into creativity. So I decided to give them problem statements instead of showing them code. I was happy to see how fast they were solving it and experimenting with different patterns, colours.

  • PyDev of the Week: Martin Fitzpatrick

    This week we welcome Martin Fitzpatrick (@mfitzp) as our PyDev of the Week! Martin is the author of “Create Simple GUI Applications with Python and Qt 5” and the creator of the LearnPyQt website. You can also check out his personal site or see what he’s up to by visiting his Github profile. Let’s spend some time getting to know Martin better!

Programming: Gitea, NBD, Eclipse, Electron, Perl and Spyder (Python)

Filed under
Development
  • Gitea 1.11.0: Open source self-hosting Git solution gets a new update

    Gitea helps you set up your own self-hosted Git service with the use of lightweight Go code. The latest version, 1.11.0, includes a long list of updates, bug fixes, and improvements, including changing the markdown rendering to goldmark, and a new contrib command. Is self-hosting the right solution for you? See how Gitea compares to other Git hosting solutions.

  • NBD: A popular HTTP-fetching npm code library used by 48,000 other modules retires, no more updates coming

    After eleven months of planning, the npm-distributed request module has been deprecated, meaning the popular JavaScript code library for making HTTP requests is no longer supported and won't receive further updates.

    The almost 48,000 other npm modules that include request as a dependency won't see any immediate effect, other than a deprecation warning from the npm command line client. But the maintainers of those modules should consider revising their code so it uses an alternative library for handling HTTP interactions.

    Request, now at version 2.88.2 and still downloaded almost 17m times a week, was created in 2009 by Mikeal Rogers, who presently handles community operations at open source biz Protocol Labs.

  • Still Increasing the Power of Hybrid IT Through Open Source

    Broadcom (perhaps still better known as CA) used this year’s Arcati Mainframe Yearbook to highlight the mainframe development revolution and the growth in open source tools.

    They said that tools, like the green screens of ISPF and the Eclipse desktop IDE, enhanced with proprietary plugins have served mainframe application developers well over the years. However, there are changes in the larger world of development that are creating the conditions for a revolution in mainframe tooling.

  • Tangle EE project joins Eclipse Foundation to bring distributed ledger apps to enterprise

    As the number of IoT devices proliferate, and machines conduct transactions with machines without humans involved, it becomes increasingly necessary to have a permissionless system that facilitates this kind of communication in a secure way.

    Enter the IOTA Foundation, a Berlin-based open-source distributed ledger technology (DLT) project, which has hooked up with the Eclipse Foundation to bring IOTA DLT to the enterprise via the Tangle EE project. For starters, this involves forming a working group.

  • Eclipse Partners with IOTA on Open Source Distributed Ledger Tech
  • What to know about software development security — why it’s still so hard and how to tackle it

    The right software security practices can prevent many future security problems, and there is an increasingly realisation that software development security needs a cradle-to-grave approach, not just focusing on solving problems once they become apparent.

    There is still a long way to go and no-one can claim this is easy to address: the increasing complexity of modern software development environments, not to mention the sheer volume of code and other digital assets being created, often in continuous, fast-paced environments, exacerbates the challenge.

    [...]

    Coding standards are particularly relevant for some of the more complex programming languages — C++ in particular — which while introducing unprecedented scope for innovation and flexibility, also allow for more interpretation, which can lead even the most skilled developer to inadvertently introduce an error. Again, automation is key, especially for huge codebases and complicated embedded software projects, so static code analysis is increasingly introduced to reduce manual effort and associated risks.

  • Electron 8 - First Release As OpenJS Foundation Incubator

    At the end of last year Electron joined the OpenJS Foundation as an incubator project. The release of Electron 8, less than two months later, is an indication that it is thriving in its new home.

    Initially developed for GitHub's Atom editor, Electron is a cross-platform desktop application development tool based on Node.js and Chromium enabling apps to be packaged for Mac, Windows, and Linux. Both Atom and Electron were open sourced in 2014.

    News that Electron was joining the OpenJS Foundation was announced in December 2019 at the Node+JS Interactive conference held in Montreal.

  • Modularity for Maintenance

    One of the best things about maintaining open source in the modern era is that there are so many wonderful, free tools to let machines take care of the busy-work associated with collaboration, code-hosting, continuous integration, code quality maintenance, and so on.

    [...]

    But... let’s say you1 maintain a few dozen Python projects. Being a good maintainer, you’ve started splitting up your big monolithic packages into smaller ones, so your utility modules can be commonly shared as widely as possible rather than re-implemented once for each big frameworks. This is great!

    However, every one of those numbered list items above is now a task per project that you have to repeat from scratch. So imagine a matrix with all of those down one side and dozens of projects across the top - the full Cartesian product of these little administrative tasks is a tedious and exhausting pile of work.

    If you’re lucky enough to start every project close to perfect already, you can skip some of this work, but that partially just front-loads the tedium; plus, projects tend to start quite simple, then gradually escalate in complexity, so it’s helpful to be able to apply these incremental improvements one at a time, as your project gets bigger.

  • Perl Weekly Challenge 47: Roman Calculator and Gapful Numbers

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

    Spoiler Alert: This weekly challenge deadline is due in a couple of days (February 9, 2020). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

    I have really very little time to complete this blog post in time for the deadline. My explanations will be minimal, sorry about that.

  • The Spyder Development Community and Quansight Labs Announce the Release of Spyder 4

    The Spyder Project and Quansight Labs announced the release of Spyder 4, the latest version of the most popular open source Scientific Python development environment. Spyder 4 boasts new features that users have been eagerly awaiting.

    Spyder 4 provides users an enhanced coding experience like general purpose editors and IDEs, while strengthening its specialized focus on scientific programming in Python. 

Java and Python Programming

Filed under
Development
  • How To Solve Error: “No Main Class Found in NetBeans”
  • A review of Processing books

    Processing is the free and open Java development environment that targets artists who are intrigued by generative code. In essence it is the Java language with a friendly development interface and built-in libraries to get you started.

    There are plenty of ways to learn Processing, including the tutorials on the organisation's website, and the built-in examples that come with the distribution. But if you prefer a printed book, keep reading. This article will review nine available publications, so you can make an informed purchase decision.

    For the sake of completeness I will also append information on two books I haven't had a chance to read.

  • The Digital Cat: Dissecting a Web stack

    Having recently worked with young web developers who were exposed for the first time to proper production infrastructure, I received many questions about the various components that one can find in the architecture of a "Web service". These questions clearly expressed the confusion (and sometimes the frustration) of developers who understand how to create endpoints in a high-level language such as Node.js or Python, but were never introduced to the complexity of what happens between the user's browser and their framework of choice. Most of the times they don't know why the framework itself is there in the first place.

    The challenge is clear if we just list (in random order), some of the words we use when we discuss (Python) Web development: HTTP, cookies, web server, Websockets, FTP, multi-threaded, reverse proxy, Django, nginx, static files, POST, certificates, framework, Flask, SSL, GET, WSGI, session management, TLS, load balancing, Apache.

    In this post, I want to review all the words mentioned above (and a couple more) trying to build a production-ready web service from the ground up. I hope this might help young developers to get the whole picture and to make sense of these "obscure" names that senior developers like me tend to drop in everyday conversations (sometimes arguably out of turn).

  • Restoring intuition over multi-dimensional space

    We would not be human if we did not curse things. As beings that are confined in a three-dimensional world, we tend to blame space whenever we have a problem to visualize data that extend to more than three dimensions. From scientific books and journal papers to simple blog articles and comments the term: “curse of dimensionality” is being repeated like a mantra, almost convincing us that any object, whose nature extends to something more than just “3D” is out of reach to our brains.

    This article is going to discuss neither data visualization nor seek to conform to the common opinion that highly-dimensional space is incomprehensible.

    Quite opposite: the highly-dimensional space is not incomprehensible. It is just weird and less intuitive. Fortunately, take advantage of some mathematical tools and use them as a “free ticket” to gain more intuition. More precisely, we will present three “routes” we can use to get a better feeling on how things play out in “ND space.”

    [...]

    In this article, we have looked into three aspects of the multidimensionality of space. As we couldn’t visualize it (we didn’t even try…), we took advantage of some mathematical mechanisms to gain a bit more insight into the strange behavior of this world. Although not backed with any ultimate proofs, we hope that the mathematical reasoning just presented can spark some inspiration, intuition, and imagination, which is something that is often needed when having to cope with N-dimensions.

  • Airflow By Example

    Apache Airflow is a very interesting, popular and free tool to create, manage and monitor workflows, for example if you want to do ETL (Extract / Transform / Load) on data.

    This sort of enterprise software often may seem complicated or overly unrelated to our everyday experience as developers but ... is it, really? How about if I just want to watch some TV shows? And experiment with some enterprise-level software at the same time?

    Let's do that by learning how to use Airflow to watch TV.

Programming: Wind River's CI/CD, Mint, Python and Java

Filed under
Development
  • Wind River Launches CD Platform for Embedded Systems

    Glenn Seiler, vice president for open source strategy for Wind River, said the CD platform is based on an open source instance of the Jenkins continuous integration/continuous delivery (CI/CD) platform. The company envisions organizations downloading the platform as source code that Wind River will update regularly for use on top of the Wind River Linux platform, he said.

    Wind River is taking advantage of containers, Kubernetes, the Puppet IT automation framework and a repository to ease deployment of its CD platform, added Seiler. The company is committed to providing updates to that platform, which Wind River uses internally, at least every three weeks, said Seiler.

  • SD Times Open-Source Project of the Week: Mint

    Mint is a programming language for the front-end web that aims to solve the common issues of Single Page Applications (SPAs) at a language level.

     It is a compiler and a framework combined to provide great developer experience while allowing users to write safe, readable and maintainable code, according to the developers behind the project.

    The common issues that it attempts to fix are regard reusable components, styling routing, global and local state handling, and synchronous and asynchronous computations that might fail.

    “It was born out of the frustration of the JavaScript language and ecosystem (NPM) and the Elm language and it’s not so open development practices,” Mint said on its website. “Mint aims to combine the developer experience of Elm and the expressiveness of React to create the perfect language for building single-page applications.”

  • PyPy and CFFI have moved to Heptapod

    It has been a very busy month, not so much because of deep changes in the JIT of PyPy but more around the development, deployment, and packaging of the project.

  • Your Guide to Reading Excel (xlsx) Files in Python

    In this brief Python tutorial, we are going to learn how to read Excel (xlsx) files using Python. Specifically, we will read xlsx files in Python using the Python module openpyxl. First, we start by the simplest example of reading a xlsx file in Python. Second, we will learn how to read multiple Excel files using Python.

  • CausalNex: An open-source Python library that helps data scientists to infer causation rather than observing correlation

    CausalNex is a Python library that allows data scientists and domain experts to co-develop models that go beyond correlation and consider causal relationships. ‘CasualNex’ provides a practical ‘what if’ library which is deployed to test scenarios using Bayesian Networks (BNs).

  • Programming languages: Java developers flock to Kotlin and ditch Oracle JDK for OpenJDK [Ed: CBS tabloid ZDNet does puff pieces for Snyk now. A Microsoft-connected attack dog -- one  which badmouths FOSS and now pretends to have a 'study' (self-promotion stunt) on programming trends...]

    The vast majority of developers who use a JVM (Java Virtual Machine) language still use Java, but a sizable chunk of the population is shifting to Kotlin, a JVM-compatible language developed by JetBrains, which Google is encouraging developers to use for Android development.  

Syndicate content

More in Tux Machines

Antitrust Laws and Open Collaboration

If you participate in standards development organizations, open source foundations, trade associations, or the like (Organizations), you already know that you’re required to comply with antitrust laws. The risks of noncompliance are not theoretical – violations can result in severe criminal and civil penalties, both for your organization and the individuals involved. The U.S. Department of Justice (DOJ) has in fact opened investigations into several standards organizations in recent years. Maybe you’ve had a training session at your company, or at least are aware that there’s an antitrust policy you’re supposed to read and comply with. But what if you’re a working group chair, or even an executive director, and therefore responsible for actually making sure nothing happens that’s not supposed to? Beyond paying attention, posting or reviewing an antitrust statement at meetings, and perhaps calling your attorney when member discussions drift into grey zones, what do you actually do to keep antitrust risk in check? Well, the good news is that regulators recognize that standards and other collaboration deliverables are good for consumers. The challenge is knowing where the boundaries of appropriate conduct can be found, whether you’re hosting, leading or just participating in activity involving competitors. Once you know the rules, you can forge ahead, expecting to navigate those risks, and knowing the benefits of collaboration can be powerful and procompetitive. We don’t often get glimpses into the specific criteria regulators use to evaluate potential antitrust violations, particularly as applicable to collaborative organizations. But when we do, it can help consortia and other collaborative foundations focus their efforts and take concrete steps to ensure compliance. In July 2019, the DOJ Antitrust Division (Division) provided a new glimpse, in its Evaluation of Corporate Compliance Programs in Criminal Antitrust Investigations (Guidance). Although the Guidance is specifically intended to assist Division prosecutors evaluating corporate compliance programs when charging and sentencing, it provides valuable insights for building or improving an Organization’s antitrust compliance program (Program). At a high level, the Guidance suggests that an effective Program will be one that is well designed, is applied earnestly and in good faith by management, and includes adequate procedures to maximize effectiveness through efficiency, leadership, training, education, information and due diligence. This is important because organizations that detect violations and self-report to the Division’s Corporate Leniency program may receive credit (e.g. lower charges or penalties) for having an effective antitrust compliance program in place. Read more

today's howtos

Events: SUSECON, OpenShift Troubleshooting Workshop and Kubernetes Contributor Summit Amsterdam

  • Get Expert Guided Hands-On Experience at the SUSECON 2020 Pre-Conference Workshops

    Are you ready for SUSECON 2020? It’s coming up fast! Join us in Dublin Ireland from March 23 – 27 for a week packed with learning and networking.

  • Get Certified During SUSECON 2020

    Working in IT is not for the feint of heart; the work is demanding, and change is constant. Right now, your organization is undoubtedly seeking new ways to extend the value of their investment in IT and get more done faster.

  • The OpenShift Troubleshooting Workshop

    The first workshop in our Customer Empathy Workshop series was held October 28, 2019 during the AI/ML (Artificial Intelligence and Machine Learning) OpenShift Commons event in San Francisco. We collaborated with 5 Red Hat OpenShift customers for 2 hours on the topic of troubleshooting. We learned about the challenges faced by operations and development teams in the field and together brainstormed ways to reduce blockers and increase efficiency for users. The open source spirit was very much alive in this workshop. We came together with customers to work as a team so that we can better understand their unique challenges with troubleshooting. Here are some highlights from the experience.

  • [Kubernetes] Contributor Summit Amsterdam Schedule Announced

Security: Patches, Bugs, RMS Talk and NG Firewall 15.0

  • Security updates for Wednesday

    Security updates have been issued by CentOS (firefox, java-1.7.0-openjdk, ksh, and sudo), Debian (php7.0 and python-django), Fedora (cacti, cacti-spine, mbedtls, and thunderbird), openSUSE (chromium, re2), Oracle (firefox, java-1.7.0-openjdk, and sudo), Red Hat (openjpeg2 and sudo), Scientific Linux (java-1.7.0-openjdk and sudo), SUSE (dbus-1, dpdk, enigmail, fontforge, gcc9, ImageMagick, ipmitool, php72, sudo, and wicked), and Ubuntu (clamav, linux, linux-aws, linux-aws-hwe, linux-azure, linux-gcp, linux-gke-4.15, linux-hwe, linux-kvm, linux-oracle, linux-raspi2, linux-snapdragon, linux, linux-aws, linux-kvm, linux-raspi2, linux-snapdragon, linux-aws-5.0, linux-azure, linux-gcp, linux-gke-5.0, linux-oracle-5.0, linux-azure, linux-kvm, linux-oracle, linux-raspi2, linux-raspi2-5.3, linux-lts-xenial, linux-aws, and qemu).

  • Certificate validity and a y2k20 bug

    One of the standard fields of an SSL certificate is the validity period. This field includes notBefore and notAfter dates which, according to RFC5280 section 4.1.2.5, indicates the interval "during which the CA warrants that it will maintain information about the status of the certificate" This is one of the fields that should be inspected when accepting new or unknown certificates. When creating certificates, there are a number of theories on how long to set that period of validity. A short period reduces risk if a private key is compromised. The certificate expires soon after and can no longer be used. On the other hand, if the keys are well protected, then there is a need to regularly renew those short-lived certificates.

  • Free Software is protecting your data – 2014 TEDx Richard Stallman Free Software Windows and the NSA

    Libre booted (BIOS with Linux overwritten) Thinkpad T400s running Trisquel GNU/Linux OS. (src: https://stallman.org/stallman-computing.html) LibreBooting the BIOS? Yes! It is possible to overwrite the BIOS of some Lenovo laptops (why only some?) with a minimal version of Linux.

  • NG Firewall 15.0 is here with better protection for SMB assets

    Here comes the release of NG Firewall 15.0 by Untangle with the creators claiming top-notch security for SMB assets. Let’s thoroughly discuss the latest NG Firewall update. With that being said, it only makes sense to first introduce this software to the readers who aren’t familiar with it. As the name ‘NG Firewall’ suggests, it is indeed a firewall but a very powerful one. It is a Debian-based and network gateway designed for small to medium-sized enterprises. If you want to be up-to-date with the latest firewall technology, your best bet would be to opt for this third-generation firewall. Another factor that distinguishes the NG Firewall from other such products in the market is that it combines network device filtering functions and traditional firewall technology.