Language Selection

English French German Italian Portuguese Spanish

Development

LibreOffice 7.1 - Top New Features and Release Dates

Filed under
Development
Linux
News

The upcoming LibreOffice 7.1 is under development. LibreOffice 7.1 Beta 1 is released just a while back. Here we take a look at the LibreOffice 7.1 top new features and release dates.
Read more

Programming Leftovers

Filed under
Development
  • A beginner's guide to developing with React | Opensource.com

    React is a JavaScript user interface (UI) library that was built and is maintained by Facebook. React helps JavaScript developers think logically and functionally about how they want to build a UI.

  • DOM Recording For Web Application Demos

    To show off the power of our Pernosco debugger, we wanted many short demo videos of the application interface. Regular videos are relatively heavyweight and lossy; we wanted something more like Asciinema, but for our Web application, not just a terminal. So we created DOMRec, a DOM recorder.

  • The 20 Best Kotlin Books for Beginner and Expert Developers

    Here you will find the top Kotlin books that will make it very interesting and almost effortless for you to learn Kotlin.

    Kotlin is a statically composed, universally useful programming language with type deduction. It is also a cross-platform language. Kotlin is intended to engage completely with Java, and Kotlin’s standard library’s JVM variant relies upon the Java Class Library. However, Kotlin’s type of derivation permits its syntax to be more compact and precise. Therefore, it has become quite crucial to learn Kotlin these days. But to learn it in the shortest number of days, a perfect set of Kotlin books is indecipherably important.

    Whether or not to pick Kotlin or Java for new advancement has been coming up a ton in the Android people group since the Google I/O declaration. The short answer is that Kotlin code is more secure and more succinct than Java code and that Kotlin and Java records can coincide in Android applications, so Kotlin isn’t just valuable for new applications but also for growing existing Java applications as well.

  • What the Error Handling Project Group is Working On

    The Rust community takes its error handling seriously. There’s already a strong culture in place for emphasizing helpful error handling and reporting, with multiple libraries each offering their own take (see Jane Lusby’s thorough survey of Rust error handling/reporting libraries).

    But there’s still room for improvement. The main focus of the group is carrying on error handling-related work that was in progress before the group's formation. To that end, we're working on systematically addressing error handling-related issues, as well as eliminating blockers that are holding up stalled RFCs.

    Our first few meetings saw us setting a number of short- and long-term goals. These goals fall into one of three themes: making the Error trait more universally accessible, improving error handling ergonomics, and authoring additional learning resources.

  • How to collect Rust source-based code coverage

    Source-based code coverage was recently introduced in Rust. It is more precise than the gcov-based coverage, with fewer workarounds needed. Its only drawback is that it makes the profiled program slower than with gcov-based coverage.

    In this post, I will show you a simple example on how to set up source-based coverage on a Rust project, and how to generate a report using grcov (in a readable format or in a JSON format which can be parsed to generate custom reports or upload results to Coveralls/Codecov).

GTK: At the Heart of GNOME

Filed under
Development
GNOME

GTK is at the heart of the GNOME application and software development kit. GTK is used to create graphical user interfaces (GUIs) for desktop environments, applications, and window managers. Since the GTK 4 development process began in 2016, we have about 250 individual contributors, with more than 100 active this year.

Thanks to the funding received by the GNOME Foundation in 2020, the GTK development team was able to run hackfests, including one we were lucky enough to have at FOSDEM. This funding also supported Emmanuele Bassi, Core GTK Developer at the GNOME Foundation, working on GTK full-time. For most of 2020, Emmanuele worked on implementing a new accessibility interface for GTK 4, to ensure that more people can use GNOME applications, including those with disabilities. We are building a diverse and sustainable free software computing ecosystem where everyone can be empowered by technology they trust. Since Emmanuele works directly for the Foundation he’s uniquely able to focus on the needs of the community, project, and users to support these goals.

