2025/07/07

Disabling Annoying SIM Toolkit Pop-ups on Samsung Galaxy A01 Core (Claro Argentina)

Disabling Annoying SIM Toolkit Pop-ups on Samsung Galaxy A01 Core (Claro Argentina)

The problem

This post is a work in progress. 

If you're using a Samsung Galaxy A01 Core with a Claro Argentina SIM card, you might be frustrated by persistent pop-ups from the SIM Toolkit app appearing on your lock screen. These "flash messages" are typically promotional or service-related notifications pushed by Claro, and since can appear over the lock screen, you could "click" OK on it without noticing it (ie: if you have your phone on your pocket). The SIM Toolkit app (com.android.stk or com.android.stk2 for dual SIM devices) is a system app, meaning it cannot be uninstalled without root access. However, you can disable it or restrict its behavior using ADB (Android Debug Bridge).

 Prerequisites

  • Know what are you doing: don't blame me if you manage to brick your device. I might laugh at you and make fun of you on the net if you try to do so. Of course I am posting this because I already did it on my device and it works. Also: this procedure could work on other mobiles models or even on other mobile network providers. You just need to know what to look for.
  • A not too old desktop computer with Linux and adb already installed. All commands are issued by using a terminal like xterm.
  • USB Debugging enabled on your mobile, ie for Samsung A01Core:
    1. Go to Settings > About phone > Software information.
    2. Tap Build number 7 times to enable Developer Options.
    3. Go back to Settings > Developer options and enable USB debugging.
  • A USB cable to connect your phone to the computer.
  • Ensure your phone is recognized by ADB:
    adb devices
    
    You should see your device listed. Not just any cable can do the trick, if you don´t see your device listed, keep trying other cables until you do.

Step-by-step solution using adb

1. Identify the package

The pop-ups are likely caused by Claro Argentina's SIM Toolkit app, which is pre-installed as com.android.stk (and com.android.stk2 for dual SIM setups). Confirm this by listing installed packages:

adb shell pm list packages | grep stk

Expected output:

package:com.android.stk package:com.android.stk2

2. Disable SIM Toolkit

Since SIM Toolkit is a system app, you can't uninstall it without root, but you can disable it using ADB. Run these commands to disable both SIM Toolkit packages:

adb shell pm disable-user --user 0 com.android.stk adb shell pm disable-user --user 0 com.android.stk2

Expected output:

Package com.android.stk new state: disabled-user Package com.android.stk2 new state: disabled-user

This prevents the app from running and stops the pop-ups.

3. Force Stop (Optional)

To ensure the app stops immediately:

adb shell am force-stop com.android.stk adb shell am force-stop com.android.stk2

4. Reboot the Device

Apply the changes by rebooting your phone:

adb shell reboot

This performs a "soft reboot," restarting the Android system and applying the disabled state.

5. Check Package Status (Optional)

To confirm the packages are disabled:

adb shell pm list packages -d | grep stk

Expected output:

    package:com.android.stk
    package:com.android.stk2

If they appear here, they're disabled. To check for enabled packages:

adb shell pm list packages -e | grep stk

If nothing appears, the packages are successfully disabled.

6. How to revert

adb shell pm enable com.android.stk adb shell pm enable com.android.stk2
adb shell reboot

7. What if it does not work 

Not many options, really: switching to another rom like LineageOS (which atm does not fully support A01Core) and/or another mobile model/brand.

Notes for Claro Argentina users

  • Phone Functionality: Disabling SIM Toolkit is unlikely to affect calls, SMS, or data, as confirmed in tests on the Samsung A01 Core. However, always test after making changes.
  • Android Version: The A01 Core likely runs Android 10 (Go edition), which doesn't support the POST_NOTIFICATIONS permission (introduced in Android 13). This is why revoking notification permissions via ADB doesn't work, making disabling the app the best solution.

2025/05/20

Firefox: Prevent Google AI on web search

 grab Greasymonkey or similar

