Posts

Showing posts from 2024

Tired of these ssh probing bots!

Image
I manage a few Linux servers at different places. I use SSH for that purpose, but I noticed that keeping port 22 open was like a light sign to the Internet hacking community. I do not feel comfortable knowing that my servers are subject to constant probing from other already hacked computers. I moved the servers to non-standard ports to keep most of the noise away, but it seems that is not enough nowadays, as I can see a bunch of hosts trying what I guess are common root passwords over and over again or some known SSH brute-forcing attacks. I keep the password login option open as I never know where I may need to connect from. So, there is a non-zero chance that my password could be guessed. So, I am now giving it a go to the fail2ban tool. As the name suggests, it will ban attackers' addresses after a programmable number of login fails. I hope this will remove some noise from /var/log/auth.log

Getting work done with AI

Image
I like to give it a go to the Advent of Code programming contest problems. They are usually funny and entertaining, sometimes too entertaining. But this year, I was busy with other matters, and I could not see much of it, so it dawned on me that perhaps I could use that as an excuse to give it a go to some of the newest LLMs that some people were raving about.   Coping and pasting the text of an AoC problem did not require much attention, so armed with LMStudio software and a couple of Qwen2.5 LLMs, I started testing. The 8B model dashes (at around 24 tokens/sec on my PC equipped with an Nvidia RTX 4060 Ti with 16 GB of VRAM). Unfortunately, the output is usually not good enough. However, when using the 32B LLM, the results, though slow at around 2.5 tokens/sec, are usually correct and produce Python source code that runs perfectly and delivers the proper solution, at least for the first question of each problem, in just a few minutes. Even with that slow generation rate, th...

How the AI made me suffer

Image
 I was having lunch with my wife at a restaurant when I got a call from someone from work. A technician dealing with network security told me my office computer was infected with some nasty virus/worm/trojan. There was not much I could do, and being a Friday afternoon, the person who called told me they would do nothing else till Monday morning. The purpose of the call was to make me aware my computer was now isolated in a different VLAN where I would have almost no network services. I immediately felt uncomfortable and worried. What could I have done wrong for this to happen? I tried to avoid all the common pitfalls of not seeing myself in this situation, but I was not doing well enough. Thankfully, the meal was delicious, and I could park the problem for a while. I woke up early Saturday morning to shop and could not resist stopping by my office and checking my computer. As I was told, only a few services were working, I was getting a different IP address and had no access to any...

Security policy blues

Image
  When your company's security policy starts to make your life uncomfortable, some will say they are doing a good job, while others will complain. I would rather side with the latter.  I have been using a server accessible from the Internet for years. A few weeks ago, a message warned me to update the validity of the firewall rule. Unfortunately, that task appears to be above my pay grade. More unfortunate is that the people who that warning message told me specifically to talk to if I happened not to be able to fix it myself claim they cannot do that and that I should talk to somebody else. That pleased me not.  I am sure I could waste a couple of days going back and forth and get this fixed, but it would be helpful for a short time as I am retiring soon. Alternatively, I considered other more fun solutions that required me to talk with no one else. I have developed some sort of an allergy to people telling me, "That is not my job," when I request something.  If you...

Heating up a large print bed

Image
3D printers use a heated bed to promote the adhesion of molten filament to it. Many printers have a heater and a thermistor to heat up and measure the bed temperature. Some microcontroller code creates a closed-loop regulator that keeps the bed temperature around the desired set point. The question is what to do when you have a large bed. Some manufacturers have just gone bigger: a large bed is coupled with a large heater and a thermistor (or thermocouple is used for measuring the actual temperature of the bed). Others, like the Prusa XL print bed, have actually gone smaller and composed the larger bed as a set of smaller tiles, each with an independent temperature control. That approach is more complex and expensive in terms of control. Still, it comes with the added advantage of independent control of the temperatures of different bed zones, which might have power savings consequences. From where I stand, simpler and cheaper is the way to go with our project's budget. So, I settl...

Multiple heaters on a single extruder on Duet 3

