Language Selection

English French German Italian Portuguese Spanish

Development

Programming/Development: C++, 'Agile', and Pronghorn, a Java framework

Filed under
Development
  • What's all the C Plus Fuss? Bjarne Stroustrup warns of dangerous future plans for his C++

    Earlier this year, Bjarne Stroustrup, creator of C++, managing director in the technology division of Morgan Stanley, and a visiting professor of computer science at Columbia University in the US, wrote a letter inviting those overseeing the evolution of the programming language to “Remember the Vasa!”

    Easy for a Dane to understand no doubt, but perhaps more of a stretch for those with a few gaps in their knowledge of 17th century Scandinavian history. The Vasa was a Swedish warship, commissioned by King Gustavus Adolphus. It was the most powerful warship in the Baltic Sea from its maiden voyage on the August 10, 1628, until a few minutes later when it sank.

  • Has Agile Programming Lost its Way?

    Programmers are passionate about which development methodology is the best. Is it Agile? Waterfall? Feature Driven Development? Scrum? So everyone took notice when one of the 17 authors of the seminal Agile Manifesto wrote a blog post last month headlined “Developers Should Abandon Agile.”

    Further down in his post, Ron Jeffries made a clear distinction between Manifesto Agile — “the core ideas from the Manifesto, in which I still believe” — and its usurping follower, “Faux Agile” (or, in extreme cases, “Dark Agile”). Jeffries ultimately urged developers to learn useful development methods — including but not limited to Extreme Programming — that are true to the Manifesto’s original principles, while also detaching their thinking from particular methodologies with an Agile name.

  • Write fast apps with Pronghorn, a Java framework

    In 1973, Carl Hewitt had an idea inspired by quantum mechanics. He wanted to develop computing machines that were capable of parallel execution of tasks, communicating with each other seamlessly while containing their own local memory and processors.

    Born was the actor model, and with that, a very simple concept: Everything is an actor. This allows for some great benefits: Separating business and other logic is made vastly easier. Security is easily gained because each core component of your application is separate and independent. Prototyping is accelerated due to the nature of actors and their interconnectivity.

  • Systems Languages: An Experience Report

    Recently, there’s been a lot of turmoil in the systems language community. We have the Rust Evangelism Strikeforce nudging us towards rewriting everything in Rust. We have the C++17 folks who promise the safety and ease of use of modern programming languages with the performance and power of C. And then there’s a long tail of other “systems” programming languages, like Nim, Reason / OCaml, Crystal, Go, and Pony.

    Personally, I’m super excited we’re seeing some interesting work in the programming language theory space. This got me excited to learn more about what’s out there. A lot of the problems I solve are usually solved in C. Recently, Go has begun to encroach on C’s territory. I enjoy C and Go as much as the next person — They’re good languages for getting shit done. Often times, they leave a lot to be desired, and leave me envious of other programmers with tools like Flow, Typescript, and Dialyzer. Coming from developing in Erlang, even with its rudimentary type system, functional programming just came far more easily to me.

"Microsoft may find the developers it just paid so much to reach slipping from its grasp."

Filed under
Development
Microsoft
  • Mixed Reaction
  • After Github purchase, Microsoft remains a relatively untrusted open source player to some
  • What is GitHub?

    GitHub is now the de facto home of open-source software. But Microsoft’s acquisition reignited a debate over the platform’s centrality. Microsoft assures users the service is safe under its stewardship, but many are wary. When Mr Ballmer spoke of developers, he had a specific sort in mind: those using Microsoft’s tools to build projects for Microsoft products. He once called open-source Linux a “cancer”, which would spread uncontrollably. In a sense, his words proved prophetic: today, open-source software is everywhere, from websites to financial markets to self-driving cars. Under Mr Nadella’s leadership, Microsoft has embraced open-source development. In buying GitHub it hopes to gain the trust of developers it once spurned. But some wonder if the change is complete, or if Microsoft will use its newly bought dominance of open-source hosting to push its own products. Alternatives to GitHub—some themselves open-source—wait in the wings. If it is not careful, Microsoft may find the developers it just paid so much to reach slipping from its grasp.

Zapcc Caching C++ Compiler Open-Sourced

Filed under
Development

Remember the Zapcc compiler that focused on lightning fast compiler times? It's now been open-sourced.

Zapcc is the LLVM/Clang-based C++ compiler that we have been covering since 2015 when it began promoting itself as a much faster C++ compiler than Clang itself. Zapcc employs aggressive caching and other techniques in an effort to significantly speed up compile times while being a drop-in replacement to GCC or Clang. Last year Zapcc reached the v1.0 milestone, but we haven't heard much since until finding out this weekend that it's been open-sourced.

Read more

BLUI: An easy way to create game UI

Filed under
Development
Gaming

As part of an indie game development studio, I've experienced the perks of using open source plugins on proprietary game engines. One open source plugin, BLUI by Aaron Shea, has been instrumental in our team's development process. It allows us to create user interface (UI) components using web-based programming like HTML/CSS and JavaScript. We chose to use this open source plugin, even though Unreal Engine (our engine of choice) has a built-in UI editor that achieves a similar purpose. We chose to use open source alternatives for three main reasons: their accessibility, their ease of implementation, and the active, supportive online communities that accompany open source programs.

