Live data from Hacker News

Learning to code vs. learning to automate

daedtech.com

121–130 of 190 posts

Re: Learning to code vs. learning to automate

#121
post #31

What's the modern-day equivalent of DeBabelizer? https://en.wikipedia.org/wiki/DeBabelizer https://creativepro.com/debabelizer-pro-5-the-ultimate-image...

ImageMagick [1]. You can do all kinds of really cool tasks with it and a little shell script. It’s a free software hidden gem, for sure. [1] https://imagemagick.org/script/index.php

Not willing to start a flamewar, but there is also Graphics Magick [0], a fork that, for example, adds multi-threading.

[0] http://www.graphicsmagick.org/

Re: Learning to code vs. learning to automate

#122
post #78

If you're on Windows, Auto HotKey is the ultimate tool for automating day to day little things that are hyper specific for your daily work flow. For everything else there's Bash / some scripting language. You can end up with really big quality of life improvements from having a bunch of little things whipped up to solve your problems.

Can Auto HotKey recognize images and click on them? For example, a specific button in an app or a web page? This is one of the features that keeps me with Keyboards maestro, which keeps me from switching away from macOS.

Yes it is very easy to match image and click on it with AHK. For image matching use https://www.autohotkey.com/docs/commands/ImageSearch.htm for matching use bmp files! bmp files works mach better then png or jpg. For clicks there are several commands, just google them. Also take a look at https://www.autohotkey.com/docs/commands/CoordMode.htm

Re: Learning to code vs. learning to automate

#123
post #118
post #113

Earlier quoted context omitted.

I have limited experience with Keyboard Maestro but I do have some with AppleScript. It lets you do as you described, get windows, titles, UI elements. However this only works on native apps, you cant, for example, click a button on a webpage with a CSS selector or by scanning pixels of the window, ad far as I know. Can AHK do that? That would be super useful

While I've never done it, AHK seems to have an API for being able to interact with DOM elements. Check the marked answer here: https://stackoverflow.com/questions/49516638/ahk-web-element... The above answer shows both navigating to a new page that isn't open yet or interacting with an already loaded page based on the title of the tab.

You can use Selenium with AHK. https://www.autohotkey.com/boards/viewtopic.php?t=32323

Re: Learning to code vs. learning to automate

#124
post #78

If you're on Windows, Auto HotKey is the ultimate tool for automating day to day little things that are hyper specific for your daily work flow. For everything else there's Bash / some scripting language. You can end up with really big quality of life improvements from having a bunch of little things whipped up to solve your problems.

Can Auto HotKey recognize images and click on them? For example, a specific button in an app or a web page? This is one of the features that keeps me with Keyboards maestro, which keeps me from switching away from macOS.

Also you can use Selenium with AHK. https://www.autohotkey.com/boards/viewtopic.php?t=32323

Re: Learning to code vs. learning to automate

#125
How to motivate someone to learn a programming language.

1. Assign a repeatable task.

2. Incentivize to complete higher number of tasks. This can be a flat rate per task or flat number of tasks per day or something similar.

3. Let them work for a while to understand the process.

4. Now the idea to automate gradually appears in their head.

5. First automation appears. I usually start with command line loops and encoding strings into barcodes.

6. GUI automation appears and the user starts running into limitations of easy tools.

7. User makes the decision to invest time into learning a programming language.

8. User automates their entire job.

Smarter companies would offer to assign her the role of an internal software tool maker to identify processes and automate them.

Some of these toolmakers might be like me and perfectly happy to simply do a lot less and get paid the same or more.

Other companies will make her realize she might be valued higher elsewhere.

Learning a programming language without a concrete goal to solve is not as being able to completely automate your job.

I once identified a great opportunity as a field service engineer. The company unknowingly offered me an incentive. After arriving on-site, I can identify additional broken equipment that’s not in my original scope and add it to my scope. I negotiated flat rate compensation per unit fixed rather than per location or per hour. My marginal cost to fix additional equipment is a few extra minutes.

The company sending me that work creates additional scope on their end after I am finished and so we all get paid more money. The service call gets closed in a single visit. I call that a textbook example of all incentives aligned.

So, after identifying this opportunity, I explored all bottlenecks inhibiting me from working faster. A single additional service call per day results in significant extra money.

Bottlenecks:

1. Talking to dispatch to verbally relay serial numbers, shipping numbers, and other phonetically spelled data. Solution: start transmitting data as structured text dispatch can copy/paste. Result: most loved vendor, no more waste of time. ;)

