Robert de Bock

Using GPRS from KPN on your Mac OS X machine

As it was quite difficult to find all the correct settings, here is how to connect your Mac os X machine to GPRS as provided by KPN in The Netherlands.

  1. Download a set of new script from Ross Barkman's Home Page. (In my case I needed to download the Nokia 3G scripts for my Nokia 3109c.)
  2. Connect your phone to your Mac using the "Bluetooth" item in "System Preferences".
  3. Configure "Internet Connect" using these settings.
    • Telephone Number: internet
    • Account Name: (empty)
    • Password: (empty)
  4. Unselect "Send PPP echo packets" in "System Prefrences" - "Network" - "Bluetooth" (configure) - "PPP Options".

You are now configured, within Internet Connect, hit "Connect" and see if it works!

Playing the trumpet for non musical (but technical) people.

Here is how to play a few songs on a trumpet, not based on notes, but based on numbers. (This because I do not understand notes.)

All numbers mentioned here refer to a valve number. Valve number 1 is closed to you, followed by valve number 2. Valve 3 is played with you ring finger.

First of all, there are 7 tones to be played within each natural tone, from high to low:

0
2
1
12
23
13
123

Try that a few times, you will notice that pitch is descending. (Reverse it for ascending)

The natural tones will be indicated with a + or even ++ sign. So; 0 is pretty low, 0+ is faily high, 0++ is very high for a beginner.

Lets start a song:
0 13+ 12+ 0

0 13+ 12+ 0

12+ 1+ 0++

12+ 1+ 0++

0++ 12+++ 0++ 1+ 12+ 0

0++ 12+++ 0++ 1+ 12+ 0

0 13 0

0 13 0

Time to start Garageband and read some notes using the uber-easy "Intrument Tuner" (Apple-F key).
0 0 0+ 0+ 12++ 12++ 0+
B B F F G G F

1+ 1+ 1+ 1+ 12+ 12+ 13+ 13+ 0
E E E E D D C C B

13++ 13++ 1+ 1+ 12+ 12+ 13
F F E E D D C C B

13+ 13+ 1+ 1+ 12+ 12+ 13
F F E E D D C C B

0 0 0+ 0+ 12++ 12++ 0+
B B F F G G F

1+ 1+ 1+ 1+ 12+ 12+ 13+ 0+ 0
E E E E D D C F B

SSH door knocking to zero

Do you see your log files filling up with failed ssh login attempts? Read on, I have seen the rate drop from thousands of attacks per day to 0.

Here are some stats of "top days". The last column represents the number of failed login attempts. Well you will understand that it was not me trying to login thousands of times.

13 Aug 2007 - 2811
15 Aug 2007 - 2997
16 Aug 2007 - 2961
19 Aug 2007 - 4408
26 Aug 2007 - 1071
27 Aug 2007 - 524
28 Aug 2007 - 1371
5 Sep 2007  - 1743
8 Sep 2007  - 4430

After applying some extra rules, the rate dropped to 0. (ZERO!) Here is the content of my /etc/sysconfig/iptables:

# Generated by iptables-save v1.2.11 on Thu Sep 13 09:05:18 2007
*filter
:INPUT ACCEPT [140:7830]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [579921:740182530]
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 1.1.1.1 -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 2.2.2.2 -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 3.3.3.3 -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 4.4.4.4 -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p udp -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j DROP
COMMIT
# Completed on Thu Sep 13 09:05:18 2007

And don't forget to change the fake IP addresses 1.1.1.1, 2.2.2.2, 3.3.3.3 and 4.4.4.4 to IP addresses of machines you can also login to.

Share screens with GNU Screen

When you are troubleshooting Linux, UNIX, BSD, or whatever platform that has GNU Screen installed, you can share a screen to see what you are doing.

Combine GNU Screen with an instant messenger, and you have a great live collaborate support tool.

First start screen:

screen

Then enable multiuser mode:

[CTRL]+[a]
:multiuser on

And let another person see your screen:

screen -x

You are now both working in the same screen. Please also ready my article about the undervalued program screen.

List of Google tools that you should use

To remember all the tools that Google provides, an (personal) order of usefulness:

Google Search - Search the web.
Google Apps - Use Gmail, Calendar, and other "office tools".
Google Analytics - Extensively monitor your websites.
Google Maps - Satellite images of the earth.
Google AdWords - Display your add in Google searches.
Google Webmaster Tools - See how Google sees your website.
Google Trends - Check search history graphs for keywords.

Compare searchwords to make a buy decision

Here is a simple trick to determine what product is most popular. I use it to make buy decisions for products.

