Language Selection

English French German Italian Portuguese Spanish

Development

10+ Best Python IDEs for Linux

Filed under
Development
GNU
Linux

Python programming language is applied in so many areas of computer technology, i.e., Scripting, GUI development, Website development, Artificial Intelligence (AI), Machine Learning, Data Science, Computer Networking, and Network Automation, and Cyber Security.

We have many integrated development environment Python IDEs’ in the market today. All have different qualities and features. For example, some specifically run on Linux systems. Others are Windows-based, while others are cross-platform and can run on both Operating Systems. In this post, we are going to look at Python IDEs’ for Linux systems.

Read more

Redily a modern, fully featured Redis Client

Filed under
Development
Server

Software developer Stefano Arnone is currently in the process of creating a modern, fully featured Redis Client, which he has made available via Kickstarter, to raise the funds needed to help develop the software. Some of the features and improvements Arnone wants to add include:

– Monitoring tools
– Lazy key value loading
– Local unix socket connections
– Keyboard shortcuts
– Real-time key sorting
– Support for streams
– Support for binary strings
– Bulk operations on keys
– Improving the tree-view
– Improving the overall design of the app
– Improving the website especially the documentation section

Read more

Also: Excellent Free Tutorials to Learn SQL

GCC 9.3 Released

Filed under
Development
GNU

The GNU Compiler Collection version 9.3 has been released.

GCC 9.3 is a bug-fix release from the GCC 9 branch
containing important fixes for regressions and serious bugs in
GCC 9.2 with more than 157 bugs fixed since the previous release.
This release is available from the FTP servers listed at:

  http://www.gnu.org/order/ftp.html

Please do not contact me directly regarding questions or comments
about this release.  Instead, use the resources available from
http://gcc.gnu.org.

As always, a vast number of people contributed to this GCC release
-- far too many to thank them individually!

Read more

Also: GCC 9.3 Compiler Released With Over 150 Bug Fixes

Python: Django, EuroPython 2020, PyCon 2020 and More