In Unreal Engine's earliest versions, the only means we had of creating UI in the game was either through the engine's native UI integration, by using Autodesk's Scaleform application, or via a few select subscription-based Unreal integrations spread throughout the Unreal community. In all those cases, the solutions were either incapable of providing a competitive UI solution for indie developers, too expensive for small teams, or exclusively for large-scale teams and AAA developers.

After commercial products and Unreal's native integration failed us, we looked to the indie community for solutions. There we discovered BLUI. It not only integrates with Unreal Engine seamlessly but also maintains a robust and active community that frequently pushes updates and ensures the documentation is easily accessible for indie developers. BLUI gives developers the ability to import HTML files into the Unreal Engine and program them even further while inside the program. This allows UI created through web languages to integrate with the game's code, assets, and other elements with the full power of HTML, CSS, JavaScript, and other web languages. It also provides full support for the open source Chromium Embedded Framework.

Read more

Also: Why (some) agile teams fail

Mesa Graphics in Linux

Filed under
Development
Graphics/Benchmarks
Linux
  • Mesa Rolls Out Support For ARB_sample_locations

    Mesa has been plumbed in to support the ARB_sample_locations OpenGL extension and is now exposed with the Nouveau NVC0 Gallium3D driver.

    ARB_sample_locations was part of the "OpenGL 2015" update but hasn't made it into a released version of OpenGL, hence why it wasn't a priority for Mesa developers. But now it's been wired up within core Mesa and is currently flipped on for NVC0 in Mesa 18.2-devel.

  • Mesa's VirGL For OpenGL Within VMs Now Supports Tessellation Shaders

    It was just days ago that the VirGL driver stack -- which is used for supporting OpenGL hardware acceleration within guest VMs that is passed onto the host's driver -- picked up FP64 support while now its latest addition is ARB_tessellation_shader support.

    With the latest Mesa Git and the VirGL renderer library code is updated (as well as your host OpenGL driver supporting GL4), there is now support for tessellation shaders. The support has landed in Mesa 18.2 Git for this popular OpenGL 4.0 feature.

Programming With Python (LWN)

Filed under
Development
  • Unplugging old batteries

    Python is famous for being a "batteries included" language—its standard library provides a versatile set of modules with the language—but there may be times when some of those batteries have reached their end of life. At the 2018 Python Language Summit, Christian Heimes wanted to suggest a few batteries that may have outlived their usefulness and to discuss how the process of retiring standard library modules should work.

    The "batteries included" phrase for Python came from the now-withdrawn PEP 206 in 2006. That PEP argued that having a rich standard library was an advantage for the language since users did not need to download lots of other modules to get real work done. That argument still holds, but there are some modules that are showing their age and should, perhaps, be unplugged and retired from the standard library.

  • Advanced computing with IPython

    If you use Python, there's a good chance you have heard of IPython, which provides an enhanced read-eval-print loop (REPL) for Python. But there is more to IPython than just a more convenient REPL. Today's IPython comes with integrated libraries that turn it into an assistant for several advanced computing tasks. We will look at two of those tasks, using multiple languages and distributed computing, in this article.

    IPython offers convenient access to documentation, integration with matplotlib, persistent history, and many other features that greatly ease interactive work with Python. IPython also comes with a collection of "magic" commands that alter the effect of single lines or blocks of code; for example, you can time your code simply by typing %%time at the prompt before entering your Python statements. All of these features also work when using the Jupyter notebook with the IPython kernel, so you can freely switch between the terminal and the browser-based interface while using the same commands.

Qt and Python

Filed under
Development
  • Qt Contributors’ Summit 2018 wrap-up

    Qt Contributors’ Summit 2018 is over. Two days of presentations and a lot of discussions during presentations, talk of Qt over coffee and lunch and in restaurants in the evening.

  • Qt 6.0 Might Be Coming After Qt 5.14, Could Depend Upon C++17

    Since last year there has been more talk and early planning around the eventual Qt 6.0 milestone. It's looking now like Qt 6.0 might happen after Qt 5.14, or likely in 2020.

    Last year there were developer discussions about starting Qt6 work after Qt 5.11, which was released at the end of May. Previous discussions of Qt6 have entailed QIODevice support, a Qt Quick scene graph, improved accessibility, and a Vulkan back-end for Qt Quick.

  • Qt For Python 5.11 Released As The First Official Build

    The past few months The Qt Company has been overhauled PySide2 as Qt For Python, a big improvement to the Python bindings to the Qt tool-kit. Out today is Qt For Python 5.11 as the first official release under the new branding.

  • Qt for Python 5.11 released

    As the version tag implies, it is based on Qt 5.11 and therefore the first release that supports the Qt 5 series. At large the project will follow the general Qt release schedule and versions. Although this is still a Technical Preview we will support the release with the usual support pattern (except the compatibility one). Unfortunately, earlier versions of Qt than 5.11 are not supported. It is available for open source and commercial Qt for Application Development users. Note that there is only one package for commercial and open source users. We hope we can receive plenty of feedback on what works and what does not. We want to patch early and often.

  • Python 3.7 Release Candidate Arrives, Final Expected At The End Of June

    Python 3.7.0 RC1 is available today as the last step prior to issuing this next feature release of Python 3 at month's end.

    The Python 3.7.0 release candidate was issued today along with the Python 3.6.6 RC1. The current plan is to release both of these new Python versions on 27 June unless some blocker bugs come about that would delay the release.

  • Python 3.7.0rc1

    This release, 3.7.0rc1, is the final planned release preview. Assuming no critical problems are found prior to 2018-06-27, the scheduled release date for 3.7.0, no code changes are planned between this release candidate and the final release.

