Language Selection

English French German Italian Portuguese Spanish

Development

Programming: Haskell in 2017 and C++17

Filed under
Development
  • Reflecting on Haskell in 2017

    Alas, another year has come and gone. It feels like just yesterday I was writing the last reflection blog post on my flight back to Boston for Christmas. I’ve spent most of the last year traveling and working in Europe, meeting a lot of new Haskellers and putting a lot of faces to names.

    Haskell has had a great year and 2017 was defined by vast quantities of new code, including 14,000 new Haskell projects on Github . The amount of writing this year was voluminous and my list of interesting work is eight times as large as last year. At least seven new companies came into existence and many existing firms unexpectedly dropped large open source Haskell projects into the public sphere. Driven by a lot of software catastrophes, the intersection of security, software correctness and formal methods have been become quite an active area of investment and research across both industry and academia. It’s really never been an easier and more exciting time to be programming professionally in the world’s most advanced (yet usable) statically typed language.

    Per what I guess is now a tradition, I will write my end of year retrospective on my highlights of what happened in the Haskell scene in retrospect.

  • C++17 Is Now Official

    The final standard of C++17 (formerly known as "C++1z") is now official.

    The final standard of C++17 has been published as ISO/IEC 14882:2017 and has been published on ISO.org.

    C++17 introduces a number of new language features, support for UTF-8 character literals, inline variables, fold expressions, and more. On the C++ standard library side is parallel versions of the STL algorithms, a file-system library derived from Boost, and other additions.

Django 2.0 release

Filed under
Development

These release notes cover the new features, as well as some backwards incompatible changes you’ll want to be aware of when upgrading from Django 1.11 or earlier. We’ve dropped some features that have reached the end of their deprecation cycle, and we’ve begun the deprecation process for some features.

This release starts Django’s use of a loose form of semantic versioning, but there aren’t any major backwards incompatible changes that might be expected of a 2.0 release. Upgrading should be a similar amount of effort as past feature releases.

Read more

Programming/Development: Python, Light Table IDE, Kotlin, PHP and Perl

Filed under
Development
  • NCSA SPIN Intern Daniel Johnson Develops Open Source HPC Python Package

    At the National Center for Supercomputing Applications (NCSA), undergraduate SPIN (Students Pushing INnovation) intern Daniel Johnson joined NCSA’s Gravity Group to study Albert Einstein’s theory of general relativity, specifically numerical relativity. Daniel has used the open source, numerical relativity software, the Einstein Toolkit on the Blue Waters supercomputer to numerically solve Einstein’s general relativity equations to study the collision of black holes, and the emission of gravitational waves from these astrophysical events. During his SPIN internship, Daniel developed an open source, Python package to streamline these numerical analyses in high performance computing (HPC) environments.

  • Light Table – A Next-Generation Open-Source and Customizable IDE

    Light Table is a free, customizable, functional, and open-source IDE with a modern and intuitive User Interface, plugin support, command pane, and connection manager.

    It was created by Chris Granger and Robert Attorri in mostly ClojureScript with the aim of providing developers to write and debug software with ease while getting smart feedback from the IDE and exchanging creative ideas with other users in the Light Table community.

  • Kotlin 1.2 Released: Sharing Code between Platforms

    Today we’re releasing Kotlin 1.2. This is a major new release and a big step on our road towards enabling the use of Kotlin across all components of a modern application.

    In Kotlin 1.1, we officially released the JavaScript target, allowing you to compile Kotlin code to JS and to run it in your browser. In Kotlin 1.2, we’re adding the possibility to reuse code between the JVM and JavaScript. Now you can write the business logic of your application once, and reuse it across all tiers of your application – the backend, the browser frontend and the Android mobile app. We’re also working on libraries to help you reuse more of the code, such as a cross-platform serialization library.

  • PHP 7.2 And Kotlin 1.2 Programming Languages Released

    Kotlin 1.2 Moving to Kotlin–the latest programming language to get official Android support. JetBrains announced Kotlin 1.2 and called it a major release which will let the devs reuse code between JVM and JS.

  • Rcpp now used by 1250 CRAN packages