GTK is a project with a long history, and throughout that history, it has gone through multiple iterations. A new major release is on the horizon. After four years of development that included a complete overhaul of the internals of the toolkit, GTK 4 promises to be faster through hardware acceleration; more efficient, in terms of performance and power consumption; and more ergonomic, for both application developers, and end users. Over the past four years, the GTK team has continued work on the existing stable versions of GTK and put out multiple releases.

Read more

Also: GTK Planning More Improvements In 2021 From Better Accessibility To Animation Framework

Programming Leftovers

Filed under
Development
  • 6 predictions for JavaScript build tools | Opensource.com

    Code used in production is different from development code. In production, you need to build packages that run fast, manage dependencies, automate tasks, load external modules, and more. JavaScript tools that make it possible to turn development code into production code are called build tools.

  • The mysterious case of the SVt_PVIV | The Incredible Journey

    The other day I wanted to send my friend some silly emojis on LINE and so I updated my flaky old Unicode browser to the new-fangled Unicode with values above 0x10000, so that I could fetch the Emojis, which start around here. The thing also features a perl script which fetches values from Unicode::UCD using the charinfo function. I also updated to Perl 5.32 around the same time. Now the funny thing was that I started getting all kinds of errors about invalid JSON in the browser console. My Perl script was sending something of the form {... "script":Common ...} from my module JSON::Create, which is not valid JSON due to not having quotes around Common, and obviously my module was faulty.

  • JSON::Create now features indentation | The Incredible Journey

    In version 0.27 of JSON::Create I added a new indentation feature. This was added basically out of necessity. Originally the purpose of the module was sending short bits of JSON over the internet, but I've been using JSON more and more for processing data too. I've spent quite a long time working on a web site for recognition of Chinese, and I've been using JSON more and more extensively. The basic data file for the web site is a 168 megabyte JSON file. Not indenting this kind of file makes for "interesting" problems if one accidentally opens it in an editor or on a terminal screen, a million characters all on one line tends to confuse the best-written text reading utilities. So after years of suffering the relief is tremendous, and now I have tab-based indentation in JSON::Create.

  • Python Convert String to Int - Python Examples – TecAdmin

    Its a common uses of type conversion in any programming language. Python also provides inbuilt methods for type conversion. This tutorial will help to convert a string value to integer value with Python.

Programming Leftovers

