Quick python socket server that stdouts all input

And here’s a simple python script that allows you to connect to your machine and debug your client output. It basically echoes to stdout everything that gets passed to it. Specially useful to debug HTTP GET requests.

#!/usr/bin/env python
#  Disconnect the client.
#  Stop the server.

import socket
import sys

host = ''
# host = 'localhost' # to restrict to localhost connections only.
port = 3434
pending_connections = 1
buffer_size = 1

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(pending_connections)
try:
  while True:
      print "nnWaiting for connection..."
      client, address = s.accept()
      print "Client connected: " + str(address)
      while True:
        data = client.recv(buffer_size)
        if not data or chr(3) in data:
          break
        elif chr(24) in data:
          sys.exit(0)
        sys.stdout.write(data)
      client.close()
      print "nClient disconnected: " + str(address)
finally:
  s.close()

Rounded corner bitmaps on Android

In Android, you can create bitmaps with anti-aliased rounded corners on the fly using the code snippet below. If anyone finds a more obvious way please feel free to ping me – I’d really love to know about it.

(This code may be used under the terms of Apache License – Version 2)

  public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
        bitmap.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(output);

    final int color = 0xff424242;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
    final RectF rectF = new RectF(rect);
    final float roundPx = 12;

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);

    return output;
  }