Programming/Development: Linux Perf, ESR on Languages, GStreamer Rust Bindings, and Python/Pygame

Filed under
Development
  • Update to Linux perf report

    Linux perf is an immensely useful and powerful tool suite for profiling of C/C++ applications.
    I have used it extensively and successfully on various customer projects, both for desktop applications as well as automotive or industrial projects targeting low-end embedded Linux targets running on ARM hardware.

  • The big break in computer languages

    My last post (The long goodbye to C) elicited a comment from a C++ expert I was friends with long ago, recommending C++ as the language to replace C. Which ain’t gonna happen; if that were a viable future, Go and Rust would never have been conceived.

    But my readers deserve more than a bald assertion. So here, for the record, is the story of why I don’t touch C++ any more. This is a launch point for a disquisition on the economics of computer-language design, why some truly unfortunate choices got made and baked into our infrastructure, and how we’re probably going to fix them.

    Along the way I will draw aside the veil from a rather basic mistake that people trying to see into the future of programming languages (including me) have been making since the 1980s. Only very recently do we have the field evidence to notice where we went wrong.

    I think I first picked up C++ because I needed GNU eqn to be able to output MathXML, and eqn was written in C++. That project succeeded. Then I was a senior dev on Battle For Wesnoth for a number of years in the 2000s and got comfortable with the language.

  • GStreamer Rust bindings release 0.9

    About 3 months, a GStreamer Conference and two bug-fix releases have passed now since the GStreamer Rust bindings release 0.8.0. Today version 0.9.0 (and 0.9.1 with a small bugfix to export some forgotten types) with a couple of API improvements and lots of additions and cleanups was released. This new version depends on the new set of releases of the gtk-rs crates (glib/etc).

  • Why Python and Pygame are a great pair for beginning programmers

    Last month, Scott Nesbitt wrote about Mozilla awarding $500K to support open source projects. Phaser, a HTML/JavaScript game platform, was awarded $50,000. I’ve been teaching Phaser to my pre-teen daughter for a year, and it's one of the best and easiest HTML game development platforms to learn. Pygame, however, may be a better choice for beginners. Here's why.

Krita Development and Qt Development

Filed under
Development
KDE
  • Krita Development Sprint 2017

    With all the turmoil the project experienced in 2017 it looked for a while as if we wouldn’t have a face to face meeting this year. But that’s not good for a project working on its fourth major release! We knew we really had to sit together, and finally managed to have a smaller than usual, but very productive, sprint in Deventer, the Netherlands from Thursday 23th to Sunday 26th.

    Not having been together since August 2016, we had an agenda stuffed with a enormous backlog of items. And since we’ve been working on new code for a long time ago, our bug tracker was also slowly dying from elephantiasis of the database.

    Let’s do the bug tracker first: we managed to close over 120 bugs! Not every bug that gets closed gets closed with a fix: the problem is that most bug reports are actually help requests from users, and many of the rest are duplicates, or requests for features that are irrelevant for Krita. Still, while triaging the list of open and unconfirmed bug reports, we managed to fix more than a dozen real bugs.

  • [Krita] Interview with Radian

    I tend to hate any of my artwork if it is more than 1-3 months old but there are a couple of exceptions. The Kiki painting I made for the artbook “Made with Krita” is one of them. I used a bunch of new tricks in here and probably made a few good choices by accident.

  • Porting Applications to Qt

    KDAB has unique experience in porting the code base for toolkits like Qt 3, Qt 4, Motif, Java, Tcl, GTK, .NET, MFC, and Photon to Qt 5. Porting legacy GUI toolkits to Qt 5 is a job where proven experience saves a lot of time.

  • QtVirtualKeyboard on Wayland

    For the last couple of years my focus was on the Osmocom project to bring Free Software to the world of telecommunication. With a group of enthusiasts we have implemented the components necessary to run a complete network using Free Software. The Rhizomatica project is using the software to connecting people that were left behind. Our tools enabled high impact security research leading, leading to improvements to privacy and security for all of us….

    But during the last months I had the opportunity to return to C++ and Qt work and it feels like coming home to the world of ARM powered hardware. When I left, the transition from consumer electronics (e.g. settop boxes) to automative (e.g. IVI) began and it seems it successfully completed! On Friday I explored a regression in OpenSSL and today I had the pleasure to understand input method handling of wayland a little bit better.

    I wanted to see if I can use wayland and run QtVirtualKeyboard only in the Compositor. I couldn’t find answers in the documentation and started to read the code. Once I understood how it should work, I found a simple example in QtWayland. Isn’t Qt wonderful?

