Skip to main content

Posts

Showing posts from 2013

Automatically scale image to fit all Android screen types

If you're new to Android development, you will learn that, for each image resource you want to use (for a button for example), you need to provide it scaled to fit all screen resolution. A little bit complicated in fact.

So, take this online tool. It will ask your to which screen your image fits and then adapt it to all other.

http://android-ui-utils.googlecode.com/hg/asset-studio/dist/nine-patches.html

I hope Google with simplify the process and let the IDE do that behind the scene.

Manual installation of SVN connector with Subversive for Eclipse and SpringSource Tools Suite

In the last installation of STS I made, when I had the support of SVN by installing Subversive (from Menu > Help > Install New Software), Eclipse (Kepler) didn't ask me for the SVN connector I wanted to use. In this kind of situation, I discovered that it's possible to install it from an update site provided by Polarion.

So, go to to Polarion, and check out the url from the Download section. Here is the one I used :

http://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/

Then you can install your SVN connector (for me, it's always SVNKit which is a pure Java implementation connector).

Look for 'delete' statements in Oracle history

That's what I had to found in production today. Hopefully, I had access to v$sql

So, here is the miracle :

select v.SQL_TEXT,
           v.PARSING_SCHEMA_NAME,
           v.FIRST_LOAD_TIME,
           v.DISK_READS,
           v.ROWS_PROCESSED,
           v.ELAPSED_TIME,
           v.service
      from v$sql v
where v.SQL_TEXT like '%delete%' OR v.SQL_TEXT like '%delete%'

How to add System Properties with Spring Framework

A cool example grabbed on the web :



<beanclass="org.springframework.beans.factory.config.MethodInvokingFactoryBean"><propertyname="targetObject"><beanclass="org.springframework.beans.factory.config.MethodInvokingFactoryBean"><propertyname="targetClass"value="java.lang.System"/><propertyname="targetMethod"value="getProperties"/></bean></property><propertyname="targetMethod"value="putAll"/><propertyname="arguments"><util:properties><propkey="org.apache.cxf.stax.allowInsecureParser">true</prop></util:properties></property></bean>

Keep web sites readable on mobiles HD screens

As I was working on a new web project which mixed mobiles devices and PCs, I realized that it could be a problem to keep working in pixels to define page elements. Let's take an example :

Create a basic website not specific to mobile devices. Open it on a low resolution screen (such as a Samsung Galaxy Mini). Consider that the text is readable. Now, let's open the same page on a high resolution screen. Text will be too small.

What's the fuck???

By defaut, mobiles (and tablets) lie about their screen resolution

The first thing to know is that 1 pixel is 1 pixel on PCs (for the moment). On mobiles, 1 pixel = 1 "CSS pixel". Hey, what are "CSS pixels". It's easy to understand. Here are real screen resolutions :

320x480px on iPhone 3640x960px on iPhone 4640x1136px on iPhone 5768x1024px on iPad 21536x2048px on iPad 3
But, if you ask for the current resolution in javascript (screen.width), you will retrieve :

320x480px on iPhone 3320x480px on iPhone 4320x568…

Colorize your MacOS X shell

I was tired of my green shell on my Mac and I really prefer the default shell on Ubuntu. So, I googled a few minutes and find a solution.

First of all, each time you open a new shell, MacOS executes your .bach_profile. (It's quite different on Mac compared to Linux. On Linux, the .bash_profile is executed when you open a new session while .bash_rc is executed each time you launch a shell. On Mac, there's no .bash_rc so we use .bash_profile).

So, let's create/edit your .bash_profile with nano .bash_profile and copy paste the following lines. Restart your shell and enjoy the difference.

export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad

How to know if you have a 32 bits or a 64 bits Linux kernel?

Want to install an application on your favorite Linux but you forgot if it a 32 bits or a 64 bits one and you don't know which package you have to download? Don't panic. Just type in a console :

file /sbin/init

This will check /sbin/init file type and you will see if it is a 32 bits or a 64 bits executable file. I tested it on Ubuntu 13.04 and CentOS 6.4.

Insert code into your Blogger posts

Programmers know that blogger doesn't support code insertion (usefull if you need to demonstrate how to program something by copy/pasting code samples). Thus, you need to swicth  Blogger's editor to HTML and paste HTMLized text.

The nicest solution I found to format your code to HTML is to use this online code formatter : http://hilite.me/

So, let's show an example:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.horstmann.violet</groupId>&…

How to secure REST services exposed with Jersey (JAX-RS) using Spring Security

This is the challenge I had to perform. I have to open services to business partners and I want to secure them. I use a Java based application with Jersey API (JAX-RS).

The first thing to consider is : what kind of solution offers the best compromise between security and the effort I'll have to provide to maintain this solution?
After some discussions with developers and experts, the conclusion is : expose your services over https and use Basic authentication (Digest authentication and certificate based authentication are too complex for partners)

So, how to implement that? I delegate "https" to my Apache http servers. But I still need to handle authentication (and authorization of course). After long hours on Google, I understood that it is possible to manage security with Jersey by many many ways. Here is a short list :

Delegate simple authentication and authorization to your container (Tomcat) or to your frontend (Apache)Delegate authentication to your container or fro…

Solution for unreadable Eclipse tooltips content under gnome with a dark theme

After some googlings, I finally found the easiest solution to fix a well known problem with Eclipse code assistant under my Linux with gnome (Mint Mate).

The problem symptom is black text written over dark gray background : simply unreadable.

To fix that, just install gnome-color-chooser, open it, go to "specifics" tab and change tooltips foreground and background colors. Restart Eclipse and enjoy!

PS : to install gnome-color-chooser

sudo apt-get install gnome-color-chooser

This tip also works on Linux Mate.


Remap 'Eject' key to 'Forward Delete' on Mac

I've been trying to program on me Macbook Air for a few weeks. The keyboard is really unacceptable on this laptop and I really prefer to use my HP with a real keyboard that my Mac. But, my HP is fat... too fat and I let it at home. So,  I need to find solution to work with this ugly keyboard.

Today,  I decided to remap the unused 'eject' key to 'forward delete'(why is there an 'eject' key on a Macbook Air???? There's no DVD player...).

To do that, you have to install and configure two free softwares :

KeyRemap4MacBook (http://pqrs.org/macosx/keyremap4macbook/index.html.en)NoEjectDelay (http://pqrs.org/macosx/keyremap4macbook/noejectdelay.html.en) Each software will need to restart the system.

How to make an antislash, a backward delete, a 'start of line' and an 'end of line' on a Mac keyboard

This a two minutes post with my precious Mac keyboard shortcuts :

antislash '\' = ALT + MAJ + /backward delete = FN + DEL or (alternate mode) CTRL + Dgo to start of line = CTRL + Ago to end of line = CTRL + E If you need other shortcuts, you have to know that Cocoa use Emacs shortcuts.
By the way, I definitely hate Mac keyboards.

My Linux Mate 14 config with compiz activated

Today, I share my Linux Mate 14.1 config.

I'm switching from Ubuntu to Mate and I'm a little bit disappointed. So, the first thing for me was to get a desktop theme similar to my Ubuntu. I found Crunchy-orange which is like Ubuntu Human dark theme. Very nice.

Then, I activated compiz. I installed Compiz and CompizConfig Settings Manager (ccsm) from the integrated software center. I opened ccsm and I needed to :

activate windows decoration and change the window decorator command to "/usr/bin/compiz-decorator" to avoid that windows borders disappeared.activate widnows move and resize because, if not, you cannot move anythingactivate compiz on startup with mateconf-editor and change /desktop/mate/session/required_components/windowmanager from 'marco' to 'compiz' Wooo... I backed to the future!!! This looks like Ubuntu 10.04 ... but with a kernel up to date  :) :) :)