Here are some examples:

  1. An Ipod or a Zune? - Ipod!
  2. A Nikon or a Canon Camera? - Canon, but I still choose Nikon.
  3. The D40 or the D200? - D40!
  4. Apple or Linux as a desktop? - Close call, happily I am using Apple, and have switched from Linux some years ago.
  5. A Hybrid Toyota, Honda or Lexus car? - Close call, Toyota.

Google Trends graph

Tux and Firefox image in coloured ASCII art

Firefox in ASCII art Here are two comparable, but cool images of Firefox and Linux in ASCII art. I happen to love ascii art, also be sure to check the alt.ascii-art group and the aalib library for linux, that can even display movies in ASCII! Tux in ASCII art

Joining data in SQL

The first time somebody explained to me what a (SQL) "join" was, I was confused and amazed. Let me try to help you understand what a join is by simply explaining a situation.

First of all you will have to know that it is normal to store information into different tables in databases. This makes managing the data more efficient. So lets assume that we already have two tables in a database:

+-------+
| books |
|-------+   +---------+
| id    |   | authors |
| title |   +---------+
| aid   |---| id      |
+-------+   | name    |
            +---------+

What I tried to "draw" is that two tables exist, and they are sort of related to each other. The books aid is related to the authors id.

You can see what tables are available by this command:

SHOW TABLES;

In our case the output will be:

mysql> SHOW TABLES;
+----------------------+
| Tables_in_mydatabase |
+----------------------+
| books                |
| authors              |
+----------------------+

For a more detailed scheme of how these individual table are configured, use "DESCRIBE table;".

Now imagine the content of these tables looks like this:

SELECT * FROM books;

+-------------------------------------------------+
| id | title                                | aid |
+-------------------------------------------------+
|  0 | Harry Potter and the deathly hallows |   0 |
+-------------------------------------------------+

And our other table "authors":

SELECT * FROM authors;

+-------------------+
| id | name         |
+-------------------+
|  0 | J.K. Rowling |
+-------------------+

You can see that these things are related right? J.K. Rowling wrote that book of Harry Potter.
To "attach"/"connect"/"join" the data in both tables, you can use a query like this:

SELECT * FROM books, authors WHERE books.aid=authors.id;

As you see, you indicate a field (id, title, aid, name, etc) with the corresponding table before the field, separated by a dot. This is a bit weird, but how would the SQL engine otherwise be able to know the difference between the "id" field of "books" and "authors"?

The output will look like this:

+---------------------------------------------------------------------+
| id | title                                | aid | id | name         |
+---------------------------------------------------------------------+
|  0 | Harry Potter and the deathly hallows |   0 |  0 | J.K. Rowling |
+---------------------------------------------------------------------+

Wow, you just joined these two tables! But, there is a bit more to know about joining tables; you don't need those "id" and "aid" fields right? They are just there to link the data, not to show to everyone that wants to buy a book of your website. Here is how to properly structure a query then:

SELECT books.title, authors.name FROM books, authors WHERE books.aid=authors.id;

Again, you indicate fields by adding the table name in front of the field, followed by a ".".

The ouput would now look like this:

+-----------------------------------------------------+
| title                                | name         |
+-----------------------------------------------------+
| Harry Potter and the deathly hallows | J.K. Rowling |
+-----------------------------------------------------+

Well, that is the result you wanted to see right?

You can also join more then one table, just add "AND table.field=othertable.field" to the last part of your query. Do know that joining is quite CPU intensive, especially those multiple joins.

There are some variations on how to indicate the table. Until now I used the table.field format, which is my absolute favorite, but you will see queries abbreviated like this:

SELECT b.title, a.name FROM books b, authors a WHERE b.aid=a.id;

This code looks rather fuzzy to me, I never use it. Imagine you'd have to join several tables:

SELECT b.title, a.name, p.name, w.price FROM books b, author c, publisher p, weight w WHERE b.aid=a.id AND p.bid=b.id AND w.bid=b.id;

It is up to you, but I suggest not using these difficult abbreviations, as the only tend to confuse.

Good luck joining data, you have learnt a valuable skill today!

IP coolness

Your IP address as a bitmap
Check out this utility, that checks how cool your IP address actually is... Also check out the IP address of this website.

Google Earth FlighSimulator

Screenshot of Google Flight SimulatorTake a look at the page that explains how you can use Google Earth as a Flight Simulator! That is good news if you want to see your country from flight view! I will certainly try this at home! Google offers so many great services, it scares me how dependent I am becoming of services that they offer.

Next time you launch Google Earth, hit this combination:

Command+Option+A or CTRL+ALT+A

Syndicate content