Filed under
Development
  • Built to Last

    As the catastrophe unfolded, several state governments blamed it on aged, supposedly obsolete computer systems written in COBOL, a programming language that originated in the late 1950s. At least a dozen state unemployment systems still run on this sixty-one-year-old language, including ones that help administer funds of a billion dollars or more in California, Colorado, and New Jersey. When the deluge of unemployment claims hit, the havoc it seemed to wreak on COBOL systems was so widespread that many states apparently didn’t have enough programmers to repair the damage; the governor of New Jersey even publicly pleaded for the help of volunteers who knew the language.

    But then something strange happened. When scores of COBOL programmers rushed to offer their services, the state governments blaming COBOL didn’t accept the help. In fact, it turned out the states didn’t really need it to begin with. For many reasons, COBOL was an easy scapegoat in this crisis—but in reality what failed wasn’t the technology at all.

  • Reducing Streams in Java

    Java 8 introduced streams, among other things, and one of my favourite features is the reduce() method. It combines a stream into a single method.

  • Humility

    Humility helps you respect the people you’re working with and see what they bring. We can’t genuinely respect them if we’re feeling superior; if we think we have all the answers.

    If we have compassion for our teammates (and ourselves) we will desire to minimise their suffering.

    We will want to avoid inflicting difficult merges on anyone. We will want to avoid wasting their time, or forcing them to re-work; having been surprised by our changes. The practice of Continuous Integration can come from the desire to minimise suffering in this way.

    We will want those who come after us in the future to be able to understand our work—understand the important behaviour and decisions we made. We’ll want them to have the best safety net possible. Tests and living documentation such as ADRs can come from this desire.

    We’d desire the next person to have the easiest possible job to change or build upon what we’ve started, regardless of their skill and knowledge. Simplicity and YAGNI can come from this desire.

    Humility and compassion can drive us to be curious: what are the coding and working styles and preferences of our team mates? What’s the best way to collaborate to maximise my colleagues’ effectiveness?

    Without compassion we might write code that is easiest for ourselves to understand—using our preferred idioms and style without regard for how capable the rest of the team is to engage with it.

    Without humility our code might show off our cleverness.

  • Python Throw Exception – Linux Hint

    An exception appears during program execution and changes its normal flow due to an error. An exception arises on account of an error. The main cause of an exception is a logical error. Like many other programming languages, Python provides several built-in exceptions, i.e., ZeroDivisionError, ImportError, EOFError, etc.; for instance, the ZeroDivisionError exception is raised when a number is divided by zero. The Python exceptions are handled by the try statement. We define a try block and put the code vulnerable code inside this block, which can raise an exception. Next, after the try block, we define an except block to deal with the exception. Besides all these built-in exceptions, sometimes we need to raise or throw an exception when we encounter a specific situation. The Python developer can throw a user-defined exception easily. We use the raise keyword for raising or throwing an exception. This article explains the Python raise keyword usage for throwing the exception with examples.

  • How to use nftables from python

    One of the most interesting (and possibly unknown) features of the nftables framework is the native python interface, which allows python programs to access all nft features programmatically, from the source code.

    There is a high-level library, libnftables, which is responsible for translating the human-readable syntax from the nft binary into low-level expressions that the nf_tables kernel subsystem can run. The nft command line utility basically wraps this library, where all actual nftables logic lives. You can only imagine how powerful this library is. Originally written in C, ctypes is used to allow native wrapping of the shared lib object using pure python.

    To use nftables in your python script or program, first you have to install the libnftables library and the python bindings. In Debian systems, installing the python3-nftables package should be enough to have everything ready to go.

    To interact with libnftables you have 2 options, either use the standard nft syntax or the JSON format. The standard format allows you to send commands exactly like you would do using the nft binary. That format is intended for humans and it doesn’t make a lot of sense in a programmatic interaction. Whereas JSON is pretty convenient, specially in a python environment, where there are direct data structure equivalents.

  • Vue.js Change Style – Linux Hint

    Vue.js is used to build User Interfaces (UIs) and Single-Page Applications (SPAs). It is easy to learn how to use Vue.js and the framework of freedom and comfort that is available while developing applications in this program because it has the best-combined features of Angular and ReactJS. That is why it is known for its easy-to-use and clean coding.

    Vue.js provides style binding that you can use to change the style dynamically. You can bind a variable to the style attribute in any HTML tag and change the style when the bound variable is changed. In this article, we will have a look at how to use style binding and change the styling of variables using vue.js.

  • Vue.js Conditional Rendering – Linux Hint

    Vue.js is an easy to learn and approachable library that we can start building web applications in it with the basic knowledge of web development. In Vue.js, developers love to code and feel freedom while developing applications.

Programming: Rust, C++ and Compilers