// ==UserScript==
// @name         Google Web tab redirect
// @match        https://www.google.com/search*
// @run-at       document-start
// ==/UserScript==

(function() {
    let url = new URL(location.href);
    if (!url.searchParams.has("udm")) {
        url.searchParams.set("udm", "14");
        location.replace(url.toString());
    }
})();

 

what it does: it automatically selects the "Web" option.

If tomorrow they change/remover the attribute one could simply hide it using uBlockOrigin. 


2024/04/02

slackware local mirror copy

a work in progress ...
to make sure it is working, first do a full slackpkg update. 
create /data/mirror
then run this script, adapt to your needs:

MIRROR_HOST="ftp.slackware-brasil.com.br"
MIRROR_DIR="/data/mirror"
BWLIMIT=0
RSYNC_OPTS="-avPH --bwlimit=$BWLIMIT --delete --delete-excluded --progress "

rsync $RSYNC_OPTS \
--exclude source \
$MIRROR_HOST::slackware/slackware64-current/ $MIRROR_DIR/slackware64-current
echo "Done!" 



create a vhost inside /etc/httpd/extra/http-vhosts.conf
run/restart httpd
update mirrors in /etc/slackpkg to point to the new virtual web host
run slackpkg update
should give no error

 

update:

my latest update.sh:
 

#!/bin/bash
logger inicio update
MIRROR_HOST="ftp.slackware-brasil.com.br"
MIRROR_DIR="/data/mirror"
BWLIMIT=0

RSYNC_OPTS="-aPH --bwlimit=$BWLIMIT --delete --delete-excluded "

/usr/bin/rsync $RSYNC_OPTS \
--exclude source \
$MIRROR_HOST::slackware/slackware64-current/ $MIRROR_DIR/slackware64-current
logger resultado rsync: $?

and the script to run the updates:

root@rudy2:~/bin# cat goupdate.sh  
#!/bin/bash
slackpkg update
echo listo
read
slackpkg upgrade slackpkg
slackpkg upgrade aaa_glibc-solibs
slackpkg install-new
slackpkg upgrade-all
slackpkg clean-system

The "read" was placed just in case there is no updates to do since slackpkg only report 0 on success

2023/10/05

Show "X" as Twitter in your browser

On a desktop computer (forget about cellphone), grab Firefox if you don't have it already and install FoxReplace addon. Then add a rule with the following substitutions (do not include quotes):

" X " -> " Twitter ", Match case: yes

" X:" -> " Twitter:", Match case: yes

url section can be blank which means all sites having  that text will have it replaced (ie: news)


2021/08/28

PhpUnit Code Coverage Analysis

goal is to be able to select individual directories for the CCA:

 $phpunit --coverage-html=./cca \
--coverage-filter=./app \
--coverage-filter=class   \
--coverage-filter=common  \
--coverage-filter=helpers   \
--no-configuration --color tests/testSuite.php

TODO: rant about XML.

2021/08/26

extracting PHP errors & warnings from apache log

slackware:

cd /var/log/httpd 

or  debian

cd  /var/log/apache2

clear ; cat error.log | grep PHP | grep -P  '(.*])\K.*' -o |sort -u



2021/03/30

How to prevent web admin session expiration on routers (Huawei at least)

Note: this post is just a  public draft.

1)  open Firefox

2) visit your router's administration web page. 

3) Open debugger. 

4) Log in

5) on the Network tab, right click on the first entry (usually index.php or whatever) and under "Copy" select "Copy as cURL"

6) open konsole or whatever terminal you preffer

7) write watch -n 30 and a double quote, then paste and add -k -o /dev/null and close the double quotes

8) hit enter to run watch and go back to your browser.

leave your web admin tab open, otherwise you will have to repeat all the steps.


this trick might be useful on every site that makes your session expire via ajax calls.


2021/01/05

Script to prevent SSH attacks while allowing you to connect from dynamic IP address.