Image
 For one of my recent projects, we built a pellet-extruder 3D printer. Its hotend has four different temperature sections. That means four heaters and four thermistors to create four independent temperature control loops. So far, all my printers have had a single heater for the hotend, so this was new to me.  Handling so many temperatures required enough thermistor inputs on the control board. In my case, a Duet 3 6HC board features precisely four temperature inputs. Which seems to be enough. However, I have a heated bed (which I will describe in an upcoming post) that also needs its temperature to be monitored, so I need five temperature inputs; I am one short so far. The solution was to buy an additional Duet Expansion 1HCL board. This one features two additional temperature inputs, two additional fan outputs, and an additional high-power motor driver I will not use now. This additional board connects to the 6HC using a CAN bus interface. Its default address is 123; you can ...

Setting up 3D printer that does not use filament

Image
  So you have a 3D printer, and you want to configure your slicer so it can create g-code for it. The most obvious data is the size of your print envelope, but a less visited problem is how to deal with pellet printers or past-based extruders. Your printer for sure can respond to your commands, so after a while, you have a good understanding of how the amount of material needed to get your desired line width at a given layer height. That ratio would be the number of steps/mm the extruder needs to print the sort of lines that you need. Now you just need to tell your favorite slicer that. If you are like me, and your favorite slicer is PrusaSlicer, please be warned that a 1200 mm cube is its maximum print envelope (that was a no-go for one of my concrete printers).  On the other hand, Cura was happy with a larger volume (but I have not asked or tested their max volume). However, I was expecting the "filament diameter" in the extruder configuration in Cura to be the number I cou...

Apple, you ruined the upgrade experience, sort of.

Image
  Given that my previous cellphone renovation was a switch from Android to iPhone, I did not expect it to go smoothly, and it did not, primarily because of the WhatsApp database export. But this time, moving from one iPhone to a newer iPhone, I expected a smooth transition. The process started nicely; the new iPhone guided me through a process to find the old one and begin transferring data. However, at a given point, I was left with the latest iPhone stuck in the process (with a non-working link that prevented the import from finishing). To make things worse, the old iPhone was asking me if it was ok to delete all data and restore it to factory defaults (which I did not want to do before I was sure all my data was safely transferred and all my apps were working correctly on the new iPhone). I could only think that calling Apple was the only choice, and I am glad I did, as they helped me sort this out. However, all that ruins the experience of a smooth transition. Even worse, they ...

Controlling unconventional 3D printers

Image
I have been working on a couple of research projects lately involving the creation of a concrete 3D printer and a large-format plastic 3D printer using a pellet extruder. Both printers have in common that their electronics are built around Duet 3 controller boards, as they give you great flexibility.  That flexibility comes at a cost, as I must learn to configure the required features. Most of the time, I can find the info I need in their manuals or user forums. Occasionally, I ask a question there, too, and I always have a useful and quick answer.  My latest challenge was to get working a four heated sections hotend. I was using a Duet 3 6HC board on that machine that features four thermistor inputs, but given that a heated bed was already using one, I was missing one thermistor input. Eventually, I had to buy a 1HCL extension board that added one motor controller and two additional thermistor inputs to the base system it connects to with a CAN bus.  I thought I could u...

A new article featured in Circuit Cellar

Image
February 2024, #403 issue of Circuit Cellar magazine features an article I wrote about Raspberry Pi Pico Programmable I/O Programming. It is an elusive topic, opening up many choices to speed up communications with many different types of hardware. Writing the article was my excuse to devote myself to learning the subject, as I might end up using it for an upcoming wireless controller for a biaxial test machine I published last year. 

These are not the droids you are looking for ...

Image
  It has been a busy year, and one of the things I have played with the most has been a few of the new AI tools, like Bard, Dall-E, Copilot, etc.  The picture on the left is, allegedly, a Raspberry Pi Pico W, but it is not even close. But it serves to illustrate my point: while sometimes you get good or decent answers, sometimes AI is just wrong.  The problem is that we use computers to get good answers, and AI is being pushed as a great tool to speed up that process, which sometimes it does splendidly. Unfortunately, it cannot be trusted.  Still, during the second half of 2023, we witnessed how AI was touted as a revolution, and it was, to a point, one of the reasons for the bull market that raised many stocks. I guess that during 2024, we will continue exploring this tools, finding out which use cases make sense and where you want to avoid using them. Meanwhile, I convinced one of the image-generating AIs to make me a suitable image to celebrate the new year (it wa...