Coding tools news 2022

Here is a post where I post information on new and interesting coding tools on the comments.

764 Comments

  1. Tomi Engdahl says:

    Compare PDFs Visually
    https://hackaday.com/2022/08/06/compare-pdfs-visually/

    Sometimes a problem seems hard, but the right insight can make it easy. If you were asked to write a program to compare two PDF files and show the differences, how hard do you think that would be? If you are [serhack], you’ll make it much easier than you might guess.

    Of course, sometimes making something simple depends on making simplifying assumptions. If you are expecting a “diff-like” utility that shows insertion and deletions, that’s not what’s going on here. Instead, you’ll see an image of the PDF with changes highlighted with a red box. This is easy because the program uses available utilities to render the PDFs as images and then simply compares pixels in the resulting images, drawing red boxes over the parts that don’t match.

    https://github.com/serhack/pdf-diff

    Reply
  2. Tomi Engdahl says:

    The best thing we can do today to JavaScript is to retire it,’ says JSON creator Douglas Crockford
    By Tim Anderson -August 4, 2022
    https://devclass.com/2022/08/04/retire_javascript_says-json-creator-douglas-crockford/

    Crockford made this assertion in an interview last month:

    “The best thing we can do today to JavaScript is to retire it. Twenty years ago, I was one of the few advocates for JavaScript. Its cobbling together of nested functions and dynamic objects was brilliant. I spent a decade trying to correct its flaws. I had a minor success with ES5. But since then, there has been strong interest in further bloating the language instead of making it better. So JavaScript, like the other dinosaur languages, has become a barrier to progress. We should be focused on the next language, which should look more like E than like JavaScript.”

    JavaScript is the world’s most popular programming language according to most surveys
    According to a StackOverflow survey earlier this year, JavaScript is used by over 65% of developers, way ahead of second placed Python at 48 percent (ignoring HTML, CSS and SQL which are not general purpose languages). It is an unlikely achievement considering its origins.

    Brendan Eich invented the language for Netscape in 1995, apparently in just 10 days. “In May I did 10 days of hard work, I didn’t sleep much,” Eich told the dot.JS conference in 2018.

    Eich called the work “a rush job” but also said that “I knew there would be mistakes, there would be gaps, so I made it very malleable as a language. That has enabled web developers to make it be what they want it to be.”

    Why has JavaScript been such a wild success?

    There are multiple reasons, including Eich’s foresight, ease of learning, and tolerance of code that would be mistakes in many languages, like comparing strings to numbers and getting a common-sense result – though Eich later called this “a big regret, because that breaks an important mathematical property.”

    Another big factor is that Google’s determination to make browser-based applications competitive with the desktop gave the world the V8 engine (2008), which along with Mozilla’s SpiderMonkey and Apple’s JavaScript Core gave the language amazing JIT-compiled performance. In 2009, Ryan Dahl came up with Node.js, enabling V8 to run outside the browser. Dahl had server applications in mind, but today Node.js and NPM (Node Package Manager) are also essential to the development process for most web applications.

    Development process? Part of the problem referenced by Crockford is that along with increased capability JavaScript has acquired lots of complexity, and a typical application today includes a build process using WebPack, Rollup or some other bundler, a long way from Eich’s original concept.

    Reply
  3. Tomi Engdahl says:

    Should we call Rust a Failed Programming Language?
    Rust has been ranked as the most liked language by its users for two years in surveys but programmers say otherwise
    https://analyticsindiamag.com/should-we-call-rust-a-failed-programming-language/

    Reply
  4. Tomi Engdahl says:

    GOOGLE’S CARBON CAN DO WHAT RUST CAN’T! OUTPERFORMING C++ IN PROGRAMMING
    https://www.analyticsinsight.net/googles-carbon-can-do-what-rust-cant-outperforming-c-in-programming/

    The latest programming language of Google, named Carbon will bring back the glory days of C++
    Google Principal Software Engineer Chandler Carruth introduced Carbon this week at the “CPP North” C++ conference in Toronto. The purpose of this new work-in-progress programming language is to convert the C++ codebases in a better way than Rust. According to experts, Rust doesn’t have the same bi-directional interoperability as other tools, which introduces a type of language barrier when translating between different programming languages.

    Now, What makes Carbon Better than Others?
    What makes Carbon better suitable than Rust is its introducer keywords and simple grammar. Carbon’s unction input parameters are read-only values and the pointers provide indirect access & mutation. The writer can use expressions to name types and the package is the root namespace. The user can also import APIs through their package name. For Carbon, the explicit object parameter declares a method and it has a single inheritance. There are further benefits that extend beyond Carbon’s language, including ethical motives like the accessibility and inclusivity of the project’s culture.

    Reply
  5. Tomi Engdahl says:

    Microsoft + Canonical Announce Native .NET 6 For Ubuntu 22.04 LTS
    https://www.phoronix.com/news/Ubuntu-22.04-LTS-dotNET-6

    Reply
  6. Tomi Engdahl says:

    Machine learning, concluded: Did the “no-code” tools beat manual analysis?
    In the finale of our experiment, we look at how the low/no-code tools performed.
    https://arstechnica.com/information-technology/2022/08/no-code-wrapped-our-ml-experiment-concludes-but-did-the-machine-win/

    The whole point of this experiment was to see:

    Whether a relative novice could use these tools effectively and accurately
    Whether the tools were more cost-effective than finding someone who knew what the heck they were doing and handing it off to them

    Reply
  7. Tomi Engdahl says:

    GStreamer for your backend services
    https://arunraghavan.net/2022/08/gstreamer-for-your-backend-services/

    Daily is a real time calling platform as a service. One standard feature that users have come to expect in their calls is the ability to record them, or to stream their conversations to a larger audience. This involves mixing together all the audio/video from each participant and then storing it, or streaming it live via YouTube, Twitch, or any other third-party service.

    As you might expect, GStreamer is a good fit for building this kind of functionality, where we consume a bunch of RTP streams, composite/mix them, and then send them out to one or more external services (Amazon’s S3 for recordings and HLS, or a third-party RTMP server).

    Reply
  8. Tomi Engdahl says:

    Microsoft is updating how you build Visual Studio extensions, with new APIs and the ability to run extensions outside of the Visual Studio process.

    https://coderoasis.com/new-visual-studios-extensions/

    Reply
  9. Tomi Engdahl says:

    JavaScript Websites

    Useful or interesting JavaScript websites.

    https://www.hashbangcode.com/category/javascript-websites

    Reply
  10. Tomi Engdahl says:

    https://morioh.com/

    Understanding Any() and All() Functions in Python
    In this tutorial, we’ll be covering the any() and all() functions in Python. The any(iterable) and all(iterable) are built-in functions in Python and have been around since Python 2.5 was released. Both functions are equivalent to writing a series of or and and operators respectively between each of the elements of the passed iterable. They are both convenience functions that shorten the code by replacing boilerplate loops.

    Reply
  11. Tomi Engdahl says:

    Alustariippumattomuus tuo useita etuja asiakkaille sekä tekijöille
    Alustariippumattomuus mahdollistaa parhaan työkalun valinnan sekä riskien paremman hallinnan.
    https://trineria.fi/alustariippumattomuus-tuo-useita-etuja-asiakkaille-seka-tekijoille/

    Reply
  12. Tomi Engdahl says:

    Controlling USB devices with Python and libusb @siliconlabs
    https://www.youtube.com/watch?v=xH_y05pIDTo

    Controlling USB devices with Python and libusb @siliconlabs

    Reply
  13. Tomi Engdahl says:

    It-järjestelmien kehittämiseen tarvitaan uusia työkaluja “Pilvenpiirtäjää yritetään rakentaa vasaralla ja lapiolla”
    https://www.tivi.fi/uutiset/tv/d7dccd09-32f2-4753-9679-de9db9d84c43
    Ruotsissa kyberturvallisuuden avainhenkilöihin kuuluva Pontus Johnson peräänkuuluttaa uusia työkaluja, sillä turvallisten it-järjestelmien kehittäminen ei onnistu nykyisillä välineillä. Johnson toimii Tukholman Kuninkaallisen teknillisen korkeakoulun eli KTH:n (Kungliga Tekniska Högskolan) professorina. Tietojärjestelmät vuotavat hänen mukaansa kuin seula ennen kuin uusia välineitä on saatavilla. Ja joudumme elämään asian kanssa.

    Reply
  14. Tomi Engdahl says:

    C23 Programming For Everyone
    https://hackaday.com/2022/09/13/c23-programming-for-everyone/

    Here’s a history quiz: What architecture did the first C++ compiler target? Of course, it is a trick question. The original C++ — known then as C with classes — compiler wrote out standard C code that you then compiled for whatever your target was. This has a lot of advantages since C compilers are everywhere. Now we are seeing a similar approach to bring C23 to the world with Cake. Cake can translate C23 or other versions to C99 which you can then compile with normal compilers.

    Curious about what’s new in C23? Well, some old stuff was removed and even more was deprecated. But the really interesting things are the additions which include decimal floating point types, integers with specified bit size, standard attributes, and many changes involving constants and initialization. You can find a summary over on cppreference.com. Of course, many of these things have been around in C++ or in common extensions for compilers for a long time, but this brings a lot of common practice together in standard C.

    https://en.cppreference.com/w/c/23

    Reply
  15. Tomi Engdahl says:

    While the old C++ compiler, cfront, needed special steps to compile (since it was built using C++), you can build cake for Windows or Linux easily. However, it can also be built with emscripten and you can try it yourself in your web browser.

    http://thradams.com/web3/playground.html

    Cake is compiled with emscripten and it is running in your browser.

    Reply
  16. Tomi Engdahl says:

    Use-after-freedom: MiraclePtr
    https://security.googleblog.com/2022/09/use-after-freedom-miracleptr.html

    Memory safety bugs are the most numerous category of Chrome security issues and we’re continuing to investigate many solutions – both in C++ and in new programming languages. The most common type of memory safety bug is the “use-after-free”. We recently posted about an exciting series of technologies designed to prevent these. Those technologies (collectively, *Scan, pronounced “star scan”) are very powerful but likely require hardware support for sufficient performance.

    Today we’re going to talk about a different approach to solving the same type of bugs.

    Reply
  17. Tomi Engdahl says:

    Your hardware and software tools are probably fine.
    https://www.youtube.com/watch?v=lX0PE0zhXWI

    We do this nasty thing in tech sometimes where we really rip into each other for our hardware and software choices. We “content creators” also have a bad habit of using very aggressive language to get attention. And I don’t like it! Hrmph!

    In today’s “opinion-piece” episode of Veronica Explains, I share my take on this phenomenon, and why I think it’s not a great thing. Maybe I’ll change your mind, and maybe I won’t. That’s how it works!

    Reply
  18. Tomi Engdahl says:

    Control multiple computers at the same time with Barrier
    https://www.youtube.com/watch?v=-KiOMjqykbU

    If you’ve ever needed to control multiple computers on the same desk from a single keyboard and mouse, Barrier is software worth checking out!

    Barrier is a software solution (a fork of Synergy) which replaces unsightly KVM switches, and is super neat! In this video, I’ll install Barrier on four systems (running Pop!_OS, Windows 10, macOS, and GhostBSD), and run them all from the same keyboard and mouse!

    Reply
  19. Tomi Engdahl says:

    Javasta tuli uusi versio – miljoonat koodaajat ajavat vanhoilla
    https://etn.fi/index.php/13-news/14028-javasta-tuli-uusi-versio-miljoonat-koodaajat-ajavat-vanhoilla
    Javasta tuli uusi versio – miljoonat koodaajat ajavat vanhoilla
    Julkaistu: 21.09.2022
    Oracle on esitellyt uuden version Javasta. Java 19 JDK sisältää seitsemän JDK-parannusehdotusta kehittäjien tuottavuuden lisäämiseksi, kielen parantamiseksi ja alustan suorituskyvyn, vakauden ja turvallisuuden parantamiseksi. Useimmat java-koodaajat käyttävät kuitenkin aiempia versioita.
    Java on yksi suosituimpia ohjelmointikieliä. Erilaisissa vertailuissa se sijoittaa aina kärkipäähän. Oracle puhuu ”suosituimmasta teknologiatrendien kielestä”, joka ei tarkoita oikein mitään. Mutta se tiedetään, että maailmalla on 60 miljardia javavirtuaalikonetta.
    Edellisen kerran java-koodaajien käyttämiä versioita tutkittiin alkuvuodesta, Tuolloin kävi ilmi, että suosituin java-versio on Java 11, joka julkistettiin syyskuussa 2018. Sitä käytti 48 prosenttia kehittäjistä. Maaliskuussa 2014 esiteltyyn Java 8:een luotti 46 prosenttia.
    On uusien versioiden käyttöönotto sitten hidasta tai ei, uusia ominaisuuksia Oracle toi tälläkin kertaa.
    JEP 424 tunnetaan taasen projektinimelä Panama ja siinä kehitetään tekniikkaa, jolla Java-ohjelmat kommunikoivat virtuaalikoneiden ulkopuolelle natiivikirjastoilla ja -datalla. JEP 422 yrittää saada javavirtuaalikoneita toimimaan RISC-V-pohjaisilla laitteilla.
    Oracle toimittaa uusia Java Feature -julkaisuja kuuden kuukauden välein ennakoitavan julkaisuaikataulun mukaisesti. Tämä poljinnopeus tarjoaa tasaisen virran innovaatioita samalla kun se parantaa jatkuvasti alustan suorituskykyä, vakautta ja turvallisuutta, mikä auttaa lisäämään Javan leviämistä kaikenkokoisissa organisaatioissa ja toimialoilla.

    Reply
  20. Tomi Engdahl says:

    ”KOO­DIN KIR­JOIT­TA­MI­NEN EI O­LE KI­VAA. SE MI­TÄ SE MAH­DOL­LIS­TAA ON.”
    https://bitwise.fi/uratarinoita/koodin-kirjoittaminen-ei-ole-kivaa-se-mita-se-mahdollistaa-on/

    Reply
  21. Tomi Engdahl says:

    A Spreadsheet For The Python Hacker
    https://hackaday.com/2022/09/23/a-spreadsheet-for-the-python-hacker/

    You can write a Python program or use a Jupyter Notebook to do almost anything. But you can also get a lot of things done quickly using a spreadsheet. Grist is a “hacker’s” spreadsheet that merges these worlds. It looks like a spreadsheet, but underneath are SQLite tables and the formula language is Python.

    The code is open source and if you want it hosted, there are free and paid plans. You can even try it out without even logging in and either start with a blank screen or use a template. You can see an introductory video below.

    https://www.getgrist.com/

    Reply
  22. Tomi Engdahl says:

    What is the Live approach to software development?
    https://www.innofour.com/polarion-campaign-landing-pages/what-is-the-live-approach-to-software-development/

    When it comes to software development, there’s more than one way to finish a project quickly and efficiently while meeting all the necessary requirements.

    Software development methods have changed just as much as the software itself has changed, and as a result, the tools used have evolved and changed, too.

    Siemens Digital Industries Software developed the Live approach as a part of that natural evolution.

    The Live approach is a set of six guidelines introducing a new philosophy to managing software development artifacts and development-related information.

    The first four guidelines relate to the information model and storage and the final two relate to how information is accessed and shared.

    Reply
  23. Tomi Engdahl says:

    Is it time to retire C and C++ for Rust in new programs?
    Mark Russinovich, Microsoft Azure CTO, thinks so
    https://www.theregister.com/2022/09/28/is_it_time_to_retire_c/

    Reply
  24. Tomi Engdahl says:

    Write clean code for Communities, and obfuscated code for CEOs.

    Reply
  25. Tomi Engdahl says:

    Design systemin avulla et joudu keksimään pyörää uudestaan
    https://we.knowit.fi/experience-fi/design-systemin-avulla-et-joudu-keksim%C3%A4%C3%A4n-py%C3%B6r%C3%A4%C3%A4-uudestaan

    Jos olet ollut mukana laajemmissa digiprojekteissa, olet todennäköisesti törmännyt siihen, että samankaltaiseen tarkoitukseen on ajan saatossa tehty useita toisistaan hieman poikkeavia toteutuksia. Design systemin avulla varmistat, että pyörää ei keksitä uudestaan ja nopeutat kehitystyötä.

    Reply
  26. Tomi Engdahl says:

    GitHub Copi­lot investigation – Maybe you don’t mind if GitHub Copi­lot used your open-source code without asking. But how will you feel if Copi­lot erases your open-source community? What do you think?
    https://githubcopilotinvestigation.com

    Reply
  27. Tomi Engdahl says:

    Using Google Calendar For Machines To Keep Track Of Human Days
    https://hackaday.com/2022/10/25/using-google-calendar-for-machines-to-keep-track-of-human-days/

    Daily triggers for automation are simple in theory, unless it needs to keep track of the calendar that humans actually live by. Seasonal changes, shifting public holidays, or just being on vacation are all exceptions you may need to account for. [Jeremy Rode] likes using Google Calendar to stay on top of events, so he created CalendarScraper, a simple script to make his machines use it too.

    Jeremy needed a timer for his spa heater that would reduce costs by only switching it on when his local time-of-use-based electricity rates were favorable. The rates varied based on the time of day, day of the week, and even seasons and public holidays. Instead of trying to set up everything manually in a cron job, he created a short and easy-to-modify JavaScript script to keep track of events on a Google Calendar.

    CalendarScraper: Perform Time-Based Action via Scraping a Google Calendar
    https://github.com/jeremyrode/CalendarScraper

    Handling time and date-based events sucks. Calendars are complicated and change, daylight savings time comes and goes. Originally, I was developing an app to schedule my spa heater around time-of-use (TOU) electric rates. The TOU rates change with season, on weekends and holidays. At first, I was using the cron daemon, but it was a real pain to make exceptions or change anything.

    I was thinking that the only interface I’ve ever liked is Google Calendar; so why not just use Google Calendar? So here it is, less than 100 lines of Node.js that scrapes a Google calendar and translates the calendar events into Javascript setTimeout(). Gets the function call down to <.01 s on a Raspberry Pi W2.

    Reply
  28. Tomi Engdahl says:

    Low-code kiinnostaa – Suomessa alkaa koodaajien koulutus
    https://etn.fi/index.php/13-news/14149-low-code-kiinnostaa-suomessa-alkaa-koodaajien-koulutus

    Ohjelmistokehitys on useimmilla aloilla tuottavuuden suurin pullonkaula. Sitä yritetään helpottaa vähäkoodisilla eli ns. low-code tai jopa no-code-alustoilla. Vähäkoodisen ohjelmoinnin suosio kasvaa nyt sitä vauhtia, että amerikkalainen OutSystems aloittaa koulutuksen, jolla osaajapulaa yritetään helpottaa.

    Pula ohjelmoijista on todellinen, ja sen vaikutukset näkyvät tuottavuusongelmina ympäri Suomen. Yksi ratkaisu osaajapulaan on vähäkoodiset ohjelmointityökalut, jotka helpottavat it-alalle siirtymistä, mutta tehostavat merkittävästi myös senior-ohjelmoijien työtä. OutSystems alkaa siksi nyt itse kouluttaa senior-ohjelmoijista OutSystemsin automatisoituneiden ohjelmistotyökalujen ammattilaisia.

    Koulutuksen vetäjänä toimii OutSystemsin ratkaisuarkkitehti Henry Amberg (kuvassa). Hänen mukaansa kiinnostuneita on ilmoittautunut koulutuksiin mukaan hyvin. – Kiinnostus vähäkoodista kehitystä kohtaan on selvässä nousussa. Low-code auttaa kuromaan osaajavajetta tehokkaasti umpeen ja osa mukana varmasti ihan uteliaisuuttaankin

    Low-code -työkaluja myytiin vuonna 2020 noin 10,8 miljardilla dollarilla ja markkinoiden odotetaan kasvavan vuoteen 2028 mennessä 94,75 miljardiin dollariin. Tutkimusyhtiö Gartner arvioi, että vuoteen 2025 mennessä 70 % yritysten uusista sovelluksista hyödyntää low-codea.

    Reply
  29. Tomi Engdahl says:

    It’s hard to learn, but your code will produce fewer nasty surprises

    WHY FUNCTIONAL PROGRAMMING SHOULD BE THE FUTURE OF SOFTWARE DEVELOPMENT
    It’s hard to learn, but your code will produce fewer nasty surprises
    https://spectrum.ieee.org/functional-programming?share_id=7260933&socialux=facebook&utm_campaign=RebelMouse&utm_content=IEEE+Spectrum&utm_medium=social&utm_source=facebook

    YOU’D EXPECT the longest and most costly phase in the life cycle of a software product to be the initial development of the system, when all those great features are first imagined and then created. In fact, the hardest part comes later, during the maintenance phase. That’s when programmers pay the price for the shortcuts they took during development.

    So why did they take shortcuts? Maybe they didn’t realize that they were cutting any corners.

    The struggle that most companies have maintaining code causes a second problem: fragility. Every new feature that gets added to the code increases its complexity, which then increases the chance that something will break. It’s common for software to grow so complex that the developers avoid changing it more than is absolutely necessary for fear of breaking something. In many companies, whole teams of developers are employed not to develop anything new but just to keep existing systems going.

    You might say that they run a software version of the Red Queen’s race, running as fast as they can just to stay in the same place.

    It’s a sorry situation. Yet the current trajectory of the software industry is toward increasing complexity, longer product-development times, and greater fragility of production systems. To address such issues, companies usually just throw more people at the problem: more developers, more testers, and more technicians who intervene when systems fail.

    With functional programming, less is more
    A good way to understand the rationale for functional programming is by considering something that happened more than a half century ago. In the late 1960s, a programming paradigm emerged that aimed to improve the quality of code while reducing the development time needed. It was called structured programming.

    Nullifying problems with null references
    In designing hardware for a computer, you can’t have a resistor shared by, say, both the keyboard and the monitor’s circuitry. But programmers do this kind of sharing all the time in their software. It’s called shared global state: Variables are owned by no one process but can be changed by any number of processes, even simultaneously.

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

*

*