while most of the time connecting to a remote server using openvpn would be a smart choice, sometimes it's not an option. This script is for a linux behind a firewall/router. It's intended to prevent SSH attacks (by simply denying access to the SSH port) while allowing you to connect from your own dynamic DNS, that is, if you have a dynamic ip given by your ISP, otherwise you could simply use iptables.

#!/bin/bash
valor=`host yourdyndns`
OK=$?
if [ $OK -ne 0 ]; then
  exit
fi
addr=$(echo $valor |egrep "address .*" -o)
ip=$(echo $parte |egrep "[0-9\.]*" -o)

whitelist=/root/whitelist
touch ${whitelist}

exists=`cat ${whitelist} | grep "${parte2}"`

if [ $? -ne 0 ]; then
  echo $ip >$whitelist
  iptables -F   iptables -A INPUT -s $ip -j ACCEPT
  iptables -A FORWARD -s $ip -j \ ACCEPT                                                                                         
  iptables -A INPUT -p tcp --dport 22022 -j DROP                                                                                   
fi

add this to rc.local to reload iptables during bootup:

# delete whitelist

rm /root/whitelist

# run previous script

/root/bin/testso.sh


2021/01/03

x2x on Slackware

 I had to write something. This was kinda shocking to me. I was looking for a KVM (Keyboard, Video and Mouse) software to be able to control my notebook from my PC.  Been using an old free version of Synergy, but for some odd reason seems to be compiled for 32 bits and I felt it was a terrible waste to install multilib just to run it. So I decided to look for an alternative.

As usual, went to google and discovered that Slackbuilds has Barrier but when I tried to install it, it asked for avahi, and avahi asked for something else and that something else asked for other-something-else. So I gave up. Then I came across x2x.

This particular software has a wikipedia page so I wont bother telling the story about it.

    cd

    mkdir -p install/util/x2x

    cd install/util/x2x

    wget https://slackbuilds.org/slackbuilds/14.2/desktop/x2x.tar.gz

    tar xf x2x.tar.gz 

    cd x2x

    wget https://slackware.uk/~urchlay/src/x2x-1.30_beta+20200121_ec10215.tar.xz

    su

    ./x2x.SlackBuild

    installpkg /tmp/x2x-1.30_beta+20200121_ec10215-x86_64-1_SBo.tgz

then I have to create an script to connect to my notebook, but before I get into that I had to read the man page, last section, after the examples, gives an important tip when you have multiple monitors 

Left: 1920*1080 (primary)

Right: 1366*768

So I had to do the math and write the parameters to x2x according to the man page:

#!/bin/bash
ssh -YC rudy@macabra x2x -north -to :0.0 -big  -completeregionleft 0 -completeregionup 0 -completeregionright 3286 -completeregionlow 768

I have ssh configured so it wont ask me for password. North parameter means I placed my notebook "over" my monitors and it doesn't really matter from which monitor my mouse goes up, it appears on my notebook and it's able to travel  the entire notebook screen.

What shocked me about this is the fact it's a very old proyect, but works like a charm.


 

    

2020/12/05

Script to reconnect wan via rc.inet1

My router is a Linux PC with 2 lan boards, one for local lan and the other directly connected to the ISP router (configured as bridge). Each time my ISP disconnects me for whatever reason I had to either reboot the computer or keep running rc.inet1 restart until the connection is made.

So, even if it doesn't happen often, at one point I got bored of it and decided to write an script to force the reconnection as soon as possible:

 #!/bin/bash
while true ; do
   clear
   ./rc.inet1 restart
   ping google.com -c 1
   if [ $? == 0 ]; then
      exit
   fi;
   sleep 30
done

 

2020/06/28

Linux: [Draft] how files should be organizaded inside $home

as the title says, this is a draft made public.

what I intend to do here is to organize my thoughts on how scripts and files should be placed inside $HOME user directory, were $HOME refers to the proper /home/yourusername directory inside the Linux filesystem, so I will simply refer  to it as "~" . And by user I mean "normal non-root user", But some of these ideas can be used as root too, specially if you run scripts as root under cron and you don' t want other to take a look at them.