Filed under
Development
GNU
Linux
  • The 10 Best Rust Programming Books: Experts' Recommendation

    Rust is a language that engages everybody to construct dependable and productive software. Rust is an open-source framework programming language. What Rust centers around is mobility and speed, memory security, and parallelism. A wide scope of new programming applications is being created by designers using Rust, such as game motors, program parts document frameworks, and reproduction motors for augmented reality. Therefore, to learn Rust programming with proper guidance, an exemplary set of Rust programming books is very important.

    [...]

    ‘Beginning Rust’ is a Rust programming book for the very beginners. Rust is a language for developers who are working with new applications, software, and virtual reality. This book would be a great option for those at their very early stage with learning rust programming. This book has been designed in such a way that any beginner will find the proper guidance accordingly.

    This book has a total of 23 chapters covering the topics from beginning to intermediary level. Some of the topics are, Doing the arithmetic, Naming object, Controlling executing flow, Defining functions, Data Implementation, etc. If a reader can follow the book accordingly, they will be able to start their work with rust programming very easily.

  • Giovanni Mascellani: Having fun with signal handlers

    As every C and C++ programmer knows far too well, if you dereference a pointer that points outside of the space mapped on your process' memory, you get a segmentation fault and your programs crashes. As far as the language itself is concerned, you don't have a second chance and you cannot know in advance whether that dereferencing operation is going to set a bomb off or not. In technical terms, you are invoking undefined behaviour, and you should never do that: you are responsible for knowing in advance if your pointers are valid, and if they are not you keep the pieces.

    However, turns out that most actual operating system give you a second chance, although with a lot of fine print attached. So I tried to implement a function that tries to dereference a pointer: if it can, it gives you the value; if it can't, it tells you it couldn't. Again, I stress this should never happen in a real program, except possibly for debugging (or for having fun).

  • Nibble Stew: Adding (very) preliminary support for C++ modules in Meson

    One of the most common questions people ask about Meson is why does it not yet have support for building C++ modules. Up until now the answer has been simple: no compiler really supports it yet. However Visual Studio has added sufficient functionality in their latest 2019 developer preview that an implementation in Meson has become feasible. The actual code can be found in this merge request for those brave enough to try it out.

    The basic problem with C++ modules is the same as with Fortran modules: you can no longer build source files in an arbitrary order. Instead you have to scan the contents of files, see what modules each source file generates and consumes and orchestrate the build so that all source files that produce modules are built before any source files that consume them. This requires dynamic dependency generation that has been added to Ninja only fairly recently.

  • How to Parse XML in C++ – Linux Hint

    In this article, we are going to discuss how to parse XML in C++ programming language. We will see several working examples to understand the XML parsing mechanism in C++.

  • Clang LTO Support For The Linux Kernel Spun Up A Seventh Time - Phoronix

    Google engineers have sent out their latest patches for allowing the mainline Linux kernel to be built with LLVM Clang link-time optimizations (LTO) for greater performance and possibly size benefits.

    Google's team has done a good job not only working on the mainline Clang support for the Linux kernel across the likes of AArch64 and x86_64, but also with other related features of interest to them like the Clang LTO abilities to which internally they already leverage extensively. This upstreaming work has been ongoing for many months.

  • Intel C for Metal Compiler 1.0.20 Released - Phoronix

    Within Intel's vast open-source software ecosystem and much of the attention being on oneAPI as their preferred programming model for developers these days and there being multiple different open-source Intel graphics compiler back-ends, one that is often forgotten about is the Intel C for Metal Compiler that on Friday saw a new release.

    The Intel C for Metal Compiler "cm-compiler" is for their C language dialect as a GPU kernel programming language for Intel graphics processors. C for Metal is their optimized GPU programming language on Windows and Linux. While it is promoted as a "general" GPU programming language, most notably it is used by Intel for their Media Codec SDK and other media processing. In fact, outside of their media stack it's difficult recalling the last time I heard it brought up. Those wanting to learn more about Intel's C for Metal language can find examples and more documentations via 01.org. There is also an overview from earlier this year at software.intel.com.

Hackers' Devices and Programming

Filed under
Development
Hardware
  • SiFive Pushes Open Source RISC-V Silicon Closer to Prime Time | Data Center Knowledge

    The open source RISC-V silicon specification flexes it's muscle with a new developers' board its maker, SiFive, is calling a PC.

  • Read RFID and NFC tokens with Raspberry Pi | HackSpace 37
  • Python OS module Common Methods – Linux Hint

    Python is a popular general-purpose programming language of recent times. It provides many built-in modules and functions to perform specific tasks. Python OS module allows performing the operating system related tasks. The OS module comes pre-installed in Python. The OS modules have many built-in functions to retrieve and interact with the file system. This article explains some functions of the OS module with examples.

  • Vue.js Click Events – Linux Hint

    Vue.js is a very powerful, easy to learn, and approachable library that with the knowledge of HTML, CSS, and Javascript, we can start building web applications in it. Vue.js is built by combining the best features from already existing Angular and react Frameworks. It is a progressive and reactive Javascript framework that is used to build UIs (User Interfaces) and SPAs (Single-page Applications), which is why the developers love to code and feel freedom and comfort while developing applications in Vue.js.If we take a look at the Event Listening and Handling in Vue.js., we will know that it provides a “v-on” directive to listen and handle events. We can use the “v-on” directive to listen to the DOM and perform the required tasks. It also provides many event handlers. However, in this article, we will only learn and keep our focus on the click events. So, let’s get started!