NSA could have access to data on Microsoft-owned GitHub

Filed under
Development
Microsoft

The NSA could have access to the code repositories residing on GitHub, which is now owned by Microsoft, if past practices of the Redmond-based software giant are any indicator.

Microsoft announced its acquisition of GitHub on 5 June. The company said at the time that GitHub had about 28 million developers working on 80 million repositories. Microsoft has been one of the bigger code contributors to the site.

The reaction from open-source developers to the acquisition was not exactly been salutary as can be seen from comments on Linux Weekly News.

Read more

Programming Leftovers

Filed under
Development
  • This Week in Numbers: Managing JavaScript Packages with NPM and Yarn

    This week we analyze more data from the Node.js Foundation‘s user survey. Almost three-quarters (73 percent) of survey respondents said they use a package manager. NPM was used by 60 percent and Yarn cited by 13 percent. Since Yarn sits on top of NPM, in reality these respondents are referring to an interface or tool they actually use day-to-day. Yarn’s use rose 44 percent compared to last year’s study.

  • RcppZiggurat 0.1.5

    A maintenance release 0.1.5 of RcppZiggurat is now on the CRAN network for R.

  • RcppGSL 0.3.6

    A maintenance update 0.3.6 of RcppGSL is now on CRAN. The RcppGSL package provides an interface from R to the GNU GSL using the Rcpp package.

  • A Gentle Intro to PLT

    Programming Language Theory (PLT) is an extremely rich subject with a relatively high bar to entry. Most of the literature is written for a reader already well versed in the subject; it’s hard to find a tractable introduction. This post will take you through the construction of a simplistic toy programming language (and an interpreter for it) from first principles. I assume no knowledge on your part, aside from general programming experience.

Early PHP 7.3 Performance Benchmarks Are Looking Good

Filed under
Development
Graphics/Benchmarks

Released this week was the first alpha of PHP 7.3 and I decided to take it for a spin with some benchmarks. While not as dramatic as going from PHP5 to PHP 7.0, the performance of PHP7 continues getting better.

PHP 7.3 so far introduces several new functions, finally drops support for BeOS, updates the bundled SQLite version, expands WebP support, improves PHP garbage collection, and other enhancements. PHP 7.3 is tentatively planned for release at the end of November while over the months ahead are more alphas/betas/RCs.

Read more

Syndicate content

More in Tux Machines

Ubuntu 17.10 (Artful Aardvark) Reached End of Life, Upgrade to Ubuntu 18.04 LTS

Released nine months ago on October 19, 2017, Ubuntu 17.10 was dubbed "Artful Aardvark" by Canonical CEO Mark Shuttleworth because it was the first release of the Ubuntu Linux operating system to ship with the GNOME desktop environment instead of Unity on the Desktop edition. To due to the sudden move from Unity to GNOME, Ubuntu 17.10 brought several substantial changes, such as the switch to the next-generation Wayland display server by default instead of X.Org Server, a decision that was reverted with the release of Ubuntu 18.04 LTS (Bionic Beaver), and the discontinuation of the Ubuntu GNOME flavor. Read more

Android Leftovers

How to add Linux to your Chromebook

It's long been possible to run Linux on a Chromebook. That's no surprise. After all, Chrome OS is a Linux variant. But, doing it by using either Crouton in a chroot container or Gallium OS, a Xubuntu Chromebook-specific Linux variant, wasn't easy. Then, Google announced it was bringing a completely integrated Linux desktop to the Chromebook. Today, with a properly-equipped Chromebook and the bravery to run canary code, you can run Debian Linux on your Chromebook. Here's how to do it. This new Chromebook Linux feature is Crostini, the umbrella technology for getting Linux running with Chrome OS. Crostini gets enough Linux running to run KVM, Linux's built-in virtual machine (VM). On top of this, Crostini starts and runs LXC containers. You won't see it, unless you look closely, but it's in those containers that your Debian Linux instances are running. Read more

Linux File Server Guide

Linux file servers play an essential role. The ability to share files is a basic expectation with any modern operating system in the workplace. When using one of the popular Linux distributions, you have a few different file sharing options to choose from. Some of them are simple but not that secure. Others are highly secure, yet require some know-how to set up initially. Once set up on a dedicated machine, you can utilize these file sharing technologies on a dedicated file server. This article will address these technologies and provide some guidance on choosing one option over another. Read more