At first I came up with the idea of naming each script with a prefix, like convert.mp42mp3, which is not bad by itself since it makes you easier to remember what the command name should look like or even better, tab key can hint you which is the one you are looking for.

Having all scripts inside a director ~/bin is a good thing, but if if you end up with too many scripts like me, it could be annoying each time you do "ls" inside of it trying to find out what is the script you are looking for. Specially if you don't remember the name of it. PATH variable should also point to it, so each time you want to execute them from another directory you don't have to explicit mention the path of the script you want to invoke. To this end, ~/.bashrc_profile must contain a line like this:

export PATH=$PATH:~/bin:

So I guess ~/bin should contain mostly symbolic links to the proper scripts. Where to place the scripts then? inside directories under ~/bin. Each one of those directories names should represent a category under each script belongs.

Examples of names that comes to mind:

remotes (for SSH access to specific hosts, could be ssh too)
develop (if you are a developer)
cron for scripts that are run by cron. A good example could be one to update date and time using ntpdate, but you can do that inside cron as a one line.
os: scripts that does specific things on the operating system (???)

Some programs don' t need to be installed system-wide: if you plan to keep them updated, you can always decompress them under your home dir. Firefox is a glaring example of that.  What I do is to extract the x64 files under ~/usr/local then create a symlink to ~/usr/local/firefox/firefox. And to avoid any conflict with the system-wide Firefox install, what I do is to remove it.

2020/05/10

PHP code for a permutation algorithm

Since I'm currently writing yet-another-php-code-analyzer, I ended up writing a function or something to allow me to do permutation of the elements of any given array. The goal was to make a call to an anonymous function on each new iteration of the elements. Last time I did this was about 17 years ago using legacy mode, and I barely had the idea how I did it. Unfortunately that code is gone (perhaps still lying around on a CD waiting to be thrown to the trash can), so I had to start from zero.

To make this three days story short, as as TDD wanna-be practitioner, at first I tried to create an object, and as the Transformation Priority Premises states, I started using basic values at first (null, empty array, one element array and so on). But I took several wrong turns (as you can see my repository). Had to read again the TPP blog entry to see what I was doing wrong. On top of that I had a misunderstanding on how the array_splice and slice functions works so I had to write a microtest to make sure I understood them.

So my last try was to kept thing as simple as possible. Created a function to return the permuted values. Tests were up to 0, 1, 2, 3 and 4 elements, once I got it tried one with 10 elements and PHP ran out of memory.

Then I went to the anonymous function version and I got it (doing TDD but using the previous code as guide). Then tried a 10 elements version (which is on the tests but commented out) and php took about 4 seconds to do it on a Core2Duo Mac 5 Notebook (Maverick). For reference, back at the time I did it for the first time, an old Pentium II with 233 mhz clock, using Quick C the same process took about 10 seconds.

Resulting code is here

2020/04/30

bash script to kill a process based on partial name

why you might need this: because sometimes some processes can't simply terminated using the GUI. And after too many years typing ps -A | grep something then kill -9 the id, I decided to write a script to avoid having to type two commands.

Be warned, this will only kill the first process found with the lowest process ID.

it takes only one argument as the partial name to be looked upon the ps -A command.
#!/bin/bash
proc=$(ps -A |grep $1 | head -n 1)
if [ -z "$proc" ] ; then
   echo Error: no processes found with the given partial name!
   exit 1
fi
echo ps -A says:
echo $proc
procid=$( echo "$proc" |grep "[0-9]*" -o |head -n 1)

echo "kill? <Y/N>"
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
    echo Yes
    kill -9 $procid
    echo Testing if the process is still alive ...
    isdead=$(ps -A |grep "$proc")
    [ -z "$isdead" ] && echo Process has been terminated! || echo process is still alive !?
else
    echo No!
fi
you can replace the question with the actual command but I don't recommend it.

2020/04/08

Installing multilib on slackware-current

this is not really big a problem (except if you consider the time one may waste)

