Wednesday, October 22, 2014

Alpha values to HEX for Android Material

The new thing from Google - Material - talks about alpha values for black and white ... so how to convert 87% to HEX? Thanks to this guy on stackoverlfow:

100% — ff
99% — fc
98% — fa
97% — f7
96% — f5
95% — f2
94% — f0
93% — ed
92% — eb
91% — e8
90% — e6
89% — e3
88% — e0
87% — de
86% — db
85% — d9
84% — d6
83% — d4
82% — d1
81% — cf
80% — cc
79% — c9
78% — c7
77% — c4
76% — c2
75% — bf
74% — bd
73% — ba
72% — b8
71% — b5
70% — b3
69% — b0
68% — ad
67% — ab
66% — a8
65% — a6
64% — a3
63% — a1
62% — 9e
61% — 9c
60% — 99
59% — 96
57% — 94
56% — 91
56% — 8f
55% — 8c
54% — 8a
53% — 87
52% — 85
51% — 82
50% — 80
49% — 7d
48% — 7a
47% — 78
46% — 75
45% — 73
44% — 70
43% — 6e
42% — 6b
41% — 69
40% — 66
39% — 63
38% — 61
37% — 5e
36% — 5c
35% — 59
34% — 57
33% — 54
32% — 52
31% — 4f
30% — 4d
28% — 4a
28% — 47
27% — 45
26% — 42
25% — 40
24% — 3d
23% — 3b
22% — 38
21% — 36
20% — 33
19% — 30
18% — 2e
17% — 2b
16% — 29
15% — 26
14% — 24
13% — 21
12% — 1f
11% — 1c
10% — 1a
09% — 17
08% — 14
07% — 12
06% — 0f
05% — 0d
04% — 0a
03% — 08
02% — 05
01% — 03
00% — 00

Monday, March 10, 2014

Android EditText - hide soft keyboard on focus but keep cursor visible

In my current android app I have a lot of input fields (EditText) and I need to disable the soft keyboard on focus, because I use my own kind of input widget.

I've try several solutions, but on some was the cursor not visible or the soft keyboard was blinking on focus for some ms. But this one works:

    public static void disableSoftKeyboard(final EditText v) {
        if (Build.VERSION.SDK_INT >= 11) {
            v.setRawInputType(InputType.TYPE_CLASS_TEXT);
            v.setTextIsSelectable(true);
        } else {
            v.setRawInputType(InputType.TYPE_NULL);
            v.setFocusable(true);
        }
    }

Thursday, February 13, 2014

Disable FTP Server (proftpd) in Plesk

I don't need proftpd on my root server, I use sftp, so:

vi /etc/xinetd.d/ftp_psa

change

disable         = no

to 

disable         = yes


Thursday, November 28, 2013

Monday, March 25, 2013

Delete empty mails from maildrop

I don't know why I have a bunch of empty mails on maildrop folder of postfix, but ...

find /var/spool/postfix/maildrop/ -size 0 -name '*' -exec rm {} +

Postfix. Delete some mails from the queue

Change "123@example" to something you need ...

mailq|grep '123@example'|awk {'print $1'}|grep -v "(host"|tr -d '*!'|postsuper -d -

Wednesday, October 17, 2012

PHP session timeout cookie lifetime


There are many ways to set cookie based session timeout in PHP. You can edit your php.ini or put it in .htaccess but I choose for today this piece of code:

<?php
ini_set('session.gc_maxlifetime', 172800);
ini_set('session.cookie_lifetime', 172800);
session_start();
?>

The session above will be valid for 2 days.

Thursday, September 27, 2012

Redirect all pages to new domain


This code in .htaccess does redirect all requests to a new domain:

RewriteEngine On
RewriteRule ^(.*)$ http://WWW.NEW-DOMAIN.COM/ [R=301]

The problem was, all other directives work like: 

www.old-domain.com/bla -> www.new-domain.com/bla

but I need


www.old-domain.com/bla -> www.new-domain.com

www.old-domain.com/more/bla -> www.new-domain.com

So the htaccess code above works fine.




Friday, September 21, 2012

Kill Android AsyncTask if it hangs



I have an AsyncTask in my Android App that makes a network call. It may happen that the call for ever stuck. So I need a solution to handle this issue.


First I create a TimerTask that call cancel() to my AsyncTask:


class TaskKiller extends TimerTask {
private AsyncTask<?, ?, ?> mTask;
public TaskKiller(AsyncTask<?, ?, ?> task) {
this.mTask = task;
}

public void run() {
mTask.cancel(true);
}
}


Then I use this TimerTask with a timeout I need:


protected Boolean doInBackground(Object... params) {
Timer timer = new Timer();
timer.schedule(new TaskKiller(this), TIMEOUT);

// do some stuff, network, what ever can hangs
 // ...
// cancel the task if all things are done

timer.cancel();
}


onCancelled() will be called if your stuff needs longer than your timeout:

protected void onCancelled() {
// do something, inform user etc.
}

Thursday, September 20, 2012

htaccess non-www and www http to https


RewriteEngine on

RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

<Files .htaccess>
order allow,deny
deny from all
</Files>

Wednesday, September 19, 2012

htaccess non-www to www


RewriteEngine on

RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

<Files .htaccess>
order allow,deny
deny from all
</Files>

Tuesday, September 18, 2012

Decrypt private key

I purchased today a Wildcard SSL certificate from RapidSSL. When I tried to insert it in Parallels Plesk, the private key was wrong. I found out that I must decrypt it first:

openssl rsa -in name_of_file.key -out decrypted.name_of_file.key