2. Verify equipment is properly configured. Solution: if it can be pinged, it will work, else redo the previous task. Result: knowing the arp and ping commands lets me test equipment without walking to it.

3. Verify output integrity. Solution: (currently implementing this) use a personal IP KVM with a WiFi AP to remotely operate the on-premises server while standing next to equipment. Motivation: running upstairs at least 30 times at one troublesome location not long ago.

4. Repetitive entry of text strings into multiple contexts. Solution: encode those strings, like passwords, into barcodes on my iPad and scan them while also scanning serial numbers and such. Result: this saved a ton of time.

My first automation was to write a script to ping all devices as part of a health check.

Now that I reached the limit of easy automation, we enter software engineering. I am working on a tool to automatically generate my paperwork based on OCR-ed screenshots. I am also working on a tool for the dispatch to have better visibility into what their techs are doing.

At the same time, I have a huge incentive not to share my shortcuts with other techs.

By the way, the next generation of our control equipment runs Linux. I was constrained by archaic tools running on Windows, but we all know to which extent we can automate Linux. ;)

Re: Learning to code vs. learning to automate

#126
post #121
post #31

Earlier quoted context omitted.

ImageMagick [1]. You can do all kinds of really cool tasks with it and a little shell script. It’s a free software hidden gem, for sure. [1] https://imagemagick.org/script/index.php

Not willing to start a flamewar, but there is also Graphics Magick [0], a fork that, for example, adds multi-threading. [0] http://www.graphicsmagick.org/

ImageMagick has multi-threading, OpenCL support, and even heterogeneous distributed computing support.

Re: Learning to code vs. learning to automate

#127

I have automated some things both at work and at home. Sometimes the "time saved doing the thing vs time spent setting it up" calculation looks very shaky, but I persist because when I'm puzzling out how to automate something I'm learning and adding to my skillset that may be useful for the next thing (and is therefore inherently interesting, may lead to greater efficiencies, etc). If I'm just spinning my wheels clic…

As a field service engineer, I would spend 2-4 hours on a new problem and the next time I’ll encounter it I will solve it instantly.

I identified several common errors made by other people. They were very confusing the first time, but now I can solve them at a glance.

Re: Learning to code vs. learning to automate

#128
post #88

Earlier quoted context omitted.

In my company, each engineer spends about ¼ of their time building or improving tools for sales, marketing, support, or operations. Notice the preposition “for” there. I think the flaw with the scenario you described is that your programs are “replacing” these peoples’ “jobs”, when, in reality, we’re building tools that empower them to perform their jobs more effectively. In the case where we create a self-service op…

I'm not at all convinced that automation only results in the loss of future, and not present, jobs. In some cases the company will use the currently available worker hours for other tasks, but I can also imagine situations where workers that currently have jobs are laid off. A brief googling turned up a Forbes piece that claims millions of jobs have already been lost to automation[0], which seems believable to me whe…

I think the comment you're replying to was providing a single example to prove not all automation leads to job loss immediately. You're arguing some automation leads to job loss. These aren't contradictory claims. I found the anecodote interesting because it's not universally representative.

Re: Learning to code vs. learning to automate

#129
post #15

Earlier quoted context omitted.

Programmers drastically underestimate the amount of poor abstractions we've created. There's no reason someone should have to learn object oriented programming in order to be able to do 4 actions across 2 apps. Fundamentally, that's what this article was getting at for me. Should we (a) encourage more people to learn to code (in existing languages / frameworks), so that they might use coding to automate their own wor…

To put what you've said more succinctly, even though reductionism is valid for a computer, there is no reason for us to reduce everyone to transistors. My mother is an accountant for example, and she could easily pick up SQL or a programming language, but the issue with teaching her one is that it doesn't solve any of her immediate problems. Excel already automates most of that work away, so for her that's all she ne…

If only she knew she could interact with Excel using SQL. I have shown that to some accountants and saw lightbulbs appear over their heads. :)

Re: Learning to code vs. learning to automate

#130

When I was younger I dreamed up an idea of a shock suit, basically it would have been a set of long underwear top and bottom with electrodes that would act like a TENS machine to gently(or not so gently) nudge the wearers into performing a repetitive task with machine accuracy. I figured this would be great for an assembly line and could provide a cheaper alternative to a very costly robot while still providing emplo…

Your dad is right, but setting morality aside for a moment...

Why would it be easier or more efficient to program a suit to direct a human to perform a specific operation than program a robot to perform the same operation?

How would it be cheaper or more efficient to maintain a human than a robot?

Post reply on HN