today I made a fresh install of slackware-current on a notebook. Since I wanted to install wine to run some specific wine programs, I went to google typed "slackware multilib". I have done this process several times over the years. So, just as before, I reached this page http://www.slackware.com/~alien/multilib/ which I use as a cheatsheet each time I want to install multilib.

the problem arises because its my first time using -current and also because I copied/pasted the commands mentioned in the "Enabling multilib" first four points without reading the next section. As a consequence I ended up with a broken installation. At first I thought I have installed the 32 bits version, but later I realized there's also a "current" directory on the ftp site.

two things that may add up to the confusion: the fact that Slackware-current says "Slackware 15" at the lilo screen and the /etc/slackware-version file says "slackware 14.2"

so the four commands should be:


Quote:
lftp -c 'open http://slackware.com/~alien/multilib/ ; mirror -c -e current'
cd current
upgradepkg --reinstall --install-new *.t?z
upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z

2020/04/02

Installing Waterfox addons (the "hard" way)

Apparently the guys at Mozilla have found/left a hole somewhere on Waterfox browsers engine (since its also from Mozilla but modified) to reveal the real user agent to websites.

(Note to self: check where is it and how to counter it)

Specific case is addons.mozilla.org: even if you have an user agent spoofer and you choose whatever Firefox version, it will not let download the addon you want.

So the trick is to have an old copy of firefox installed and use it to open the addon page you want. Then simply copy the link to install it, paste into Waterfox and remove the last part of the url so it ends with the xpi extension.

2019/11/19

Fix for VLC 3.X video freeze during movies

A few days ago I bough new monitor, a Philco 43" FHD. Since then, VLC started to freeze during playback on H264 MKV files.

I've been searching the web for the problem mentioned in title of this post. I have tried official solution which involves setting a higher value for file and video cache among other things. I have even upgraded it to the lastest version: 3.1.8.

But the problem persisted.

So I ended up doing the most basic thing to do when an specific software doesn't work: downgrading to a working version. Uninstalled version 3 and installed version 2.0.7 and I was able to play all H264 videos with no freeze.

Be warned thou, if you want to play H265 you will need either another player  or converting the files to H264. For converting the file, I made an script with generates an h264 dir in the current directory and then output the converted files there:

rudy@madcat3:~/bin$ cat convertir.h265.sh
#!/bin/bash
mkdir 264
for file in *.mkv
        do ffmpeg  -n -i "${file}" -map 0 -c:a aac -c:s copy -c:v libx264 264/"${file}"
done

2019/11/16

Why we shouldn't use Windows

I have been using both Windows and Linux for more than two decades. I have seen both grow, and when I see notes like this I simply can't resist the temptation to comment about it. The article is written from this viewpoint: you are a lazy/sloppy computer user and you don't care about it or you aren't even aware of it. Or perhaps you have a lot of money to spare and you don't care throwing a lot of cash to Microsoft while getting headaches in return, just because everybody uses Windows. Ok, it's almost everybody. But I think you get my point.

So, I will go one by one telling you why the editor of the article is wrong.

1. Lack of Software:

It was true at the very beginning of the Linux world back in the 90's, for the simple reason Linux was new. But at the beginning of 2000, there was a lot of software which could help you do to common task. Netscape Navigator as web browser, StarOffice as a replacement of MS Office, XMMS as replacement of WinAmp, among others. Today, most of the important software are provided for several platforms and O/S. That is: unless it comes from Microsoft or it's something specific for the Windows platform like most games, but in my scale, games aren't listed as important.

The editor also mentions Wine, it is true that not all software can run under it (perhaps a 5% of them?), specially if its new, but I have been able to successfully able to run most of the software I wanted to run under Linux. Example comes to mind: Synergy (for sharing mouse/keyboard among different machines), MySQL Administrator, Lindo, Blackmagic ATEM control software, games like Diablo 2 and Lineage 2.

When a specific software for Windows does not run under Wine, if you start it from the console it may give you clues on what happened. usually the fix involves taking an DLL and placing it on the right directory. Still YMMV. As a side note, the funny thing is: under Windows, most of the time you will never get an idea of what exactly went wrong.

