Software

Spread the love


Looking for software? Jump straight to the software list!

Summary This page, and the downloadable Expansion Packs, provide a collection of best-in-class software tools (mostly free and/or open source) for an effective toolbox on Windows. At the core of this list are tools that can be combined in various ways to automate most non-quantitative tasks: Perl, Python, Notepad++ and Total Commander both with powerful plugins, Shell scripting (bat scripts), and an AI-augmented browser for ChatGPT generated assistance. For quantitative/algorithmic needs, add The R Statistical Platform, Octave (Matrix Platform), AMPL (Optimization Platform). For embedded systems and sensors, add Arduino/C, RealTerm, TinyCAD, and Forth. For sound and image manipulation, add Audacity and Irfan View.

The first part is a short essay followed by the List with hardware first, then software. Feel free to leave your recommendations in the comments section at the bottom of the page.


1. Using your computer as a force-multiplier to provide ‘solutionizing’ capabilities

(4th ed. Jan 2024, 3rd ed. Dec 2019, 2nd ed. Apr 2013, 1st ed. Feb 2010)

“When your vision of what you want to do is what you can do single-handedly, then you should pursue it. The day your vision (what you think needs to be done) is bigger than what you can do single-handedly, then you have to move toward management. The bigger the vision is, the further into management you have to go.” – Richard Hamming, You and Your Research, Talk at Bellcore, 7 Mar 1986, (PDF).

There are two sides to a career building great things. One side is about what you can do yourself, as an army of one. This depends on how extensive is the knowledge you’ve acquired on your journey, how quickly and efficiently you can extend your own capabilities, and how well you can leverage technical skills to deliver high quality results. The other side, no less important, is what you can do with others, at scale. It is about the soft skills which you bring to the table as you collaborate with others. It is about how well you develop and articulate a vision that inspires others to join in tackling challenges. It is about recognizing, attracting, and retaining talent, and creating an environment in which diversity of thought becomes a strength to harness. Both sides are necessary. In today’s high performance hyper-competitive environment, the essential humanity of a team’s approach becomes a key differentiator for those who aspire to build better, more wisely, and more sustainably. While the age of AI will be on the one hand a great leveller for many, it will also be an accelerator for the few who take the opportunity. As with all technology, the requisite curiosity, mental agility, and integrity of purpose will still need to come from you.

When you rely on yourself, your computer, kitted out with best-in-class tools below (many free and open source), has the potential to become your greatest force-multiplier, extending your capabilities and increasing capacity through efficiency and automation (higher output to input ratio).1 Once the problem to be solved is clear, you will typically have three choices: (1) find an existing off-the-shelf package and see whether it works the way you need it to (if it’s well-designed, it may have customization options or the ability to extend its functionality through plugins through an API), (2) write a customized shell script or simple Perl/Python script in which you chain together a series of simple pre-existing modules into a processing pipeline, the output of one step becoming the input of the next, or (3) you could program the required functionality yourself. The last two options are not as hard as often imagined. Option 2 requires skill at ‘software joinery’. Option 3 requires software development skill. All three options require curiousity, the willingness to experiment, and tenacity. Handy tools for ‘software joinery’ are Perl, Python, Ruby, Forth, R (Statistics), Shell scripts. Since October 2023, ChatGPT and other Large Language Models make it easier to engage in Options 2 & 3 (see the ChatGPT section below).2

With software tools that you control yourself, you can become your own R&D army of one. Besides the feeling of liberation this brings, you’ll likely find that your increased abilities also increase your creativity when considering problems and their solutions.3

Recommended approach: master a ‘minimal spanning set’ of tools that can work well together rather than an assortment of standalone packages. For those who have worked on UNIX/Linux systems, this is the underlying perspective that defines the shell environment. Investing time to master your computing tools is investing in yourself. Start by upgrading your toolset against what you already have/know. Each tool in the list provided should be weighed up based on the extent to which it can boost your productivity and increase the power you can bring to bear to tasks at hand, vs. the investment required in cost and time to ramp up your proficiency. With better tools, you will gain three benefits: 1) increasing your self-reliance to be able to proceed without requiring someone else to have created an off-the-shelf package for you to download and consume. 2) the ability to keep things simple and do more with less (simplicity and frugality are essential for success in bootstrapped/self-driven environments); and 3) the ability, in principle, to conceptualize better solutions to more difficult challenges.

“Knowledge and productivity are like compound interest. The more you know, the more you learn; the more you learn, the more you can do; the more you can do, the more the opportunity — it is very much like compound interest.” – Richard Hamming (Applied Mathematician), You and Your Research


2. Computing Platforms: Laptop, OS, Smartphone, Useful Accessories

Windows, Mac, Chromebook, or Linux? In the 2020s, the distinction matters less than it used to in the 90s and 2000s. Hardware capabilities are converging, and software converters, emulators, and virtualization has made it easier to bridge between the different platforms. What is most important is familiarity. If you are already familiar with Windows, stick with it while you strengthen your abilities in whichever direction best fits your goals. The below focuses on Windows.

In the Windows world, PCs fall into roughly 3 disjoint classes by cost: the budget category (sub £500, Pentium, Celeron, Intel i3 series), the medium category (£600-£800, Intel i5 series), and the performance category (£900+, Intel i7). Don’t bother with the budget end as despite the temptation, you will regret it in the long-run: usually the WiFi chip is weak, the peripherals are limited and substandard, RAM memory is constrained so that the OS is already using more than 90% of it, and the camera and microphone are low quality, not worth it in this heavy remote working new world.

In the medium category, you can get a lot for your money as there are almost always some standout examples of premium laptops seeking to gain market share by pricing into the medium category. Example from 2024: Asus Vivobook S15 OLED 15.6″ screen, 16GB RAM, 512GB SSD, Intel Core i5, List £750, Deal £590.4 And equally there are mid-range laptops pricing in the budget range. Example from 2024: Acer Aspire 3 16GB Intel Core i5, 512GB SSD, 15.6″ screen, List £590, Deal £400. Both laptops have plenty of RAM at 16GB RAM, strong/stable WiFi modules, and a big enough screen to be able to work comfortably without a second monitor.

Windows 11 vs. older Windows OS’s. Windows 11 is worth the investment. Clean look and feel. Clear usability. Bad ideas from previous versions have been removed and some genuinely useful new features put in. The ones I’ve found particularly valuable: once click screen screen/sensible app tiling. Others are a secured core PC through Trusted Platform Module, running android apps in Win11, running Android apps on your phone through phone link, running Ubuntu on top of Windows through Windows Subsystem for Linux, and multiple virtual desktops. Windows 11 also heralds the arrival of generative AI on the desktop with Microsoft Co-Pilot. Downsides: when installing as a new PC, you’ll have to sign into a Microsoft account, but you don’t have to do more than this, i.e. you can decline further cloud integration at each step (Edge integration, Browser synch, phone sync, One Drive, 365 trials, Xbox, Ad personalization). (A peek ahead.)5

Windows Subsystem for Linux (WSL). This is one way to get the best of both worlds on a Windows machine. It’s easy to install (one command), installs Ubuntu Linux distribution by default (this can be changed). make sure you have a computer that has at least 16GB RAM and is running Windows 10 or 11. The choice of Ubuntu (initial release 2004) is a good default as it has a huge installed private, public, and commercial installed user base, is a full featured OS including support for embedded systems and cloud computing with OpenStack, and has a stable foundation (Canonical) to ensure continuity of releases, support etc.