Qt and Qt Creator Releases

Filed under
Development

  • Qt 5.15.2 Released

    We have released Qt 5.15.2 today. As a patch release, Qt 5.15.2 does not add any new functionality but provides bug fixes.

    Compared to Qt 5.15.1, the new Qt 5.15.2 contains 176 bug fixes.  For details of the most important changes, please check the Change files of Qt 5.15.2.

    Qt 5.15.2 can be installed by using the maintenance tool. Note that we have recently released new version of the installer, so unless you already have updated to it, you need to run the installer update first . 

  • Qt 5.15.2 Released With Another 176 Bug Fixes - Phoronix

    Two months ago Qt 5.15.1 released with over 400 bug fixes and today the second point release of Qt 5.15 LTS is out with another nearly two hundred fixes. 

    While all eyes are on Qt 6.0 that should be shipping in December, Qt 5.15 is very important considering it's a long-term support (LTS) release where as Qt6 won't be seeing an LTS release for another year until Qt 6.2. There were tons of fixes poured into Qt 5.15.1 and it remains that way with the newly minted Qt 5.15.2 LTS. 

  • Qt Creator 4.13.3 released

    We are happy to announce the release of Qt Creator 4.13.3 !

    For this release we updated the prebuilt binaries to Qt 5.15.2, which fixes drag & drop on macOS. Please see our change log for an overview of the other improvements.

  • Qt Creator 4.14 Beta2 released

    We are happy to announce the release of Qt Creator 4.14 Beta2 !

    For the Beta2 I'd like to refer you to the Beta blog post for the higher level overview of what improvements are included in Qt Creator 4.14, and to our change log for the more fine-grained list.

Programming Leftovers

Filed under
Development
  • Daniel Silverstone: Withdrawing Gitano from support

    Unfortunately, in Debian in particular, libgit2 is undergoing a transition which is blocked by gall. Despite having had over a month to deal with this, I've not managed to summon the tuits to update Gall to the new libgit2 which means, nominally, I ought to withdraw it from testing and possibly even from unstable given that I'm not really prepared to look after Gitano and friends in Debian any longer.

  • The 20 Best Scala Books For Beginner and Expert Developers

    Scala is an elevated level language that joins object-oriented and practical programming in one succinct. Certain static kinds of Scala help us dodge bugs in complex applications; moreover, its JVM, and JavaScript runtimes let us manufacture elite frameworks with simple admittance to colossal biological systems libraries. In the field of software, Scala is a very unique and multidimensional language. To learn Scala programming is not an easy job for someone new to this field, and therefore, a perfect set of Scala books is inevitably important for accurate guidance.

  • Comparing a new language for tiny machines

    Upstream seemed surprised that I was writing real programs in Cowgol, so I'm led to believe I might be the only one using the language. But that's fine. Let's write a simple program in C and in Cowgol so that we can compare them. Even if you're not going to use Cowgol, comparing programming languages I find to be a fun exercise and it might help you think about your own language choices, no matter what languages you choose to use.

  • Perl Weekly Challenge 87: Longest Consecutive Sequences and Largest Rectangle

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

Announcing Rust 1.48.0

Filed under
Development
Moz/FF

The Rust team is happy to announce a new version of Rust, 1.48.0. Rust is a programming language that is empowering everyone to build reliable and efficient software.

If you have a previous version of Rust installed via rustup, getting Rust 1.48.0 is as easy as...

Read more

Also: Rust 1.48.0 released

Syndicate content

More in Tux Machines