Programming/Development: GCC and LLVM/Clang

Filed under
Development
GNU
BSD
  • GCC Lands Cannonlake, Skylake Costs; LLVM/Clang Gets Intel CET

    In addition to the GCC plugin support on Windows/MinGW, there are more compiler happenings this weekend.

    Hitting mainline GCC since that earlier post about the MinGW plugin support is this commit landing the -march=cannonlake target for these next-gen Intel CPUs. It's among the many GCC 8 features and previously covered the Cannonlake enablement while now it's been merged to mainline.

  • LLVM Picks Up 3DNow! Improvements In 2017

    As a flashback to the past, hitting the LLVM Git/SVN code today were improvements for those still running with processors supporting AMD's 3DNow! extensions.

Programming/Development: Django and Google India

Filed under
Development
  • An introduction to the Django ORM

    One of the most powerful features of Django is its Object-Relational Mapper (ORM), which enables you to interact with your database, like you would with SQL. In fact, Django's ORM is just a pythonical way to create SQL to query and manipulate your database and get results in a pythonic fashion. Well, I say just a way, but it's actually really clever engineering that takes advantage of some of the more complex parts of Python to make developers' lives easier.

  • Hey, Coders! Google India Is Offering 130,000 Free Developer Scholarships — Here’s How To Apply
  • Google to prepare 1.3 lakh Indians for emerging technologies

    "The new scholarship programme is in tandem with Google's aim to train two million developers in India. The country is the second largest developer ecosystem in the world and is bound to overtake the US by 2021," William Florance, Developer Products Group and Skilling Lead for India, Google, told reporters here.

Software and Development: CodeBlocks, Cumulonimbus, LibreOffice, devRantron, GCC

Filed under
Development
Software
  • CodeBlocks – A Free & Cross-Platform C, C++ and Fortran IDE

    CodeBlocks is a free and open-source IDE for C, C++ and FORTRAN development. It features a consistent User Interface across all desktop platforms with a class browser, a tabbed interface, and its functions can be extended using plugins.

    It also features keyboard shortcuts, smart indentation, code folding, and a to-do list management panel that different users can use, among others. It is written in C++ and it does not require any interpreted languages or proprietary libraries.

  • Cumulonimbus: Terrible Name, Terrific Podcast Client

    Unlike many other Electron podcast apps I have come across on Github this one is still being developed, is easy to install, and it supports Linux.

  • LibreOffice Calc Is Finally Being Threaded

    While LibreOffice Calc for a while now has been offering OpenCL support for speeding up spreadsheet computations, with not all drivers/GPUs supporting OpenCL, this Microsoft Office alternative is finally receiving proper multi-threading support.

    Collabora developers have landed their initial work on multi-threading / parallelism as they look to speed-up the LibreOffice Calc spreadsheet program's calculations.

  • devRantron – An Unofficial Desktop Client for devRant Programmers

    devRantron is a free, open-source, and cross-platform (unofficial) desktop client for the famous Dev Rant Android and iOS social media application for programmers, developers, and designers.

    Before now, devRant was only accessible on the mobile phones, but now users can post complaints and follow up on rants by developers from all around the globe even while working on their desktops and it’s thanks to a group of friends who concluded that devRant was taking too long to deliver a desktop client.

  • The New Compiler Features & Changes Of GCC 8

    With GCC 8 feature development over and onto bug fixing, here is a look at some of the changes to find with the GCC 8 compiler stack that will be released as stable early next year in the form of GCC 8.1.

