lundi 30 décembre 2013

addSubview in UIAlertView deprecated in iOS7


There is a solution....

UIAlertView *alertView;

//a simple alert view with a simple message:
alertView = [[UIAlertView alloc]initWithTitle:nil message:@"My message here..." delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
    

//a simple activity indicator:
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.frame= CGRectMake(50, 10, 37, 37);
activityIndicator.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin;    
[activityIndicator startAnimating];

//the magic line below,   
//we associate the activity indicator to the alert view: (addSubview is not used)
[alertView setValue:activityIndicator forKey:@"accessoryView"];
    
[alertView show];

mercredi 21 août 2013

[Knockout] How to define which properties are serialized in JSON ?


//we have a person structure, with a first name, a last name, 
//and a full name (computed field) :
function Person(first, last) {    
    this.first = ko.observable(first);    
    this.last = ko.observable(last);    
    this.full = ko.computed(function() {
        return this.first() + " " + this.last();
    }, this);
}


  • Solution 1
//we define which properties are serialized in JSON 
//(in this case, only full) and how they are serialized 
//(in this case, a simple string) :
Person.prototype.toJSON = function() {
   //only full :
   return ko.utils.unwrapObservable(this.full); // we return a string of the value
};
var person=new Person("a","b");
console.log(ko.toJSON(person)); 
// => it will generate : "a b"


  • Solution 2
//we define which properties are serialized in JSON 
//(in this case, first + last name):
Person.prototype.toJSON = function() {
    var copy = ko.toJS(this); //easy way to get a clean copy
    delete copy.full; //remove an extra property
    return copy; //return the copy to be serialized
};
var person=new Person("a","b");
console.log(ko.toJSON(person)); 
// => it will generate : {"first":"a", "last":"b"}



Source :http://www.knockmeout.net/2011/04/controlling-how-object-is-converted-to.html

mercredi 14 août 2013

[Python] convert timestamp -> datetime -> timestamp


#convert a date to a timestamp
def convert_to_timestamp(dt):
    return calendar.timegm(dt.utctimetuple())

#convert a timestamp to a datetime

def convert_to_date(timestamp_long):
    return datetime.datetime.utcfromtimestamp(timestamp_long)



mercredi 19 juin 2013

Bottle Restful - Links


http://nongraphical.com/2012/08/using-bottle-py-in-production/

http://www.marginhound.com/bottle-py-resources/

http://myadventuresincoding.wordpress.com/2011/01/02/creating-a-rest-api-in-python-using-bottle-and-mongodb/

http://mark-kirby.co.uk/2013/creating-a-true-rest-api/

http://gotofritz.net/blog/weekly-challenge/restful-python-api-bottle/

Find files under Linux containing CRLF


find . -not -type d -exec file "{}" ";" | grep CRLF

mardi 18 juin 2013

Test your web site with different browsers

Spoon.net Browser Sandbox provides a browser plugin that allows you to execute different browsers inside an isolated virtual environment and it is not necessary to install them. 

You can run Internet Explorer 6 under Windows 8 for example :)
The virtualized browsers run locally : you can test your web site hosted on your internal servers.


http://spoon.net/browsers

Online Text Comparator

http://www.text-compare.com

mercredi 22 mai 2013

Free software for Video Capture/Screencast

Hi all, 

I have found a powerful and free software : MSI Afterburner

You can download it here : http://event.msi.com/vga/afterburner/overview.htm

Even if you have not a MSI video card, you can use AfterBurner


Steps :

- Download it

- Run it

- Click on "Settings" :



- Go to "Video capture" tab :


- Choose your hotkey (which key to press to start/stop the recording) :



That's all ! :o)


jeudi 25 avril 2013

Oracle : counting the number of sessions used for each client

Retrieving the number of sessions used for each client :

select 

           username, osuser, machine, count(*) as sessions
from 

           v$session
group 

           by username, osuser, machine
order 

           by sessions desc

Oracle : deleting multiple sessions with certain conditions (like machine=...)

Generate queries for deleting all sessions with certain conditions (like machine=...) :

SELECT

            'ALTER SYSTEM DISCONNECT SESSION  '''||s.sid||','||s.serial#||''' IMMEDIATE;'

FROM 
            gv$session s
            JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id


WHERE   

            s.type != 'BACKGROUND' and s.status='INACTIVE' ;




Other interesting conditions :


  • s.username : the username used to connect to the DB
  • s.schemaname : the name of the schema
  • s.status : ACTIVE/INACTIVE
  • s.osuser : the Windows/Linux/... username on the remote computer (the client)
  • s.machine : the name of the remote computer (the client)


mercredi 24 avril 2013