Filed under
Development
  • New governance model for the Django project

    For some time now, a proposal to change the governance of the Django open-source project has been under discussion and refinement. It was written up as a Django Enhancement Proposal (DEP), and numbered as DEP 10.

    Changing the governance of the Django project is not something to do lightly, and not something that could be done lightly. It required the agreement of the Django core team, the Django Technical Board, and the Board of Directors of the Django Software Foundation. All of those groups have now held their deliberations, and voted to accept DEP 10.

    In the coming weeks, implementation of DEP 10 will start in earnest, but today it's worth giving a quick summary of what's changing and why. For the full details you can also read the DEP (though keep in mind it's a governance document that tries to be as precise as possible and cover a lot of potential edge cases, and so is a bit long-winded and dry).

  • EuroPython 2020 and COVID-19

    As you probably already know, the Coronavirus is spreading throughout Europe and we wanted to give you an update on our current plans around on the situation.
    We will update this blog post as new information becomes available.

  • March 12 Update on COVID-19

    With a month until PyCon US 2020’s scheduled start, the #EuroPython 2020 and #COVID19 : "As you probably already know, the Coronavirus is spreading throughout Europe and we wanted to give you an update on our current plans around on the situation." https://blog.europython.eu/post/612393987829039104/europython-2020-and-covid-19

    Software Foundation Board and Staff are working through our options for PyCon US 2020, and will keep you updated as decisions are made.

    In the meantime, remember that PyCon US will refund any tickets with no questions asked. You do not need to commit to travel to PyCon US at this point in time if you do not want to.

  • Quansight Labs Blog: uarray: GSoC Participation

    I'm pleased to announce that uarray is participating in GSoC '20 as a sub-organization under the umbrella of the Python Software Foundation. Our ideas page is up here, go take a look and see if you (or someone you know) is interested in participating, either as a student or as a mentor.

  • Progress bars with Rich

    If you haven't seen my earlier posts on the subject, Rich is a terminal rendering framework for Python. It lets you render styled text and a whole bunch of other things (markdown, syntax, tables, tracebacks, etc.) to the terminal.

    This latest addition to the lib renders progress bars with additional information such as percentage completed, time remaining, data transfer speed etc. It's highly configurable, so you can customize it to show whatever information you like. And since it's implemented as a Rich renderable, you can easily add color and formatting.

Programming Leftovers

Filed under
Development
  • Botond Ballo: Trip Report: C++ Standards Meeting in Prague, February 2020

    A few weeks ago I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in Prague, Czech Republic. This was the first committee meeting in 2020; you can find my reports on 2019’s meetings here (November 2019, Belfast), here (July 2019, Cologne), and here (February 2019, Kona), and previous ones linked from those. These reports, particularly the Belfast one, provide useful context for this post.

    This meeting once again broke attendance records, with about ~250 people present. It also broke the record for the number of national standards bodies being physically represented at a meeting, with reps from Austria and Israel joining us for the first time.

    The Prague meeting wrapped up the C++20 standardization cycle as far as technical work is concerned. The highest-priority work item for all relevant subgroups was to continue addressing any remaining comments on the C++20 Committee Draft, a feature-complete C++20 draft that was circulated for feedback in July 2019 and received several hundred comments from national standards bodies (“NB comments”). Many comments had been addressed already at the previous meeting in Belfast, and the committee dealt with the remaining ones at this meeting.

    The next step procedurally is for the committee to put out a revised draft called the Draft International Standard (DIS) which includes the resolutions of any NB comments. This draft, which was approved at the end of the meeting, is a technically complete draft of C++20. It will undergo a further ballot by the national bodies, which is widely expected to pass, and the official standard revision will be published by the end of the year. That will make C++20 the third standard revision to ship on time as per the committee’s 3-year release schedule.

    I’m happy to report that once again, no major features were pulled from C++20 as part of the comment resolution process, so C++20 will go ahead and ship with all the major features (including modules, concepts, coroutines, and library goodies like ranges, date handling and text formatting) that were present in the Committee Draft. Thanks to this complement of important and long-anticipated features, C++20 is widely viewed by the community as the language’s most significant release since C++11.

  • The costs of continuous integration

    By most accounts, the freedesktop.org (fd.o) GitLab instance has been a roaring success; lots of projects are using it, including Mesa, Linux kernel graphics drivers, NetworkManager, PipeWire, and many others. In addition, a great deal of continuous-integration (CI) testing is being done on a variety of projects under the fd.o umbrella. That success has come at a price, however. A recent message from the X.Org Foundation, which merged with fd.o in 2019, has made it clear that the current situation is untenable from a financial perspective. Given its current resources, X.Org cannot continue covering those costs beyond another few months.

  • Dirk Eddelbuettel: AsioHeaders 1.12.2-1

    An updated minor version of the AsioHeaders package arrived on CRAN today. Asio provides a cross-platform C++ library for network and low-level I/O programming. It is also included in Boost – but requires linking when used as part of Boost. This standalone version of Asio is a header-only C++ library which can be used without linking (just like our BH package with parts of Boost).

    This release corresponds to a minor upstream update, and is only the second update ever. It may help overcome one santizer warning which David Hall brought to my attention. We tested this version against all reverse depends (which was easy enough as there are only three).The NEWS entry follows.

  • Python time-zone handling

    Handling time zones is a pretty messy affair overall, but language runtimes may have even bigger problems. As a recent discussion on the Python discussion forum shows, there are considerations beyond those that an operating system or distribution needs to handle. Adding support for the IANA time zone database to the Python standard library, which would allow using names like "America/Mazatlan" to designate time zones, is more complicated than one might think—especially for a language trying to support multiple platforms.

    It may come as a surprise to some that Python has no support in the standard library for getting time-zone information from the IANA database (also known as the Olson database after its founder). The datetime module in the standard library has the idea of a "time zone" but populating an instance from the database is typically done using one of two modules from the Python Package Index (PyPI): pytz or dateutil. Paul Ganssle is the maintainer of dateutil and a contributor to datetime; he has put out a draft Python Enhancement Proposal (PEP) to add IANA database support as a new standard library module.

    Ganssle gave a presentation at the 2019 Python Language Summit about the problem. On February 25, he posted a draft of PEP 615 ("Support for the IANA Time Zone Database in the Standard Library"). The original posted version of the PEP can be found in the PEPs GitHub repository. The datetime.tzinfo abstract base class provides ways "to implement arbitrarily complex time zone rules", but he has observed that users want to work with three time-zone types: fixed offsets from UTC, the system time zone, and IANA time zones. The standard library supports the first type with datetime.timezone objects, and the second to a certain extent, but does not support IANA time zones at all.

  • Anaconda Individual Edition 2020.02: New Name, Exciting Features

    We are pleased to announce the release of Anaconda Individual Edition (formerly Anaconda Distribution) 2020.02! There are some exciting new features in this release, but first we’ll touch on the name change. Recently, we added a new product to our suite, Anaconda Team Edition, for package management at the enterprise level. We also have Anaconda Enterprise Edition, a full-featured machine learning platform. With these products, it seemed like the natural thing to do to change the name of Anaconda Distribution to Anaconda Individual Edition, to reflect that Anaconda Distribution has always been designed and optimized for individual use.

Python Programming Leftovers

Filed under
Development
  • Wing Tips: Goto-Definition From the Interactive Shells in Wing Pro

    In this Wing Tip we'll take a quick look at a lesser-known but often useful feature in Wing Pro: Jumping from symbols in the integrated shells to their point of definition in source code. This makes it a snap to bridge from runtime symbols to the source code where they are actually defined and used.

  • Using the Python defaultdict Type for Handling Missing Keys

    A common problem that you can face when working with Python dictionaries is to try to access or modify keys that don’t exist in the dictionary. This will raise a KeyError and break up your code execution. To handle these kinds of situations, the standard library provides the Python defaultdict type, a dictionary-like class that’s available for you in collections.

    The Python defaultdict type behaves almost exactly like a regular Python dictionary, but if you try to access or modify a missing key, then defaultdict will automatically create the key and generate a default value for it. This makes defaultdict a valuable option for handling missing keys in dictionaries.

  • Private Methods in Python

    Let me preface this article by emphasizing that understanding object-oriented programming (OOP) is crucial if you want to learn Python.

    One aspect of OOP is to learn how to define and use private methods.

    In this article, I will teach you how to create private methods, when to use them, and why they are necessary.

  • Planned architectural work for PyData/Sparse

    A lot of behind the scenes work has been taking place on PyData/Sparse. Not so much in terms of code, more in terms of research and community/team building. I've more-or-less decided to use the structure and the research behind the Tensor Algebra Compiler, the work of Fredrik Kjolstad and his collaborators at MIT.

GNU Debugger and Assembler

Filed under
Development
GNU
  • Debugging Gdb Using rr: Ptrace Emulation

    Someone tried using rr to debug gdb and reported an rr issue because it didn't work. With some effort I was able to fix a couple of bugs and get it working for simple cases. Using improved debuggers to improve debuggers feels good!

    The main problem when running gdb under rr is the need to emulate ptrace. We had the same problem when we wanted to debug rr replay under rr. In Linux a process can only have a single ptracer. rr needs to ptrace all the processes it's recording — in this case gdb and the process(es) it's debugging. Gdb needs to ptrace the process(es) it's debugging, but they can't be ptraced by both gdb and rr. rr circumvents the problem by emulating ptrace: gdb doesn't really ptrace its debuggees, as far as the kernel is concerned, but instead rr emulates gdb's ptrace calls. (I think in principle any ptrace user, e.g. gdb or strace, could support nested ptracing in this way, although it's a lot of work so I'm not surprised they don't.)

    Most of the ptrace machinery that gdb needs already worked in rr, and we have quite a few ptrace tests to prove it. All I had to do to get gdb working for simple cases was to fix a couple of corner-case bugs. rr has to synthesize SIGCHLD signals sent to the emulated ptracer; these signals weren't interacting properly with sigsuspend. For some reason gdb spawns a ptraced process, then kills it with SIGKILL and waits for it to exit; that wait has to be emulated by rr because in Linux regular "wait" syscalls can only wait for a non-child process if the waiter is ptracing the target process, and under rr gdb is not really the ptracer, so the native wait doesn't work. We already had logic for that, but it wasn't working for process exits triggered by signals, so I had to rework that, which was actually pretty hard (see the rr issue for horrible details).

  • GNU Assembler Adds New Options For Mitigating Load Value Injection Attack

    Yesterday the Load Value Injection (LVI) vulnerability was disclosed by Intel and researchers and affecting newer Intel CPUs with SGX and requiring mitigations outside of all the speculative execution mitigations the past two years. The GNU Assembler patches adding new options for mitigation have now been merged to Git master.

    As outlined yesterday, the LVI mitigations noted by the researchers would be inserting LFENCE barriers before every vulnerable load instruction. That amounts to what has been merged today for the GNU Assembler (Gas), but it's not enabled by default and there is control over where the lfence barriers should be inserted.

Programming Leftovers

Filed under
Development
  • What you need to know about variables in Emacs

    If you're new to Emacs, visit Sacha Chua's excellent list of resources for Emacs beginners. This article assumes you're familiar with common Emacs terminology and that you know how to read and evaluate basic snippets of Elisp code. Ideally, you should also have heard of variable scope and how it works in another programming language. The examples also assume you use a fairly recent Emacs version (v.25 or later).

    The Elisp manual includes everything there is to know, but it is written for people who already know what they are looking for (and it is really great for that). But many people want resources that explain Elisp concepts at a higher level and reduce the amount of information to the most useful bits. This article is my attempt to respond to that—to give readers a good grasp of the basics so they can use them for their configuration and make it easier for people to look up some detail in the manual.

  • PMD – Source code analyzer to find programming flaws

    Writing code has never been an easy task. Most of the applications in the market have hundreds of lines of code. An example is one of the most popular games, Minecraft, which has at least 4,815,162,342 lines of code.

    Maintaining this code and ensuring that it is sustainable is not an easy task. Luckily, we have several tools available to help you manage your source code. One of these tools is PMD.

    PMD is an opensource code analyzer that checks for errors in your code and generates a report. It scans your source code and checks for issues and bugs like; dead code, empty statements, open curly braces, declared and unused variables, duplicated code, and naming issues. These are but a few examples.

  • The character that swallowed a week

    In the last few posts we have looked at compiling LibreOffice from scratch using Meson. Contrary to what one might expect it was not particularly difficult, just laborious. The codegen bits (yes, there are several) required some deciphering, but other than that it was fairly straightforward. Unfortunately just compiling source code is not sufficient, as usually one also wants to run the result. Further you'd want the new binaries to behave in the same way as the old ones. This is where things get interesting.

    Trying to run the main LibreOffice application is not particularly useful because it will almost certainly not work. Fortunately LO provides a bunch of sample and test applications one can use. One of these is a demo app that starts, initialises the LO runtime and opens up a GUI window. Perfect. After a build (which takes an hour) and install the binary is ready to run and produces a … segfault. More annoyingly it produces a segfault without any useful information that would aid in debugging.

    Time to take out strace. Several attempts later we discover that LO tries to be dynamic and smart. LO consists of >150 shared libraries. Rather than link all of them together, what seems to be happening is that the code tries to determine where the main executable is, then looks up shared libraries relative to that binary, dlopens them and then goes on its merry way. If this fails it crashes somewhere for some reason I chose not to dig into. This debugging brought up an interesting discovery about naming. One of the libraries is called SAL, so naturally you would expect the actual file to be called libsal.so. This is also what the Makefile defining the library calls it. But that is not its actual name. Instead it is is libsallo.so. Somewhere within the bowels of the 150 000 lines of Make that make (ha) up the system, some (but not all) library names get an lo appended to them. There does not seem to be any logic to which ones, but fine, they can at least be fixed with manual work.

  • 50 Frequently Asked Programming Interview Questions and Answers

    Programming or coding has been occupying the practical world for a long period of time now. Our modern world offers a huge opportunity for those with a computer science background. In fact, people from other sectors, as well, train themselves additionally to enter this world of opportunity. Hence, candidates expecting a decent job of programming should definitely prepare themselves for the upcoming programming interview questions. Here, every interview question requires a smart answer to the board’s smart inquiry. Programming Interview Questions usually include questions of three categories – Data structure, algorithms, and logical questions as well.

SDL Version 2.0.12 is Out

Filed under
Development
Gaming
  • SDL version 2.0.12 (stable)
  • SDL 2, the hugely important cross-platform development library updated to 2.0.12

    SDL 2 (Simple DirectMedia Layer) is the go-to solution for many developers doing cross-platform work, providing an API to hook into audio, keyboard, mouse, joystick, and graphics hardware across various platforms and a big new release is out.

    Lots more gamepads are now supported including: 8BitDo FC30 Pro, 8BitDo M30 GamePad, BDA PS4 Fightpad, HORI Fighting Commander, Hyperkin Duke, Hyperkin X91, MOGA XP5-A Plus, NACON GC-400ES, NVIDIA Controller v01.04, PDP Versus Fighting Pad, Razer Raion Fightpad for PS4, Razer Serval, Stadia Controller, SteelSeries Stratus Duo, Victrix Pro Fight Stick for PS4 and the Xbox One Elite Series 2.

    That is part of why SDL is so awesome, it can make gamepad input so much less of a hassle for developers because it just supports so many of them. If you want a peek into the vast array of input bindings, have a look at this database file.

    With this new release there's also the new functions "SDL_GameControllerTypeForIndex" and "SDL_GameControllerGetType" which allow for developers to easily get the type of gamepad being used and you can override it with "SDL_HINT_GAMECONTROLLERTYPE". Lots more gamepad improvements as well, like functions to get the player index for each pad.

  • SDL 2.0.12 Released For This Important Linux/Cross-Platform Gaming Library

    SDL 2.0.12 is now available as the latest stable update to the Simple DirectMedia Layer that is the library commonly used by cross-platform games as a hardware/software abstraction layer.

    Last week we outlined that SDL 2.0.12 was on the way with initial RISC OS bits, support for the Google Stadia controller and other game controllers, a new video driver for offscreen rendering, ARM NEON optimizations, many bug fixes, and other improvements. On Tuesday night, that stable release happened.

Programming: RenderDoc, Git, Perl, Python, Rust and Bash

Filed under
Development
  • RenderDoc 1.7 Released With Vulkan Improvements, Better D3D12 Capture Performance

    RenderDoc 1.7 is out today for this cross-platform graphics debugging/profiling tool that supports Vulkan, Direct3D, and OpenGL graphics APIs across all major platforms.

    RenderDoc 1.7 comes with Python API changes, improved capture performance for Direct3D 12 programs, better handling of queue ownership transfer barriers in Vulkan, support for Vulkan's KHR_shader_non_semantic_info extension, and dozens of bug fixes across the board. RenderDoc 1.7 also brings a global font scale for better scaling of text within its own user-interface.

  • Git v2.26.0-rc1
    A release candidate Git v2.26.0-rc1 is now available for testing
    at the usual places.  It is comprised of 453 non-merge commits
    since v2.25.0, contributed by 47 people, 10 of which are new faces.
    
    The tarballs are found at:
    
        https://www.kernel.org/pub/software/scm/git/testing/
    
    The following public repositories all have a copy of the
    'v2.26.0-rc1' tag and the 'master' branch that the tag points at:
    
      url = https://kernel.googlesource.com/pub/scm/git/git
      url = git://repo.or.cz/alt-git.git
      url = https://github.com/gitster/git
    
    New contributors whose contributions weren't in v2.25.0 are as follows.
    Welcome to the Git development community!
    
      Abhishek Kumar, Benno Evers, Eyal Soha, Harald van Dijk,
      Jacques Bodin-Hullin, Kir Kolyshkin, Lucius Hu, Peter Kaestle,
      Rasmus Jonsson, and Shourya Shukla.
    
    Returning contributors who helped this release are as follows.
    Thanks for your continued support.
    
      Alban Gruin, Alexandr Miloslavskiy, Bert Wesarg, brian
      m. carlson, David Turner, Denton Liu, Derrick Stolee, Elijah
      Newren, Emily Shaffer, Eric Sunshine, Hans Jerry Illikainen,
      Hariom Verma, Heba Waly, Jeff King, Johan Herland, Johannes Berg,
      Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan
      Tan, Junio C Hamano, Kevin Willford, Kyle Meyer, Luke Diamand,
      Martin Ågren, Masaya Suzuki, Matheus Tavares, Matthew Rogers,
      Miriam Rubio, Paolo Bonzini, Philippe Blain, Pranit Bauva,
      Ralf Thielow, René Scharfe, SZEDER Gábor, Tanushree Tumane,
      and Taylor Blau.
    
    
  • Git 2.26-rc1 Released With More Improvements For This Distributed Version Control System

    Git 2.26-rc1 is out this morning as the newest test version of this distributed version control system.

    Highlights of the Git 2.26 series so far as of RC1 consists of:

    - Continued work on improving the Bash/CLI auto-completion for different sub-commands.

  • The Weekly Challenge #051

    I am really enjoying the weekly challenges, specially doing in Raku. The point of blogging is also about sharing my fight with Raku. I hardly write anything about my Perl solution as I don’t see anything new to talk about. Having said that, I still go for Perl first as it is my first love and will remain so rest of my life. Even today, my brain is so tuned to Perl, every ideas come in form and shape of Perl only. I started contributing in the Week #46. I could only find time to do Perl solutions in the Week #46. The following Week #47 was the same as I didn’t get to do Raku. It was the Week #48 when I managed to find time to do both Perl and Raku for the first time. Ever since I have been able to contribute every week in both languages. I would give the credit to the fellow Team PWC member, Ryan Thompson, for helping me with the Perl and Raku reviews.

  • Python 101: Learning About Lists

    Lists are a fundamental data type in the Python programming language. A list is a mutable sequence that is typically a collection of homogeneous items. Mutable means that you can change a list after its creation. You will frequently see lists that contain other lists. These are known as nested lists. You will also see lists that contain all manner of other data types, such as dictionaries, tuples or objects.

  • Statement on Coronavirus

    As you are aware, the Coronavirus (COVID-19) is a topic of frequent and ongoing discussions. We would like to provide an update on our status and policies as well as provide resources for additional information.

    As of today, our event schedule remains as posted on event sites. Any changes or updates will be immediately shared. The NumFOCUS staff and board of directors are closely monitoring the situation and will be following the lead of the WHO, CDC, and state and local governments. Our plan is to weekly reassess information and provide updates as needed.

  • PyDDF Python Spring Sprint 2020

    The following text is in German, since we're announcing a Python sprint in Düsseldorf, Germany.

  • PyCoder’s Weekly: Issue #411 (March 10, 2020)
  • Tryton News: Security Release for issue9108

    With issue9108, the trytond server does not enforce access right on wizard relying on the access right of the model on which it runs.

  • Tryton News: Security Release for issue9089

    With issue9089, the web client does not set noreferrer nor noopener to open external links.

  • Life tables

    I know I'll die, sooner or later, but how many years do I have left?

    There's no answer to that question for me or for anyone else interested in their future, because the future is unknowable. That hasn't stopped demographers and actuaries from calculating life expectancies in years and sometimes making news with their calculations.

    Here in Australia the Government Actuary produces Life Tables every 5 years. The tables are based on enumeration. How many 60-year-old women were there at the last Census? How many 60-y-o women died around the Census time? From those numbers (and others) the Actuary can calculate a current likelihood of dying and an expected number of years before death for 60-y-o women.

    Tallying population and death totals isn't straightforward and adjustments are made to both the current male and female populations at each age, and to the death numbers. The population figures in the latest Life Tables were adjusted from the 2016 Census, and the death figures cover the 3 years 2015-2017.

  • The 2020 RustConf CFP is Now Open!

    The 2020 RustConf Call for Proposals is now open!

    Got something to share about Rust? Want to talk about the experience of learning and using Rust? Want to dive deep into an aspect of the language? Got something different in mind? We want to hear from you! The RustConf 2020 CFP site is now up and accepting proposals.

Syndicate content

More in Tux Machines

LibreOffice 6.4.3 Release Candidate Version 1 Released Today!

LibreOffice 6.4.3 RC1 Released: LibreOffice is one of the best open-source text editors. LibreOffice comes as default application release of Linux OS. LibreOffice is developed by Team Document Foundation. Today they announced that the LibreOffice 6.4.3 RC1 version has been released. As per their calendar, LibreOffice 6.4.3 RC1 has been released exactly on today!. This RC1 version has many bugs fixes and tweaks in essential features. Read more

Unifont 13.0.01 Released

Unifont 13.0.01 is now available. This is a major release. Significant changes in this version include the addition of these new scripts in Unicode 13.0.0: U+10E80..U+10EBF: Yezidi, by Johnnie Weaver U+10FB0..U+10FDF: Chorasmian, by Johnnie Weaver U+11900..U+1195F: Dives Akuru, by David Corbett U+18B00..U+18CFF: Khitan Small Script, by Johnnie Weaver U+1FB00..U+1FBFF: Symbols for Legacy Computing, by Rebecca Bettencourt Read more

Programming: micro.sth, RProtoBuf, Perl and Python

  • Introducing micro.sth

    Many developers turn their noses up at PHP, but I have a soft spot for it. For me, it's the most approachable programming language by far. It feels intuitive in a way no other languages do, and it makes it possible to cobble together a working application with just a handful of lines of code. So whenever I can't find a tool for a specific job, I try to build one myself. The latest project of mine is a case in point. I was looking for a simple application for keeping a photographic diary, and I was sure that I'd be able to find an open-source tool for that. I searched high and low, but I came back empty-handed. Sure, there are plenty of static website generators, but I'd prefer something that doesn't require me to perform the write-generate-upload dance every time I want to post a quick update. And I need something that I can use not only to maintain a simple diary, but also store notes, manage tasks, and draft articles -- all this without getting bogged down by configuring templates, defining categories, and tweaking settings. And because I want most of my content to be private, I should be able to protect access to it with a password.

  • Dirk Eddelbuettel: RProtoBuf 0.4.17: Robustified

    A new release 0.4.17 of RProtoBuf is now on CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol. This release contains small polishes related to the release 0.4.16 which added JSON support for messages, and switched to ByteSizeLong. This release now makes sure JSON functionality is only tested where available (on version 3 of the Protocol Buffers library), and that ByteSizeLong is only called where available (version 3.6.0 or later). Of course, older versions build as before and remain fully supported.

  • Perl Weekly Challenge 53: Rotate Matrix and Vowel Strings

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

  • Weekly Python StackOverflow Report: (ccxxi) stackoverflow python report
  • Python: Is And ==

    In Python, == compares the value of two variables and returns True as long as the values are equal.

today's howtos