2. Software updates:

First off: ask yourself this question. Do you really need a software update?  There's an old saying which goes: if ain't broke, don't fix it.

If found myself many times downgrading software just because the newer version introduced bugs (probably as a consequence of not enough software testing). LibreOffice comes to mind. Version 5 re-introduced a bug fixed in early versions related with toolbars flashing like crazy.

Another related and relevant question for you to ask yourself: How far do you want to go in  learning how to properly use the tools you have? I ask this because I want you to be aware of this point: it's not the tool' s fault if you don't care about how to properly use it. Once you can consider yourself a master on the tool usage and if you are *really* in need of something else, then go ahead and take a peek at newer versions. But if you are the typical user who doesn't know what Ctrl-C and Ctrl-V does and you think you are satisfied it with it, then don' t bother.

A note about security: if the software you use is *very* insecure (all Windows version are, I don't care about Microsoft lies) then you should either find a replacement or make a decision to stick with it until the bomb explodes. But, at least, you have been warned.

3. Distributions:

Yeah, there's a huge tree of them. A relevant question is: So what? Each  one of these are targeted for specific user and need. I decided to stick with Slackware because its the most complete and more consistent over the years (and trust me, it's been over 20 years!).


But I have also tried others: Red Hat 7 and 8 (has been using it for some years until I came back to Slackware), Mandriva, Debian and the first one I ever used: SLS (which precedes Slackware).