Xeno Galaxies, a futuristic Minecraft-like game

A friend is currently working on an action role playing space game with 2 other guys : Xeno Galaxies.

You can build ships, structures, cities, explore space, board ships, fight against aliens, etc...

All is designed like Minecraft, based on cubes.

Single player / multiplayer features.


There are some screenshots and a video trailer here :

http://www.indiegogo.com/projects/xeno-galaxies

They would like to fund, for accelerating the development (and for working on it at full time). So don't hesitate to give 5$ for this project, to Like(with Facebook), ...

Hotel Legere Luxembourg, un hotel propre

Bon, c'est parti pour un nouvel hôtel. Aujourd'hui c'est l’hôtel Légère se trouvant au Luxembourg, à Munsbach.

Alors, première chose à savoir (et c'est mon point de vue) : vous avez une chance sur deux d’être accueilli froidement (de façon hautaine) . 

Deuxième point : les ascenseurs sont... lents. Vous avez le temps de vous gratter les fesses sereinement...

Au niveau de la chambre, quand on rentre, c'est impressionnant en bien et en mal :
- c'est blanc, trop blanc à mon gout. Ça fait déco moderne pour certain, ça fait ambiance "hôpital" pour d'autres.

- c'est propre, très propre. Hormis le sèche cheveux qui a un peu de poussière au niveau de sa grille d'entrée située au dos de l'appareil, j'ai du mal à prendre cet hôtel à défaut concernant la propreté : dessus de la télé LCD propre, bureau et tables de chevet sans poussière.

- "blanc oblige", le bas des murs n'est plus forcément "blanc" : des traces noires par ci, par là

- dans les chambres "de base", vous avez un panneau de contrôle qui vous permet de contrôler la climatisation. Dans certaines chambres "de base", vous avez en plus des volets électriques que vous avez la possibilité de manipuler via ce même panneau de contrôle.

- mini bar offert : encore heureux...

- gèle douche, shampoing : là dessous chapeau ! ça sent bon, ça a l'air de laver. Et sans paraben ! wonderful !

- aucune documentation/brochure : quelle est ma ligne directe ? quelles sont les activités à proximité ? Là dessus, c'est "débrouille toi", "vive internet pour trouver", ou "demande à l'accueil"...

- couette pour une personne, alors que le lit est un double : trouvez l'intrus...

- douche à l'italienne : c'est super, on ne met pas de l'eau partout, et l'eau se règle très facilement.

-toilettes : on a l'impression de rentrer dans des toilettes entourées de placoplatre. Cela fait artificiel...

- le lavabo et la douche donnent directement sur la chambre : pas de réelles séparations. Tout est ouvert, on se trouve derrière du verre. On aime ou on n'aime pas. 

-la petite poubelle, pour ceux qui la cherche, se trouve dans le placard sous le lavabo et aussi sous le bureau.

-le bureau au bout du lit : super, cela permet de travailler soit assis sur le fauteuil, soit assis sur le lit devant la télé.

-en parlant de la télé : gros moins : il n'y a que 5 chaines en français (et pas forcément les meilleures à mon gout) : France2 (et encore, les films passent en anglais lorsque c'est disponible), France3, France5, FranceÔ, LCP. A part ça, tout le reste est en anglais.

-d'ailleurs cette ambiance "internationale"/anglaise se retrouve aussi jusqu'à l'accueil. Certains hôtes/hôtesses ne savent pas parler en français. Cela peut être embêtant pour certains....

-le lit, un peu ferme mais ça me va.

-insonorisation : RAS, hormis le fait que l'on entend les gens passaient dans le couloir lorsqu'ils portent des talons ou marchent de façon "imposante".

