Language Selection

English French German Italian Portuguese Spanish

Development

HHVM 3.27 Released

Filed under
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.

Syndicate content

More in Tux Machines

GNOME Desktop: Flatpak and Random Wallpaper Gnome Extension

  • Flatpak in detail, part 2
    The first post in this series looked at runtimes and extensions. Here, we’ll look at how flatpak keeps the applications and runtimes on your system organized, with installations, repositories, branches, commits and deployments.
  • Flatpak – a history
    I’ve been working on Flatpak for almost 4 years now, and 1.0 is getting closer. I think it might be interesting at this point to take a retrospective look at the history of Flatpak.
  • Random Wallpaper Gnome Extension Changes Your Desktop Background With Images From Various Online Sources
    Random Wallpaper is an extension for Gnome Shell that can automatically fetch wallpapers from a multitude of online sources and set it as your desktop background. The automatic wallpaper changer comes with built-in support for downloading wallpapers from unsplash.com, desktopper.co, wallhaven.cc, as well as support for basic JSON APIs or files. The JSON support is in fact my favorite feature in Random Wallpaper. That's because thanks to it and the examples available on the Random Wallpaper GitHub Wiki, one can easily add Chromecast Images, NASA Picture of the day, Bing Picture of the day, and Google Earth View (Google Earth photos from a selection of around 1500 curated locations) as image sources.

today's howtos

KDE: QtPad, Celebrating 10 Years with KDE, GSoC 2018

  • QtPad - Modern Customizable Sticky Note App for Linux
    In this article, we'll focus on how to install and use QtPad on Ubuntu 18.04. Qtpad is a unique and highly customizable sticky note application written in Qt5 and Python3 tailored for Unix systems.
  • Celebrating 10 Years with KDE
    Of course I am using KDE software much longer. My first Linux distribution, SuSE 6.2 (the precursor to openSUSE), came with KDE 1.1.1 and was already released 19 years ago. But this post is not celebrating the years I am using KDE software. Exactly ten years ago, dear Albert committed my first contribution to KDE. A simple patch for a problem that looked obvious to fix, but waiting for someone to actually do the work. Not really understanding the consequences, it marks the start of my journey within the amazing KDE community.
  • GSoC 2018 – Coding Period (May 28th to June 18th): First Evaluation and Progress with LVM VG
    I got some problems during the last weeks of Google Summer of Code which made me deal with some challenges. One of these challenges was caused by a HD physical problem. I haven’t made a backup of some work and had to rework again in some parts of my code. As I already knew how to proceed, it was faster than the first time. I had to understand how the device loading process is made in Calamares to load a preview of the new LVM VG during its creation in Partition Page. I need to list it as a new storage device in this page and deal with the revert process. I’ve implemented some basic fixes and tried to improve it.

Open Hardware: Good for Your Brand, Good for Your Bottom Line

Chip makers are starting to catch on to the advantages of open, however. SiFive has released an entirely open RISC-V development board. Its campaign on the Crowd Supply crowd-funding website very quickly raised more than $140,000 USD. The board itself is hailed as a game-changer in the world of hardware. Developments like these will ensure that it won't be long before the hardware equivalent of LEGO's bricks will soon be as open as the designs built using them. Read more