Qt 5.9.3 Released

Filed under
Development
KDE

I am pleased to inform that Qt 5.9.3 is released today. As a patch release Qt 5.9.3 does not add any new functionality, focus is in bug fixes and performance improvements.

Compared to Qt 5.9.2, the new Qt 5.9.3 contains over 100 bug fixes and in total more than 500 changes since Qt 5.9.2. For details of the most important changes, please check the Change files of Qt 5.9.3.

Read more

Programming and howtos: Python, Swift and Recipes

Filed under
Development
HowTos
Syndicate content

More in Tux Machines

Graphics: AMD, Mesa, VESA and More

  • AMD Moving Forward In Their RadeonSI Support For ARB_gl_spirv
    AMD open-source developer Nicolai Hähnle has spent the past few months working on the ARB_gl_spirv extension as mandated by OpenGL 4.6. Some of the prep work for supporting that extension has landed in Mesa 17.4-dev Git. ARB_gl_spirv is about bringing SPIR-V support to OpenGL drivers, the IR shared by Vulkan and OpenCL 2.1+. ARB_gl_spirv allows for loading SPIR-V modules into OpenGL programs and allows for GLSL to be a source language in creating SPIR-V modules. This is basically for creating better interoperability between OpenGL and Vulkan/SPIR-V.
  • Mesa Glthread Gets Adds Another Game, AMDGPU Winsys Gets Performance Workaround
    This week has started off to being another busy time in Mesa Git just ahead of the holidays. First up, Mount & Blade: Warband is the latest game to be white-listed by the Mesa glthread functionality for enabling OpenGL threading on this Steam Linux game. Mount & Blade: Warband was actually whitelisted back in July but then disabled a few days later as it turned out not to be working.
  • VESA Rolls Out DisplayHDR As Its Latest Standard
    VESA has rolled out DisplayHDR 1.0 as its newest standard. As implied by the name, the standard is in regards to specifying HDR (High Dynamic Range) quality for displays.
  • VC5 OpenGL & Vulkan Driver Advancing
    Broadcom developer Eric Anholt has offered an update on the state of the VC5 Gallium3D driver for OpenGL support as well as the work being done on the "BCMV" Vulkan driver. Additionally, the VC4 Gallium3D driver for existing Raspberry Pi devices continues to get better.
  • Initial Tessellation Shader Support For RadeonSI NIR
    The RadeonSI Gallium3D driver's NIR back-end is moving one step closer to feature parity with the existing OpenGL capabilities of this AMD GCN graphics driver. Timothy Arceri working for Valve has been focusing on the NIR back-end recently for RadeonSI. This NIR intermediate representation handling is being driven in order to add SPIR-V ingestion support to RadeonSI with code sharing for RADV's existing NIR-based infrastructure.

Games: Rocket League, Ultimate Trivia Challenge, Grass Cutter, Hyper Knights: Battles, Opus Magnum

If You're Ready for Arch, ArchMerge Eases the Way

Newcomer ArchMerge Linux offers a big change for the better to those switching from the Debian Linux lineage to the Arch Linux infrastructure. ArchMerge Linux is a recent spinoff of ArchLabs Linux. I recently reviewed Archlabs and found it to be a step up from most Arch Linux offerings in terms of installation and usability. Arch Linux distros, in general, are notorious for their challenging installation and software management processes. ArchMerge Linux brings a few extra ingredients that make trying it well worth your while if you want to consider migrating to the Arch Linux platform. Still, no Arch Linux distro is a suitable starting point for Linux newcomers. That reality does not change with ArchMerge, although it helps ease the process considerably for those who are ready for it. Read more

today's howtos