Thursday, 29 March 2018

Beauties of R: isNumeric

So, in R apparently there is no function in the core packages to test if a string would work out as a number.

There are really unappealing workarounds, like:
https://stackoverflow.com/questions/16194212/how-to-suppress-warnings-globally-in-an-r-script
This uses global settings (options(warn=-1), bonus points for the magic number), risking failing to recover in case of erroneous situations, potentially affecting other threads unwittingly/unintentionally as part of a larger scale quest, etc.


Probably the slightly more laycoder-minded need to lay out their homemade witchery for this maybe with a regex. Or use something slightly external e.g. limma from the bioconductor repository. (And then ... there is a function called isNumeric. How ... why wouldn't you subconsciously confuse that with is.numeric? Cautious language design could come to the rescue ...)

Seriously? Is it the time when non-mathsy JS's isNaN() functionality clearly beats R?? :D No way. What am I missing?

Anyway, just for the huge fun here's my quick regex solution...

> test.values = c("5", "56", "5.67", ".67e+30")
> grepl("^([+-]?)((\\d+)|(\\d*[.]\\d+))([eE]([+-])?\\d+)?$", test.values)
[1] TRUE TRUE TRUE TRUE


Update: suppressWarnings(), for instance. I did overlook that one. However, what you get there is suppression of all warnings, not only the one you wanted to suppress. Typically, the range of warnings is not defined by the documentation of the function guarded by this function... so you never know what you got rid of.

Seems like a built in function would be a beneficial addition.


Thursday, 22 March 2018

Python console progressbar "???"

1%^M142/6456


Hence, 142 / 6456 < 0.02.

Good old Python (???) progressbar .. broke the mold, eh? Don't want to know ;)

Wednesday, 14 February 2018

No swap on AWS

Using Linux on AWS? As of now, there's no swap file then by default coming out of the images.

See the below two links for advices

How can I check if swap is active from the command line?
Why don't EC2 ubuntu images have swap?

A brief highlight roughly from those is this helpful command, to confirm your suspicion:

cat /proc/meminfo | grep -i swap

This will likely provide you with big fat zeroes as below:

SwapCached: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB


How cool is that (without a warning at the very least)...

Watch out when doing memory intensive processing (which is a less than good sign :) but happens), for any reason.

Friday, 9 February 2018

Love hate / Ubuntu & Android

When having to transfer files like

mkdir FromPhone/DCIM; sudo mv /media/motog/Internal\ shared\ storage/DCIM/Camera FromPhone/DCIM/

After apt installing this'n'that and mounting with
sudo jmtpfs /media/motog/

Hm... not feeling like a plug & play Windows user that much anymore :)

Too bad I'll never remember/work out in retrospect if it's just my faulty ("universal") laptop charger transferring a noise that normally makes my touchscreen crazy - and yes, it may have failed file transfers too - which was playing tricks with me.

Because anyhow, it just works now.

Tuesday, 10 October 2017

Wednesday, 27 September 2017

Some things I like about >>>this

Beginner's Python stuff it may be, still there are some very important concepts wrapped in this ...

>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

(... and some things I'd be too happy to debate or discuss, such as "hard to explain" is very subjective - a picture sometimes speaks a thousand words, and what if it's a sound, sculpture; prior education, a shared interest to come at help, you name it, rules are not really rules, but guidelines for the here, now and us, but let's not get lost in the details, rather get things right ... good thing.)

Monday, 11 September 2017

The irony ("life always finds a way")

Fixding. So typocal :) Though I guess it's just appreciable self-irony.



Anyway, you can't escape fate - "if they cut off one head, two more shall take it's place".