2.2 WACOM Pen Tablets For freehand diagrams (sketches, engineering designs, mathematical formulae), this is a highly recommended accessory. Entry price in 2013 was c.£50 (I have gotten years of mileage from my Intuos Small Pen Tablet, model CTL-480/S). Drivers. Read the article on Converting to Digital Pencil (MetaMoji Note).

2.3 SmartPhone
Smartphones today have many thousands of times more computing power built-in (in terms of processor capability, speed and memory) than the computers used to launch the first rockets and satellites of the 1960s, and are more powerful than the average laptops of the early 2000s.

There are currently two primary choices of operating system6: Apple’s iPhone (proprietary) and Google’s Android (open sourced with adoption by a wide array of manufacturers7: Samsung, Motorola, Huawei, Honour, more). Effective computing with smartphones is now largely agnostic to OS/manufacturer: the hardware, features, and much of the software have largely converged, and all mid-grade smartphones are essentially adequate when used effectively.

On iPhone: Settings to take care off8 | Noteworthy Capabilities 9

On Android: Noteworthy Capabilities10


3. Softwares for capability and efficiency

The softwares below extend capability and increase efficiency. Where capability is equal, the preference is for software that is portable followed by software that is free/open source. Where softwares are listed that require a commercial license, there are essential attributes for which I have found no free alternatives offering comparable quality.


    A. Basics: file manager, text editor, desktop search, browser, PDF, content creation/publishing/typesetting, printing, antivirus

  1. Total Commander (TC) by Christian Ghisler. Powerful, extensible two-panel file manager with a host of useful plugins, viewers, and tools. Portable, keyboard operable, fully customizable. Nag-free unlicensed use. Lifetime license with perpetual upgrades, 42 EUR. TC is the Swiss Army Knife of computing. It is typically the first software I install to a computer. See the TC article for more detail and for the freely downloadable Total Commander Expansion Pack containing 50+ useful utilities.

  2. Notepad++ (NPP) by Don Ho. Programmable, extensible, professional text editor with outstanding built-in features that can be further enhanced by a collection of plugins. Fast, stable, fully open-source. Features include syntax highlighting for a large range of languages, column editing, recordable macros, line-level bookmarks, code folding, cloned views, hotkey mapping, complete automation, tabbed documents, and much more. Plugins with exceptional capability allow NPP to become a power-tool capable of more than text editing: NppCalc, NppExec, PythonScript, PorkToSausage, FingerText. It is the second piece of software I install to any Windows computer I work on. See the NPP article for more detail on custom configuration, and for the freely downloadable Notepad++ Expansion Pack integrated into Total Commander. Notepad++ is included in the TC Expansion Pack.

  3. Everything Search by VoidTools. Ultra-fast desktop search engine that indexes up to a million files a minute. Everything can find a file on a 120GB desktop in less than 5 seconds. Integrates tightly with Total Commander. See the Everything article for details on TC integration, and to download the pre-configured TC Expansion Pack with Everything Search integration built-in. Everything Search is included in the TC Expansion Pack.

  4. Brave Browser with Leo integrated AI by Brendan Eich (former CEO of Mozilla Firefox). Thoughtful, elegant design, with many convenient features. As of Jan ’24, I found it had the cleanest integrated generative-AI compared to the ‘Big 3′[Firefox Portable (Mozilla), Chrome Portable (Google) and Edge with Copilot (Microsoft)]. Brave Leo is helpful without being obtrusive. Leo can have a conversation about any page and/or summarize searched results into a single integrated summary (Summariser mode). Searches can be submitted in traditional fashion (in the URL search bar) or specifically to Leo. AI generated content is footnoted meticulously so that you can follow up/supply references. Additional attractive design principles: Brave takes a strong stance on privacy/surveillance (with its vigorously enforced fully opt-in model to limit ad tracking/surveillance. (Although Microsoft Edge also has integrated generative-AI that also provides references, I’m less enamoured with the way in which Edge presents its search results, and there is certainly no comparable commitment not to harvest/track data.) Other neat integrations are:
    1. Page-level AI integration: Brave Leo, integrated AI on every webpage, (Llama-13B backend), providing Summarizer and context-based follow-up questions in natural language chatbox.
    2. Wayback machine integration: If a link is broken/doesn’t exist, Brave asks if you want to check the Wayback Machine
    3. Translation integration: automated, integrated translation from any language.
    4. Ability to cleanly copy a Google link without the cruft.11
    5. Effective Dark Mode: goto Settings, turn on Dark Theme, and follow-it up on brave://flags by turning on Enable with inversion of all non-images.

    Other settings given in the endnotes.12 The browser wars are not over, and the good news for consumers is that there continues to be innovation in this space as a result.13

    For rapid documentation/storage of links in plain text, Notepad++ has Macro URL evaluation command Ctrl+F7 to load the selected URL into the default browser.

    Second choice is Firefox Portable Edition which is entirely self-contained and able to be easily ported between machines when needed without losing anything (all tabs, history, bookmarks, extensions/plugins port over cleanly). However, setting up Firefox Portable can be a bit fiddly, see the footnote for some tips.14 Some plugins are so effective that really, they should just be built into the browser itself — an interestingly Brave Browser does exactly this.15

    Google Chrome Portable has portability but it is not as clean as with Firefox. There are some useful features however (see endnote)16

  5. Digital Pencil For freehand diagrams, concept sketches, engineering design, mathematical formulae, it is hard to beat pen and paper for convenience, versatility, and efficiency. Except now there are digital capabilities that are starting to exceed the classical tools. See the article Converting to Digital Pencil (MetaMoji Note).

  6. PDF Xchange Viewer is a free PDF Viewer that is better (much faster, with annotate, edit, and other features) than the ubiquitous, but crippled, Acrobat Reader, and Adobe’s non-free PDF editing software. PDF Xchange Viewer has a Portable version. (Note: when installing, DECLINE the offer to use the ASK search engine. Other than that minor marketing pitch, the software is outstanding.) PDF Xchange Viewer is included in the TC Expansion Pack.

  7. PDFill’s PDF Tools is a free PDF Toolkit for splitting documents, inserting pages, rotating pages, cropping pages, and other various manipulations of your PDF files. Additionally, it supports PostScript (PS) to PDF conversion (option 12). The tools are portable provided you include msvcr70.dll and mfc70u.dll into the same folder. PDF Tools is included in the TC Expansion Pack.

  8. Google Docs, Sharepoint, Quip, Jamboards Google Docs is an excellent lightweight free collaboration tool. Easy to get started, real-time updates, granular security. Great for use as a collaborative / asynchronous ‘whiteboard’ and many other uses. Others.17 Microsoft Sharepoint is good for real-time collaboration on Word documents. Quip (Amazon) is another useful real-time content collaboration system akin to Google Docs. For a digital interactive whiteboard, virtual + physical, Jamboard (from Google, but being shutdown in 2024). Alternatives: ziteboard (3 boards free), stormboard (5 boards/5 users free), Mural (3 murals free, unlimited members), Miro (3 boards free), LucidChart/LucidSpark (3 diagrams free), Figma (3 free)

  9. Microsoft Office Suite – Word Tips18
    Timeline: 1990-present.19. Core applications: Word, Excel, PowerPoint, Outlook, with Pro/Small Business applications: Access, Publisher. OneNote was introduced in 2003, and Sharepoint in 2013 (with annual subscription model Office 365). Ribbon layout (fluent interface) and Pivot Tables (in Excel) were added in 2007. From its inception, Microsoft has had competitors in the space and who continue to prioritize building viable alternatives and attempting to capture user share. Most prominent alternatives are: Google Docs, and on the desktop LibreOffice and OpenOffice by Apache formerly Sun.[OpenOffice itself was the continuation of StarOffice from 1985.] Options: Home & Student versions are available in standalone (perpetual license) desktop versions for 1 to 3 PCs. Office 2003/14 £44 in 2011, Office 2010 was £77 in 2012 for 3 PCs20 Office 2016 was £49 for 1 PC. Office 2019 was £49 for 1PC, or retail price at £108 1PC/user, instant download. Office 2021 Home & Student (no Outlook) is £120 retail price for 1PC, or Professional (with Outlook) for £32 for a download code. Office 2019 Professional is £20 (History)

  10. LaTeX (pronounced “lay-tech”) is a free, professional grade typesetting engine that efficiently produces the journal quality papers of almost every working mathematician, physicist, and computer scientist.21 Where symbols, formulas, and equations22, comprise a large portion of your professional communication, you will gain significantly by becoming proficient with the document preparation platform that is universal amongst working scientsts for technical communication. We all owe a huge debt of gratitude to Don Knuth, the brilliant perfectionist whose decades long obsession with mathematical typesetting done right has put the power to communicate complex ideas simply into the hands of anyone who possesses a little perseverance. With the right tools and a little practice, the relative ease of creating beautiful mathematical documents with LaTeX will likely mean that you leave Office in favor of LaTeX for your technical writing. LaTeX as an individual typesetting platform, allows you to that produce “camera-ready” technical material with a minimum of fuss. Read the LaTeX article (Part 2: Getting Started)…. (See also: Part 1: Intro, and Part 3: Advanced Usage).

  11. Web Publishing / Blog / HTML Editor – For simple HTML file editing in a WYSIWYG editor, all you need is NVU (“New View”) (22MB) by lead developer Daniel Glazman (v1.0 from 2005). If you want to build a website with multiple web pages, consider rather using WordPress, whether self-managed on a hosting platform’s server or hosted by WordPress itself.23 For the fascinating history of HTML editors, that illustrates the churn associated with open source software, and for the evolution of the editor code from Netscape to SeaMonkey (lastest in 2024), see the Endnote.24 NVU is included in the TC Expansion Pack.
  12. Lynx Browser Engine (NCSA) : this is a text based browser, with a key drawback that it does not support https protocol. Nonetheless, if you cannot get onto the web in any other way, then this gives you a way.
  13. Printers & Drivers
    • FinePrint (£40 license) is an elegant print driver handling everything from reformatting to preview, page insertions/deletions, many-to-one page consolidation and booklet printing. Works with any printer. Not free, but saves the environment. Investment pays back within a year with the in savings on toner/ink alone.
    • iPrint by InZone Software, has booklet mode, and is a free alternative to FinePrint above. Another free alternative is Sav-a-Page.
    • Brother Multifunction Black&White Laser Printer DCPL250DW (£107 in 2017) Drivers here. Download the Full Driver & Software package (166MB). Keep printer disconnected. Install the driver.
    • Lexmark Multifunction Color Laser Printer MC3326adwe (£197 in 2021) Setup instructions Driver here
  14. Antivirus Software.25

    B. Collaboration & Control: contact management, messaging, video conference, email, distributed version control, wiki, project management, defect tracking, remote desktop

  15. Contact Management: Google Contacts/Android, iPhone/iCloud, LinkedIn (how to export your LinkedIn contacts26), Facebook (your information), go to Your information & permissions to download your contact data27 Use vCard format for standard import/export storage. Use labels/lists for grouping.

  16. Messaging. Used right, messaging has the ability to be a positive accelerator of the right conversations (loosely asynchronous), and reducer of unnecessary email exchanges, while providing a threaded way to reference previous conversations. Three stable stand-outs are Slack (Salesforce), WhatsApp (Meta), and Chime (Amazon). From an open-source perspective, Mattermost is an interesting alternative to Slack that is worth exploring.

    Slack, which stands for (“Searching Log of All Conversation and Knowledge”) has tremendous potential. Slack for Desktop. Huddles in Slack. WhatsApp adds to the phone experience WhatsApp for Desktop which makes it easier to bulk manage messaging, and exchange attachments.28

  17. Email29: For Gmail/Personal email, I recommend eMClient (Free or one-time purchase). Alternatives: Outlook (365) with Lookeen Search for fast/effective searching, Gmail (online only), MailBird, MailSpring, or free open-source Thunderbird .30 To use Outlook to manage your Gmail mailbox, you need to configure things properly.31 Outlook allows multiple mailboxes that can keep your separate mail accounts separate while working within a single application. Gmail and Outlook go about categories and labels differently. As Email is relentless32, the more efficient you are at it, the more you drive it rather than are driven by it. See the tips in the endnotes.33 Outlook archive management.34

  18. Video conferencing. Here again a lot of active choice. Three stable stand-outs are Zoom, Microsoft Teams, and Amazon Chime. Brave, Firefox, and Google each have video chat enabled through their respective browsers, which may be suitable for individuals, but is less corporate-ready than the big three listed.

  19. For a distributed version control system (DVCS), you will typically be choosing between Git/GitHub or Mercurial (Hg) with the Tortoise front-end.35 Both will do just fine unless you’re Facebook’s size (60+ million lines of code c. 2018), in which case Mercurial may be your better choice.
    But you should be aware of the differences and why Git won the first round of the DVCS wars (hint: it was Github). GitHub won the VCS war. A little history.

  20. Defect Management system – FogBugz : The light-weight name belies a beautifully designed issue tracking collaborative development system that incorporates the insights of software development guru Joel Spolsky (his company, his product, his design). Comparisons with Bugzilla, Jira (Atlassian), Asana, Trello, Bootcamp, and others. Principles behind FogBugz (called Manuscript for about a year c.2017).
  21. Lightweight Wiki – PmWiki
  22. Gantt Project: lightweight, free, Gantt chart creator utility. Imports/Exports with Microsoft Project. Exports / Publishes to HTML, PNG, CSV. Can customize logos and branding by replacing stock images with your own.
  23. Painless Remote Desktop options. The original one-click product was FogCreek Copilot which launched in 2007 and truly was easy. (It is now an enterprise product with no resemblance to the original.) TeamViewer takes its place as an easy, quick, painless option to help fix / troubleshoot someone’s computer problems from far away, and free for personal use.

    C. Mathematics & Statistics (9): Mathematical Computing, Computer Algebra, Data Science, Visualization

  24. R for Statistical Computing (Open Source S-Plus)
    – useful for statistics, graphing, data visualization, and various types of analysis (including financial, signal processing, fuzzy logic, cluster analysis, and many of the areas discussed in the article Knowledge Engineering. Has many packages (extensions) for specialized applications. In 2010 was already an academic standard in Statistics, Plotting, Signal Processing, Data Analysis; rapidly gaining mindshare in industry as well.36

  25. Python (see below under programming)
  26. Big Data / Business Intelligence & Visualization: Tableau, Superset (Apache), Grafana, Metabase, RAW Graphs and Gephie. Tableau has been front-runner, but the open source alternatives are catching up and in some cases pushing further more quickly. There are many “no-code” data pipelines for your data warehouse that use AWS/Cloud resources to do the analytics and provide the reporting (e.g. Hevo)
  27. GIS Visualization, Mapping, and Geospatial Analytics: ArcGIS, QGIS (Quantum GIS), GRASS. ArcGIS has been front-runner, but the open source alternatives are quite capable, and some rival commercial offerings. Python, R, and BI/Visualization tools also have geospatial analytics and mapping capabilities, as do Google Maps and Google Earth.
  28. Octave (Open Source Matlab). Useful for matrix algebra, computation, data visualization, and various types of applied mathematical and engineering analysis. Plenty of toolbox extensions for additional computational libraries. Matrix Computations, Signal Processing, Wavelets, and much more.37
  29. Maxima (Open Source Mathematica / Maple) – useful for symbolical mathematics done in closed form, as opposed to numerical methods of R and Octave. Includes facilities for symbolical algebra, calculus, differential equations. This article below gives you everything you need to get started on Windows, Linux, or Mac, including download links, reference sheets, and application notes. Read the Maxima article…
  30. Sage Math – also for symbolical mathematics done in closed form. Runs under Microsoft’s built-in Windows Subsystem for Linux (WSL).
  31. GeoGebra (Open Source Geometer’s Sketchpad) : – a platform for ruler and compass Euclidean geometry. Plane Geometry and Algebra Visualization and Exploration toolbox. Excellent learning companion for school students and teachers. GeoGebra is included in the TC Expansion Pack.
  32. GraphViz (AT&T Research) – sophisticated graph and network theoretic engine for the planar layout and visualization of complex 2D graphs and networks. Open source tool for automatically rendering complex graphs and networks in a planar layout. Network structure is captured in an elegant plain text markup language. Excellent for network diagrams, and complex software design diagrams. GraphViz is included in the TC Expansion Pack.
  33. GSL (Gnu Scientific Library) : free, open source, high-quality numerical libraries for everything offered by Numerical Recipies, and more. With bindings from a variety of systems and rapid scripting languages including Ruby, Python and Perl.
  34. HEXelon MAX : Flexible scientific, mathematical, electrical engineering calculator with the most comprehensive presentation of unit conversions I have seen in a stand-alone desktop application.

    D. Engineering (29): Software & Hardware/CAD (incl. Circuits, Embedded Systems, Databases)

    C1. Scripting Languages

  35. Shell scripting. On Windows: Batch files, Windows Scripting Host, ActiveX, or Powershell. On UNIX: any of the shell scripting languages (BASH, Bourne, etc.) Batch file for common tasks are included in the TC Expansion Pack.

    C2. Dynamic Languages38

  36. Python (recommended). From amongst the general purpose dynamic languages including Ruby and Perl, Python is arguably the most useful of the three especially if your interest is in quantitative, data science, machine-learning, or AI applications. Google and Academia have largely consolidated around Python. Twitter chose Ruby. Facebook chose PHP. Booking.com chose Perl (as do CPanel, and others). The trend towards Python started to become clear by 2011 and has accelerated since. I use both Python and Ruby. Ruby is especially useful for regex/parsing/munging/OLE automation tasks that I would formerly have used Perl for. Python is capable of taking all of these use cases comfortably. See the endnotes for Why Python?39 Python, Ruby, and Perl are included in the TC Expansion Pack.

    C3. Text manipulation, Automation, Databases, Other

  37. Perl has been around for over 30 years (1987-present). Why Perl?, or Why Perl in the 2020s? Modern Perl 4e (5.22, 2016) On Windows, you have the choice of Strawberry Perl (recommended, free) and Active State Perl (commercial).40 Booking.com Engineering is a Perl shop, and has been funding Perl5 development since 2008, and funding Dave Mitchell since 2013 to improve the Perl runtime performance (starting from 5.20) one small step at a time.41 You can get any Perl all the way back to 4.036 (Feb 1993) at Perl 5’s GitHub. Stay with Perl 5. On Perl 5 vs. Perl 642 What DOSBox emulates. DOSBox Manual. vDosPlus and DOSBox are included in the TC Expansion Pack..
  38. DOS-DEBUG – this is a surprisingly powerful little tool for exploring x86 assembly language. You can get the original ms-debug (for NT or Win98), or the bug fixed and improved modern version Debug v2.01 from FreeDOS (RECOMMENDED!) (project page).43 still work well. Full instructions are here44
  39. Scroll Screen Tracer (SST) terminal for direct memory access and inspection for peripherals attached to x86 chips. (SST’s history)

    C4. Hardware, CAD

  40. SolidWorks – 3D CAD
  41. KiCAD – open source schematics and pcb design/layout, gerber file export for pcb production, Windows download
  42. MentorGraphics PADS – trace routing software
  43. Digital Works – digital circuit design / simulation for non-advanced users – see the article Learning for Embedded Systems Development for download links and discussion. – for designing digital circuits from logic gates, capable of building up ICs and an entire ALU from first principles. An online option is Logic.ly. Digital Works is included in the TC Expansion Pack.
  44. Arduino Nano for an easy to develop with, low cost, high power 8-bit microcontroller
  45. Arduino IDE for programming Atmel chips in C
  46. PC/104, PC/104+ (a world of embedded capability for rapid integration)
  47. RealTerm, billed as “an engineer’s terminal program specially designed for capturing, controlling and debugging binary and other difficult data streams. It is the best tool for debugging comms.” Essential for tethered development and rapid development/debugging. Command line startup My settings: baud=9600 display=2 half port=6 for Hex(space) with Half Duplex on COM port 6 running at 9600baud.
  48. Ultra VNC : (freeware) – powerful and flexible VNC client. RealTerm and UltraVNC are included in the TC Expansion Pack.

    C5. Utilities

  49. Hex editors/Binary file viewers: HxD and JujuEdit. JujuEdit and HxD are included in the TC Expansion Pack.
  50. Calculators & Hex/Binary/Decimal Conversion: For rapid calculation on the fly, I use Calcute as my basic calculator in Windows. Extensive capabilities in a small form factor that sits in the corner of your desktop.
    Calcute commands (automatic/default/max 12 sig digits shown):

    pi  e  sin(pi)  asin(0.5)  ^3 or ***  sqrt  curt  ln  log  % or pct
    1.6e3  ; 1600
    inv(x)  ; 1/x
    255 to hex  ; hex'0ff
    11 to bin   ; bin'1011
    43 to oct   ; oct'053
    ^3
    sqrt ; sqrt
    curt ; cube root
    

    For involved Hex/decimal/binary conversion, I use the NPPCalc plugin for Notepad++. (Instructions: Write expression. Select. Alt+Enter. NppCalc puts the answer on the next line.) Example commands (there are many more).

    hex(255)
    0xFF
    bin(255)
    0b11111111
    

    Calcute, NPPCalc plugin for Notepad++ are included in the TC Expansion Pack.

  51. Install Forge, install maker Install Forge is included in the TC Expansion Pack.
  52. System Path Commander, for setting and inspecting path variables. System Path Commander is included in the TC Expansion Pack.
  53. Windows Power Toys for Windows 11 – some very handy utilities (check out Crop & Lock as an example of some real innovation in usability!). Source code on Github.
  54. Icon Utilities: IconSushi (included in TC Expansion Pack), or TC Plugin GraphConv (Alt+F5, Select plugin, GraphConv, Configure…) included in TC Expansion Pack, or Icons to Icon DLL using Windows tools (included in TC Expansion Pack)
  55. Network Diagnostics.45

    E. Generative AI / ChatGPT

    (Oct 2023). 2023 will be remembered as the year in which AI agents and Models were released to the public:

  56. ChatGPT (OpenAI) – has launched a GPT store / builder platformExplore the GPT store
  57. Copilot and Bing (Microsoft)
  58. Bard and Brain (Google)
  59. Q (Amazon), powered by AWS Bedrock, using Anthropic’s Claude 2.1 while working on it’s own Titan model.
  60. Llama 2 model (Meta)
  61. Quora has built in AI into its responses.
  62. Brave has built in Leo AI into each webpage (using Llama 2 model)
  63. Poe – this is a convenient front end for free collections of interactive AI agents that work just like a search prompt. Here’s an example of what it can do: ask a question, explain so an 8-year old can understand, explain in 1 paragraph, explain in a poem | Stable Diffusion creating graphics from text prompts
  64. AI-assisted Image Creation: AI Playground (free).
  65. AI-assisted coding, example

    F. Multi-media (8): Graphics, Images, Video, Audio

    Stubborn default mappings. Setting default files is painful in windows. Option 1: Right click > Open with > Choose from PC > Select Always. Option 2: Settings > Default Apps. If neither of these works, then Option 3: Right click > Properties > General > Open With … Change…. Finally Option 4 (nuclear): In Registry. Search NoOpenWith. Use F3 to advance to other instances until you come to AppX. Delete the key. In my registry, I had to do this for 5 APPX entries. Now go back to the file. Option 1 should now have Select Always available.

  66. MPC-HC – universal media player, improvement over bloatware VLC, Windows Media Player, and others. MPC-HC is included in the TC Expansion Pack.

  67. IrfanView : free, powerful software in a light-weight container. Avoids clunky image viewers. Works with all standard formats. (To view HEIC images e.g. from iPhones, install CopyTrans HEIC.) Once you use IrfanView, you avoid having to drop into slow-loading, proprietary graphics applications for many common imaging transformations. IrfanView does effective Batch resizing of images. (Previously I used: Image Resizer PowerToy for Windows 7 or Vista, 32- or 64-bit with my own Ruby wrapper to iterate through all images in a sub-tree of current folder), then I wrote my own resizer using FFMPEG. Now IrfanView means no need for the heavy FFMPEG installation to resize images in a folder. IrfanView is included in the TC Expansion Pack.
  68. Microsoft Paint : available on every windows computer, useful for quick manipulation/poor man’s whiteboard. For Windows 7, mspaint received a facelift that made it better: full undo/redo stack, selection of brush styles. It received another (but worse!) facelift for Windows 11 (2024), including Co-Pilot AI drawing integration. To install the Win7 Classic Paint onto Win11, see this writeup by WinAero, and install ClassicPaint from here.
    Need something with more capability? PaintShopPro £70.

  69. Image Compare: A Graphical Diff Utility
  70. ScreenRuler : a free, versatile way of measuring separation distances on screen, in pixels, millimeters, centimeters, inches. Image Compare is included in the TC Expansion Pack.
  71. Audacity: Audio Editor / Studio Recorder for Sound Recording, Effects, Editing. Professional quality audio editor and recorder allowing the recording of multiple tracks, with professional grade metronome, the availability of a variety of convincing distortion effects, filtering, and, best of all, export to MP3 format.
  72. FFMPEG – an outstanding open-source tool for automated video editing, splitting, concatenating, making videos from stills, merging separately produced video and audio, etc. (I first started using this on Aug 26, 2012, likely part of version 1.x — version 2.1 didn’t get released till Oct 28, 2013, 14 months later. Version history starts at v2.1). Windows Downloads (4.4.1 as of Jan 2, 2020) available from Zeranoe’s site
  73. Bulk Image Transfer from iPhone to PC without requiring iTunes: (1) In Settings > Display & Brightness > Auto-Lock > set to Never (required to prevent iPhone lock screen from activating and cutting off transfer in progress). (2) In Settings > Transfer to Mac or PC > select Keep Originals (required to prevent iPhone from hanging during transfer due to running out of conversion space). Note: this will transfer images in HEIC format. See IrfanView for HEIC codec to download to view on Windows.

Endnotes


    0. Octave quickstart notes
    % comment
    [1,2] % row vector, display
    [1,2]; % suppress output
    [1,2]’ % col vector = transposed column vector
    [1;2] % col vector entered directly
    u=[2;5]; % assignment
    function retval = avg (v)
    retval = sum (v) / length (v);
    endfunction

    Packages:
    pkg load symbolic

    Plotting in Octave) | Multiple Plots in Same Window | Aspect Ratio
    daspect([1,1])
    axis tight normal

    00. Tabstops in Word document that are frugal on space and work for both code and text.

    Tabstops (frugal) that work also for code indentation

  1. This holds true whether you’re a technical leader, scientist, mathematician, engineer working in industry. Value comes from being able to force-multiply your efforts.
  2. For small scale problems, the solution is often a script or small program that is triggered on some simple inputs, takes a straightforward decision, and calls a process or subroutine to generate output that pipelines as the input to the next part of the processing chain. Add a bit of fault detection and logging and you’ve got a poor man’s data processing pipeline. If you can break down solutions into discrete processing chunks, each handled by a specific module, you can leverage your computer to do almost anything you can imagine. Working in this way, you can accomplish more than you realize solely through your own capabilities.[1. The software tools you use and how well you use them are central your ability to prototype, test, and deliver ambitious projects, without requiring expensive IS/IT support. Even if you are in a corporate environment where IS/IT resource is available, its usefulness is often blunted by inadequate support, prohibitive overhead to involve, too slow iteration/cycle time, and problems with quality inherent in the outsourcing of any creative specification.
  3. If all you’ve got is a rusty machete, you probably won’t consider a solution that requires felling a tree. You certainly won’t be imagining possibilities that involve clearing a grove of trees. But put a chainsaw in your software toolkit, and felling one tree is no longer difficult and you might consider a solution that you would have otherwise overlooked. Add an army of programmable chainsaws that can be safely configured to work to precise instructions — now clearing a grove of trees is not much more difficult than felling a single tree. The ability to experiment, simulate, and build fast prototypes, makes it easier to conceive of solutions that one might not imagine otherwise. By mastering your computing environment and extending your abilities, you’ll find that the ideas you conceive of will become correspondingly more ambitious as your own ability increases to do the tasks yourself. In the metaphor, the ‘army of programmable chain saws’ may be simply a set of scripts or small programmes that you have written to automatically trigger on some input, take some decision, and run a process or special subroutine to generate some output. Put in a bit of fault detection and logging, and you’ve got a poor man’s data processing pipeline. This needn’t require complex programming. The key is that you are able to bring reasonable computing abilities to bear on problems in ways that bring solutions that would have seemed inconceivable before, closer to hand.
  4. Neat features about the Vivobook:
    1. Backlit keys, with 3 brightness settings or off – toggle with Fn+F7
    2. Physical camera lens cover that slides
    3. Numeric keypad with NumLock so the keypad functions as a PgUp/PgDn/Home/End/Arrow key dedicated controller by default
    4. Fn+Esc toggles the Fn lock option to make the Fn keys activated directly (i.e. without pressing Fn button).
    5. Beautiful OLED screen, pleasure to look at.

  5. System Backup. Buy a cheap 32GB USB stick and once you have completed the fresh install, go to Windows > Settings > System > Recovery > Creating a Recovery Drive. Search: “Create Recovery Drive” > Control Panel > insert your USB stick (32GB, empty, one you will not use for anything else) > follow the creation steps (takes 60 minutes). The recovery drive will contain system files. Doing this annually will keep your system files backed up in case you need to reinstall Windows 11 on your PC. Also, this is the ONLY way to ensure you have a licensed copy of Windows. Record the Software License Key in a safe place.
  6. Microsoft and Amazon have largely exited the phone market in favour of other devices, notably Microsoft Surface tablet and Amazon’s Kindle and Alexa devices
  7. There are relevant parallels to IBM and the open peripheral PC.
    1. Settings > Photos: Transfer to Mac or PC: Keep Originals – essential for problem-free downloads to PC.
    2. Settings > Sign-In & Security: Generate and record a Recovery Key. Setup Legacy Contact. Add 2-factor authentication phone numbers.
    3. Settings > Contacts > Default Account > iCloud – this ensures new contacts you add go to your phone.

  8. Noteworthy Capabilities on Apple’s iPhone (non-exhaustive list):
    1. You will need iCloud on the web to properly manage your data, backups and Cloud storage. On Windows, you can install iCloud for desktop.
    2. Contacts List management: Work with a default master list (iCloud) which holds your population, then create sub-list and populate. Easy on phone (scroll/select), and with drag and drop on iCloud web. Export from iCloud.com (print to OneNote) and vCard (VCF) by list. (iPhone List is equivalent to Google Label).
    3. Tabbed browsing Bulk URL export. This is very handy. In Safari, show the tabs (right bottom button), then click the middle bottom button (properties). It will show you how many tabs you have open. Click Edit. Then the double-dots. Then Copy Links. Now you can paste them into a Rich Text Container such as iPhone Note. Putting your Notes into an iCloud folder gets them available to your PC for copy paste. Complication is that the links are Embedded Links, i.e. the URL is a hidden data field. In Excel, =Hyperlink(URL-link, anchor-text) creates hyperlinks, so what we want is a way to invert the formula, i.e. URL(hyperlink). This is provided in Ruby’s win32-clipboard gem: URI.parse(hyperlink).url
    4. iCareFone is useful for moving data between iPhone and PC without requiring iTunes.

    1. To truly silence phones/apps, including WhatsApp, you need to combine Do Not Disturb (DND) and Focus Mode.
    2. You will need to use the apps on your Google account to properly manage your data, backups, and Cloud Storage.
    3. Contacts are in Gmail (sidebar) or contacts.google. Google equivalent to List is Label. Import/Export is via vCard (VCF). Google has an excellent automated merge & fix feature on contacts. Also an automated Add relevant data feature.
    4. Notes can be through Google Keep available on Play Store. Or there are hundreds of other options.
    5. To connect your Android phone to your Windows 11 laptop, follow these instructions: from Google Play Store on your phone, install “Link to Windows” app and sign in with your Microsoft account. The app may be preinstalled on certain phones. It is preinstalled on all Windows 11 PCs. Some Android phone models support the feature of simultaneously using multiple mobile apps on your computer, enhancing productivity and convenience. On your Windows PC, find and open the PhoneLink app (first time use will require downloading updates).
    6. Special Android keyboards: Gboard (offers Swype), Fleksy (offers Colemak keyboard layout)

  9. This removes the need for my Google Clean Link Extraction macro implemented in Notepad++, shortcuts.xml
  10. Control whether PDFs are viewed or downloaded (prefer the latter). Portable Brave also available though it is built by an entirely separate entity from Brave and makes very clear that it is not affiliated with Brave so I’m not yet ready to commit to it until it is clear where it is going and how well it will keep up with Brave’s development.
  11. Firefox vs. Chrome
  12. Setting up Firefox Portable:
    • Put FirefoxPortable.ini file in the same directory as FirefoxPortable.exe, otherwise Firefox will continue to use “local” settings (i.e. the User folder)
    • about:profiles in the URL is how can check and manage profiles within Firefox. At most you need two.
    • It seems there will always be a profile in User\ space, as Firefox uses that as a default in case your portable profile disappears.
    • To get the OS to use the Portable Edition as a recognized browser, you will need to set file associations. In Windows, these can be set in Total Commander (using File > Associate). Scroll through and find the 10-12 instances, and use this: c:\totalake\FirefoxPE\App\firefox\firefox.exe -new-tab “%1” (obviously change your path)
    • Clicking HTML files in file directory will launch new window with a new profile, but then all successive clicks will use that same window. Cannot get it to use the already existing window.
    • Using command line: c:\totalake\FirefoxPE\App\firefox\firefox.exe -new-tab “%1” (this will use your existing profile and window)

  13. Firefox’s ImTranslator: one click translation for a web-page, or selected text
  14. There are many command line switches for Chrome.
    The most useful is perhaps –no-sandbox, which fixes crashing page problems.
    Chrome has many built-in data pages:

    • chrome://version
    • chrome://about

  15. Useful reviews, Doc Mgmt Systems
    1. Make changes once in your Normal template, located at %appdata%/Microsoft/Templates (make a backup first):
      1. Layout > Margins > Moderate.
      2. Layout > Line Numbers > Continuous.
      3. Home > Styles (expand) > Options > Show all styles (change from Recommended) > Check New Documents based on this template. > OK. Now find Line Numbers > Pull Down Menu > Modify… > Font Color White Darker 35% (1 col, 2nd last row) > Font size 9pts > New docs based on this template > Ok
      4. Home > Paragraph (expand) > Check “Don’t add space” > Change: Spacing After to 0 pt.
      5. Double-click footer > Insert > Page Number > Bottom Right Plain > Select All in Footer > Font: 9pt.
      6. Review > Language > Languages… > Proofing > AutoCorrect Options… > (to use Word for technical writing, disable auto-correct for symbols and first 5 settings)
      7. Setting Tab Stops. Layout > Paragraph (expand) > Tabs…
    2. To apply Normal template settings to an open file, Alt+T,I, check automatically update. Ok.

  16. Note: The individual applications started earlier on a 2 year sustained sprint: Word 1983, Excel 1985, Powerpoint 1987, Office Suite in 1990
  17. NOTE: 2010 edition cannot embed youtube videos into a powerpoint because Flash video support was withdrawn in 2017. The workaround (LiveWeb VBA plugin enables inserting a webpage and running it within PowerPoint) is acceptable but not a clean solution.
  18. At least in mathematics, computer science, and physics, the adoption of TeX has been so universal that failure to use it is now a reliable crackpot indicator. – Scott Aaronson (Computer Scientist)
  19. See Great Big List of LaTeX Symbols (PDF)
  20. WordPress useful plugins/capabilities:
    1. Atahualpa Theme, now requires Enable jQuery Migrate Helper
    2. WordPress Hide Posts plugin (allows granular control of individual posts and where they appear)
    3. Co-Authors Plus plugin (allows managing co-authors)
    4. Comment Attachment, Images (allows commentors to attach items and images)
    5. Database backup for WordPress
    6. Post Type Switcher (easy way to convert pages to posts and vice versa)
    7. Table Press (easy tables)
    8. WP LaTeX (easy use of LaTeX using \frac{a}{b}

  21. If you want to explore other options of HTML Editors, you have several choices. Below is the chronological view: Netscape Navigator Gold 2.0 introduced in 1996 the first WYSIWYG HTML editor. In v4.0, it became Netscape Composer which was discontinued but has gotten new life as Mozilla Editor (Composer). NVU (“New View”) (22MB) led by Daniel Glazman picked up the code, released 1.0 in 2005, then development stopped. KompoZer led by Fabian (“Kaze”) Cazaneve picked up the NVU code based and continued till 2010 when the lead developer stopped. In the meantime Glazman returned in 2008 with Blue Griffon (now Portable, 100MB), from scratch building off the original Mozilla code base. Mozilla resurrected and developed Sea Monkey (152MB) also off the original open source code base. Sources: (1)
    Kompozer,
    (2) Mozilla Composer & NVU.
  22. This topic is tricky. Microsoft Defender is now pretty good. Does one need AV software in 2024? BitDefender (£20 first year, 3 devices) and Kaspersky have low and smart system resource utilization while scoring well on overall protection. McAfee (and to a lesser extent Norton £20 1st yr/£35 renewal) are known to produce bloatware that slows machines down, and McAfee especially obfuscates what it is finding and what it means (I suspect a marketing & sales communication style over transparency, but here’s their explanation: “AI/ML better detection at expense of explainability”).
    McAfee Instructions for finding out what threat has been detected:

    • Go here: c:\ProgramData\McAfee\wps\detection.log
    • Open the file in a text editor such as Notepad++
    • Look at sensor field. (If its lOfficeAntivirus, that’s a good thing)
    • Copy the hash field and search it in the Virus catalog.

    Notes: PDF files CAN contain viruses and other malicious pieces of code.
    Bitdefender post-installation: Right click the taskbar button and select “Update Now” (if it gets stuck at 80%, you may need to turn off Windows Firewall for a few minutes, let the update complete, and then turn the firewall back on). As a fallback, there is a manual update file with weekly virus definitions.

  • If you just want your connections and imported contacts, it takes about 10 minutes you get an email notification when the ZIP file download is ready. Inside are two CSVs, one for each field.
  • Facebook take at least 24hrs to produce the request, and it comes as a set of JSON files. You will have to check back to the download link until it is ready, and then it expires 4 days from generation.
  • Migrating WhatsApp between phones. Data migration between phones requires both phones to have the same number. Which means transferring one SIM to another. You will need the little SIM opening poker tool, or a paperclip.
    1a) On iOS remove the SIM (old number) and replace with the SIM (new number)
    1b) On iOS, Settings > Account > Change Number > enter old number and new number. It will prompt you to notify groups (can’t avoid that one) and optionally your contacts (you can opt out of that one — or if you want to, then you can choose all or custom and go through and manually choose which you want to auto-message with your new number. they will receive a note when they click on your name but not before, i.e. it does not ping them. At that point they will have the option to tap for adding your new number to their contacts. It is not intrusive, so it is recommended if in doubt, but it’s your choice.) Once you say ok, you’ll have to get to your new phone and confirm… You can see the change. Settings > Account > click your name, and you’ll see whatsapp associated with your new phone number.
    2) Now you need to make the backup on your old phone using your newly associated number. Wherever you backup to (Google Drive, iCloud, or a computer) this is necessary in order then to reverse the steps on your new phone with the new SIM and restore that backup.
  • Outlook PST folders in proprietary non-searchable format, defective search function, Lookeen Search as workaround. Thunderbird bizarre defaults and usability does not seek to minimize clicks. Mailspring $100/yr.
  • Thunderbird stores email in a non-proprietary ASCII format, easily importable/exportable between Windows and UNIX mail readers, and recoverable in the event of corruption.
    1. To ensure Deleting is synchronized between Outlook and Gmail
    2. You first need to choose whether you want POP (download to one device but not sync) or IMAP (multi-devices, all synced). In this era of smartphones, laptops, and web browers, I suggest IMAP)
    3. To move items within Outlook, you need to have your cursor on another one or you get “Cannot move this item. It has changed.” error

  • Average person gets/sends c.120 emails per day, average senior leader gets 200-300.
  • Efficient email: 1. Don’t have a lot of folders – filing doesn’t save time. Inbox, Archives (by quarter) and that’s it. Your job is to get from Inbox to Archives. 2. Use Quick Steps for frequent processes, e.g. move to current archive (update quarterly to point to the new quarterly folder). 3. Create or learn the relevant keyboard shortcuts for you. (Unfortunately, Outlook has the least customizability of the Office suite.) 4. Setup your phone for seamless email synced with your computer so you can process emails in dead time, 10 minutes here, 10 minutes here.
  • Outlook implementation notes:
    1. File formats: mailbox formats .pst and .ost are microsoft proprietary, .mbox is plain text and widely used; message formats: .msg is microsoft proprietary, .eml is plain text and widely used.
    2. PST file full: use the registry settings to increase max file size, set warning size, and then clean up and reduce the size.

  • Every now and then I find myself needing arcane functionality in Mercurial, here are the references/how-to’s: (1) Rollback last commit: Ctrl+U (or in Repository Menu). (2) Strip back to numbered commit: In TortoiseHg 4.7 and above, enable the strip extension using File > Settings > Extensions then checkbox strip, and restart TortoiseHg. Use View > ShowConsole to show the Hg command line to type in e.g. hg strip –keep -r 50.
  • To install:
    Recommended option is to install a version that has been around a while, in order to get the most number of compatible packages. I have 3.6.3 installed (Feb 2020, 86MB, 207MB installed), chosen instead of 4.0.0 (let that mature). Install to: C:\totalprogs\R\. Choose customized. Select MDI and Plain Text. Start c:\totalprogs\R\bin\i386\Rgui.exe. With MDI there is one big container window, and all windows are within it. Move between windows with Ctrl+Tab. Close window with Ctrl+F4.
  • To install:
    Download v8.3.0 (2023) or later, 600MB portable Zip file. Unpacks to 2.3GB. Octave 8 is not API compatible with Octave 7.
    This is a GUI environment with a rudimentary editor, vs. 10 years ago (eg. v3.6.4, 2013), when it was a console app.
    Quick start.
  • Dynamic interpreted languages are sometimes called REPL languages, standing for Read-Eval-Print-Loop.
  • Python is a dynamic language that is just as well suited for running quick scripting tasks as well as full blown large scale object oriented software projects, including simulations, etc. Python’s emphasis is on readability, comprehension, and simplicity of design, and therefore provides a reliable vehicle for the power that it contains. As such, it has, since the 2010s, become the dynamic language of choice for the science and engineering community, over Ruby, which continued strongly in the LAMP (Linux-Apache-MySQL-PHP) stack of website development with Ruby-on-Rails.

    One might say that Python values: Clarity over cleverness. and There is only one way. (Both of these can be contrasted with the design spirit of both Ruby and Perl, where Cleverness over clarity, and There is more than one way…. Some might say that Python is verbose as comapred to many languages. This is true and reflects the Clarity over cleverness design. So instead of abbreviating many things, so that one has to be clever and known the context and then make the connection, Python views a little extra typing as a valid exchange for clarity — and actually a good engineer saves in that one doesn’t have to write as many comments, so in the enlightened practice point of view, it is actually saving you time and keystrokes.
    Example: string.ascii_lowercase instead of asc_lower

    Other benefits:

  • Interesting to note 5.8.9, Dec 2008, 35MB package and over time 5.38.2 (Dec 2023), 252MB package – 210MB added over 15 years…
  • The Perl Foundation grants are interesting: $50/hr, Dave’s work on Grant#2 spanned 10 years and 3,624 hours, $181k
  • Short Version: No one using Perl wants Perl 6. “The killer is no one in the perl dev community wants it. This says it all “Backward compatibility with earlier versions of Perl is not a goal”. The problem is I don’t love perl because of its syntax, although some of it is pretty cool, I love it because of the CPAN which does all my work for me. All my problems seem to be solved by combining at most ten or so CPAN modules. Its kind of like how the whole world is built out of only a hundred or so elements… if I wrote a perl program that used 100 CPAN modules, the result would be a new universe would spring into being, like the big bang. Or something like that.” (Source: Slashdot)
  • Regular Expressions – see 12 guidelines that cover c.90% of usage.
  • AutoHotKey (AHK) & AutoIt for HotKey / macro automation using OLE/COM interface built-into WSH (Windows Scripting Host). AHK is great for automating repetitive or semi-repetitive tasks including hotkey creation and SendKey sequences. Comprehensive documentation. AutoHotKey is included in the TC Expansion Pack.
  • VBA Automation
  • (WScript Automation) Python and Ruby SendKeys
  • Shell / Batch scripting automation
  • SQL (database manipulation and access)
  • HTML & PHP
  • OpenGL (graphics) & VRML (simulation)
  • Forth. GForth (GNU-Forth) is an ANSI compliant modern Forth environment available for Windows (0.7.9 (20200709), now with built-in help, Android APK (Dec 2023), Linux and macOS. The GitHub repository is here and active. GForth 079 (for Windows) includes an assembler (Ch.6.29), facility for making C calls (Ch.6.28), and facility for making standard OS calls (Ch.6.31). Everything you expect in a modern language is here (see the manual): floating point support, receiving parameters from the command line, regular expressions, working with files, pipes, GForth is included in the TC Expansion Pack.. F-PC is a 16-bit Forth running on Dos that allows access to all ports and graphics commands as in the DOS days (runs in vDosPlus or DosBox) – see the Turtle Logo application for children built using Forth. F-PC is included in the TC Expansion Pack, along with vDosPlus and DOSBox for a turnkey experience. Read the article on Forth…
  • tcc (Tiny C Compiler) (Fabrice Bellard)- TCC lightweight compiler/interpreter (makes C into an interactive language!). TCC is included in the TC Expansion Pack.
  • NASM: free, open-source assembler – uses the Intel Syntax – for assembly language programming x86. NASM is included in the TC Expansion Pack.. Read the Assembly articles here (Rationale: “Sacred & Profane“) and here (“x86 Toolkit”).
  • MicroASM : a recommended platform for learning x86 assembly language — See the article “x86 Toolkit” for download links and discussion.
  • Dina Programmers Font for distinguishing between 0 and O etc. Dina Font is included in the TC Expansion Pack.

    DOS

  • DOS Emulators emulate x86 microprocesors (80286/80386) and their peripherals running MS-DOS in a: are handy for running legacy 16-bit apps that no longer run on 64-bit Windows (Windows 7+), for playing with CPUs (albeit emulated) that aren’t in protected memory model, for running all manner of old DOS applications. In particular, there are several software toolchain programs in this category (val linker, ms-debug, and other tools). There are two recommended choices of DOS emulator: vDosPlus optimized for business software, printing, font resizing, zoom in/out, Windows integration, or DosBox optimized for games, graphics, sound card emulation (Direct Download). Setting up DOSBox.[18. DOSBox has been stable at version 0.74 since 2013.
    To set it up:

    1. Install to the c:\ drive instead of to the default Program Files location, e.g. to c:\totalcmd\dosbox\
    2. Use the -noconsole switch to start DOSbox cleanly (suppresses a dummy console window that does nothing)
    3. Set a virtual drive to the path where you have your dos files, e.g.:
      mount c c:/totalcmd/dosprogs

    4. If you want DOSBox to point to this path when it launches, you can set the mount drive instruction to run automatically at startup by copying it to the DOSBox configuration file:
      run Doskey Options.bat
      it will write the config file to
      “c:\Documents and Settings\ebraha01\Local Settings\Application Data\DOSBox\dosbox-0.74.conf”
      modify it there, save (no .txt extension!)

    5. To AUTO-MOUNT:
      add the mount instructions to the “autoexec” command in configuration file:

      DosBox beginners, newbie and first timers guide

    6. To relocate the config file to the dos box folder:
      start dos box with the switch
      -conf c:\totalcmd\dosBox-0.74\dosbox-0.74.conf

  • Debug v2.01 offers the following improvements, a) machine mode (Mx) which flags non-8086 instructions, e.g. M0 will still interpret SHL AX, 2 but it will flag it as and 80186 directive, b) single line commands, e.g. rax 07FF instead of having to supply the instruction on two separate lines), c) continued disassembly and trace using ENTER instead of having to re-enter u or t, d) continued tracing AVOIDS to step into software interrupts, so avoids having to step past interrupts, e) properly disassembles all instructions – no more random disassembly or DB strings, f) viewing the stack works as you’d want it to using u sp or u ss:sp, g) viewing segments is easy with u ds:07ff. All the old features of running script (.scp) files e.g.
    debug < scan.scp > scan.asm

  • Notes:
    1. Debug releases can be downloaded from here.
    2. User guide
    3. Paul Vojta, mathematician, UC Berkeley, wrote the original debug clone for the FreeDOS project, 1995-2003
      https://math.berkeley.edu/~vojta/

    4. Japheth/Andreas Grech/Baron von Riedesel (programmer, game programmer) wrote Debug/X based on Debug (site) (person),(github)
    5. ECM/E.C. Masloch wrote lDebug based on Debug/X: site, description
    6. Starman’s Debug Tutorials, page one, page two

    1. DNS issues.

  • Comments are closed.

    Stats: 1,072,680 article views since 2010 (May '24 update)

    Dear Readers:

    Welcome to the conversation!  We publish long-form pieces as well as a curated collection of spotlighted articles covering a broader range of topics.   Notifications for new long-form articles are through the feeds (you can join below).  We love hearing from you.  Feel free to leave your thoughts in comments, or use the contact information to reach us!

    Reading List…

    Looking for the best long-form articles on this site? Below is a curated list by the main topics covered.

    Mathematics-History & Philosophy

    1. What is Mathematics?
    2. Prehistoric Origins of Mathematics
    3. The Mathematics of Uruk & Susa (3500-3000 BCE)
    4. How Algebra Became Abstract: George Peacock & the Birth of Modern Algebra (England, 1830)
    5. The Rise of Mathematical Logic: from Laws of Thoughts to Foundations for Mathematics
    6. Mathematical Finance and The Rise of the Modern Financial Marketplace
    7. A Course in the Philosophy and Foundations of Mathematics
    8. The Development of Mathematics
    9. Catalysts in the Development of Mathematics
    10. Characteristics of Modern Mathematics

    Electronic & Software Engineering

    1. Electronics in the Junior School - Gateway to Technology
    2. Coding for Pre-Schoolers - A Turtle Logo in Forth
    3. Experimenting with Microcontrollers - an Arduino development kit for under £12
    4. Making Sensors Talk for under £5, and Voice Controlled Hardware
    5. Computer Programming: A brief survey from the 1940s to the present
    6. Forth, Lisp, & Ruby: languages that make it easy to write your own domain specific language (DSL)
    7. Programming Microcontrollers: Low Power, Small Footprints & Fast Prototypes
    8. Building a 13-key pure analog electronic piano.
    9. TinyPhoto: Embedded Graphics and Low-Fat Computing
    10. Computing / Software Toolkits
    11. Assembly Language programming (Part 1 | Part 2 | Part 3)
    12. Bare Bones Programming: The C Language

    Pure & Applied Mathematics

    1. Fuzzy Classifiers & Quantile Statistics Techniques in Continuous Data Monitoring
    2. LOGIC in a Nutshell: Theory & Applications (including a FORTH simulator and digital circuit design)
    3. Finite Summation of Integer Powers: (Part 1 | Part 2 | Part 3)
    4. The Mathematics of Duelling
    5. A Radar Tracking Approach to Data Mining
    6. Analysis of Visitor Statistics: Data Mining in-the-Small
    7. Why Zero Raised to the Zero Power IS One

    Technology: Sensors & Intelligent Systems

    1. Knowledge Engineering & the Emerging Technologies of the Next Decade
    2. Sensors and Systems
    3. Unmanned Autonomous Systems & Networks of Sensors
    4. The Advance of Marine Micro-ROVs

    Math Education

    1. Teaching Enriched Mathematics, Part 1
    2. Teaching Enriched Mathematics, Part 2: Levelling Student Success Factors
    3. A Course in the Philosophy and Foundations of Mathematics
    4. Logic, Proof, and Professional Communication: five reflections
    5. Good mathematical technique and the case for mathematical insight

    Explore…

    Timeline