Oh by the way, formally speaking, "DISTRIBUTIONS" are only a few of them (Slackware, Debian, Red Hat, Suse and another one I can't remember now). "META-DISTRIBUTIONS"  are based on "DISTRIBUTIONS". For example: Ubuntu is based on Debian.

4.Bugs:

Yeah, most software has at least 1 bug lurking. The problem with Windows is: it has too many of them, namely in the form of "features". Operating System should do what you want it to do, and I don't really care if you just want to delete the entire filesystem on your hard disk, a good one will allow you even if it wont boot anymore. On the other side and as I mentioned before, if you don't know what are you doing then it's not the tool fault.

I get really angry when Windows forbids me to delete a file because its  "protected" even with Administrator privileges (happened more than once to me while dealing with viruses).

5. Support.

Let's face it: you don't know whats happening. If you do, you can fix it yourself. But as you really don't, you have no choice and have to call in "the experts". I have earned some money and I still do. There's nothing wrong with that. I have invested too much time learning both Windows and Linux, so I consider at least fair to get paid for both my time and the time I have spent learning.

Which leads me to one conclusion: if you have a problem and you want to solve it, you can either invest money and save time, or invest time learning and save money, but you can't save both and solve the problem.

And talking about Linux: if you have an specific problem, most of the time you can get an proper answer simply by looking at linuxquestions.org.

If Windows were well made as they claim, it should not need any support. But since it does a lot of thing on your back  and they keep you as much in the dark as possible, at some point you end up needing help.

6. Drivers.

Just like point 1, this is totally outdated and false. A complete Linux distro should provide you with drivers for the most hardware around. Specific cases like Nvidia Cards might require downloading a file and execute it. But again, you will need to learn a bit.

7. Games.

Kinda true. But as I mentioned in point 1, some games run just fine under Linux. Mame has both versions for Windows and Linux and its quite fun. Software companies like ID develop both versions of their games.

Main problem with games is: developers usually use DirectX which is essentially a Microsoft library. If the Linux usage increases over the years, at some point they might have no choice but to take a took at alternatives like SDL which is a cross platform library for both Win and Linux.


8. Peripherals

Also false and same as Drivers. Most of the time I connect anything into my Linux, it works. Specially HP Printers, since HP has been doing Linux support since the 90's.

Still, you might into some hardware with doesn't have Linux drivers, usually someone else developed one for it. Just Google for it and read the instructions, just like you should under Windows.

9. Complicated:

this is the most stupid argument mentioned. Do I need to ask again the question I did in point 2? Look around you. The world IS complicated. Life IS complicated. Computers are not from outside of this world nor they came from the Heavens. Computers  are just TOOLS. If you want to take a look into Linux, your goal should be to get the results you want, no matter the cost.

Sure, the editor mentioned my case: I have over 20 years of Linux and yes, to me is a lot easier to deal with things than with Windows. But the results are far different. As a normal user under Linux I have control of everything going around. As an Administrator user under Windows I may have a sightly idea. That' s because I took the time to learn, both Windows and Linux, and I assure you, I have never been as satisfied with Windows as I had been with Linux.

10. Installing Linux is Hard.

Yeah, like everything I mentioned before, if you have read so far, you should realize its also false. Why? Because if you want to do it right, understanding how to properly install any operating system is not a trivial task. It forces you to learn a lot about a lot of things and leaving Linux alone in the middle is a fallacy.

Extras:

11. Privacy.

Since main Windows source code is not open for inspection, no-one can take a deep look to say "yes, it does respect your privacy". And trust me on this: over twenty years I have learned to don't believe anything Microsoft says.


Have you ever read a Microsoft User Agreement? If you don't I will summarize it to you: They are responsible for nothing and you can't blame them for anything that goes wrong.

So if they have a hidden Trojan horse embedded with the Operating System, all three letters agencies can take a peek on your files and your activities even if you think have nothing to hide.

Under Linux, any skilled user who noticed anything suspicious would investigate and spread the word about it like they did with SSH flaw and Bash vulnerability some years ago.

12. Cost

At the time of writting this, Wind 10 Pro version cost 200 u$s on USA which is a lot for most of the rest of the world.

Some Linux Distros may charge you for the media but esencially Linux is free.

If you have a lot of money to spare and don't care about learning, then my suggestion is: go Mac and follow a few rules: get to know your tool and don't update it unless you *really* need it. High chances are that you won't regret it.

Conclusion:

So, my conclusion is: There's no shortcuts to excellence and I honestly believe Linux is taking me to that path.

How to speed up ktorrent 4.3.1 startup

this fix is to address an specific problem with KTorrent startup, since some years ago started very slowly (about a minute) and then a popup appears complaining about a missing web file in maxmind.com

At first I tried to upgrade it but I found out newest version need a newer version of KDE. Since I decided to stick to Slackware 14.2 I had to look for alternatives.

So, here it is:

simply add a line at the end of  /etc/hosts with the following content:

0.0.0.1 geolite.maxmind.com

Close KTorrent if you have it open already then next time you start it  it will load up in a flash (It will show the popup again but this time with a different error).

2019/09/15

installing php from source

./configure --with-config-file-path=/etc/ --enable-mbstring --enable-zip --enable-bcmath --enable-pcntl --enable-exif --enable-calendar --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-intl --with-curl --with-iconv --with-gmp --with-pspell --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --with-openssl --with-pdo-mysql=/usr --with-gettext=/usr --with-zlib=/usr --with-bz2 --with-apxs2=/usr/bin/apxs --with-mysqli=/usr/bin/mysql_config --with-ldap --with-libdir=lib64

rm /etc/php.ini

2018/09/19

Eclipse PDT preventing focus stealing during test running with PHPUnit

you are writting code and at some point you press Ctrl-F11 to run the default test configuration. Thing is: both Console and PHPUnit window will steal the focus from the source editor.
theres  a bug report marked as NEW while its 4 years old and some other fixes for Mac but I ended up with the easiest solution: to do not test under Eclipse and instead use an external console. The script I made in bash is as follows:

#!/bin/bash

clear
inotifywait -m --format %w%f -q -r -e close_write $1 $2 | \
while read CUAL
do
    if [ $? == 0 ]; then
        clear
        phpunit.phar --color  $1
   fi
done

first parameter is the location of the dir containing the tests, or the test Suite. Second parameter is the directory from where inotifywait should watch for changes on filesystem.