Service de chambre : zéro. Ne comptez pas sur cet hôtel pour que l'on vous apporte votre petit déjeuner au lit, ni que l'on puisse vous apporter un encas le soir en chambre. A part le ménage  personne ne se déplace pour vous. [MAJ : Apparemment, un certain "type" de clientèle peut bénéficier d'un service en chambre....]

Petit déj : un très grand choix (céréales, pains, fromage blanc, salades de fruits, jambons etc....) 

En gros, ce qui peut être améliorer "facilement" : 
- un travail doit être fait sur l'accueil des personnes (la façon de parler, et connaitre un minimum le français).
- chambre : penser à nettoyer le bas des murs et éventuellement mettre en place un "vrai" service de chambre pour tout le monde (vu le nombre d'étoiles de l'hôtel...)


N'hésitez pas à me laisser vos commentaires.

mardi 12 mars 2013

NH Hoteles Luxembourg, un hôtel que je deconseille

Je viens d'avoir la "chance" (mode [ironie] activé) de séjourner dans un hôtel de la chaîne NH Hoteles. 

NH Hoteles ? C'est 400 hôtels dans 26 pays, + de 30 ans d'existence, etc.

Bon, tout ça, c'est bien beau sur le papier (et sur leur site internet), mais cela donne quoi en vrai ?

Je vais vous donner mon avis "perso" en tant que client durant un séjour au Luxembourg, dans une chambre "standard" (pour info, il n'y a qu'un seul hôtel NH Hoteles au Luxembourg).


Les + :

  • "élégant" (pour le hall en tout cas)
  • grands couloirs (idéal si j'étais en fauteuil roulant)
  • coin bureau dans la chambre (idéal si j'étais un PDG)
  • un fauteuil avec repose pieds (idéal si j'étais une personne âgée)
  • fer à repasser, bouilloire sachets café/thé offerts dans la chambre (peut être le seul truc idéal "tout court")
Les - :
  • climatisation qui n'a pas l'air de fonctionner (alors qu'on est en hiver, température négative à l’extérieur)
  • internet : débit "trop limité" (128Kbit/s selon eux) et quantité de données en "download" ridicule (100Mo) par tranche de 24 heures. Très difficile de consulter ses mails, de faire du Skype ou même de simplement naviguer sur internet. Il est pourtant indiqué sur la brochure "high-speed internet access" ahah laissez-moi rire
  • porte communicante (avec la chambre d'à coté) mal isolée (j'entends ce qu'il se passe à coté, et j'arrive même à parler à mon voisin à travers)
  • baignoire jaunie (limite orange) avec des taches noires... ça a l'air d'avoir pas mal vécu...

N'hésitez pas à me laisser vos commentaires sur cet hôtel :o)

vendredi 25 janvier 2013

Oracle : order by, different results [problem]


When you execute a SELECT .... ORDER BY query from a sql client (like SQuirreL), you may have a result with an order that is not the same when you execute your query with another sql client or inside your Java application.

It's depending on some locale parameters (country and language) on the client side.

For a Java application, you can update your locale by adding parameters to your jvm. 
For example : -Duser.country=en -Duser.language=en

There are more solutions here (adding a NLSSORT() to your ORDER BY clause, etc...).

FYI, you can check the NLS_LANGUAGE and the NLS_SORT on the Oracle server side :

Query:
select parameter,value from NLS_DATABASE_PARAMETERS where parameter in('NLS_LANGUAGE','NLS_SORT');

Result:
NLS_LANGUAGE AMERICAN
NLS_SORT BINARY


Source : http://stackoverflow.com/questions/8818201/oracle-order-by-different

lundi 14 janvier 2013

CherryPy and Python 3 : Port not bound / _Timer / _Event

Hi all,

I have recently updated my Python 3 and my CherryPy to the latest versions.

After that, different problems occur during the startup process of my application(using CherryPy):

These issues are marked as "resolved" ...  but in fact they are resolved in the release 3.2.3.

This release 3.2.3 is not easily accessible :
- not present on the CherryPy website on the "Download" section
- not present on the CherryPy bitbucket wiki
=>On the "Download" section and on the bitbucket wiki, the last version is the 3.2.2 :(

For downloading the 3.2.3, you must go to the project on bitbucket.org and click on "Downloads" 

Tada :)

samedi 12 janvier 2013

Crème au chocolat avec de la Maïzena

Pour 3 personnes.

Ingrédients :


  • 50 g de Maïzena 
  • 50 g de chocolat en poudre 
  • 75 g de sucre poudre 
  • 750 cl de lait

Préparation :
  • Dans une casserole, verser une partie du lait avec tout le sucre et porter à ébullition.
  • Dans un saladier, mélanger la Maïzena, le chocolat en poudre et le reste du lait.
  • Verser le lait chaud dans le saladier et mélanger.
  • Reverser le tout dans la casserole et faire réchauffer en mélangeant. La crème s'épaissit.
  • Verser dans des ramequins et servir frais.



lundi 7 janvier 2013

SQL : Trier dans l'ordre des valeurs présentes dans la clause IN()

Si vous avez une requête SQL avec une clause IN(<valeurs>), et que vous souhaitez récupérer les rows dans un ordre bien précis (par exemple dans l'ordre des valeurs présentes dans le IN()), il existe une solution :


Sous MySQL:
SELECT id FROM table1 WHERE id IN(1, 20, 45) ORDER BY FIELD(id, 1, 20, 45)

Sous Oracle:

SELECT id FROM table1 WHERE id IN(1, 20, 45) ORDER BY INSTR('1, 20, 45', id);
Source : http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause



N'hésitez pas à me laisser un petit commentaire :)

Categories