août 11

WordPress plugin for booking on hostel website

I just put on wordpress plugin repository a plugin that I create for a hotel.

Demo mp booking

Demo mp booking

 

mai 4

Séoul by night

Allez ! je vous emmène faire un petit tour de Séoul la nuit, lorsque les grands buildings s’illuminent. Une ville qui semble ne jamais s’arrêter, vivante, au rythme du scintillement des échoppes et de la musique, k-pop et autres, qui résonne à chaque coin de rue.

On commence notre ballade du coté du quartier de Hongdae (홍대) « Hongik University ». Cette université est connu pour son département des beaux arts et de design. Le quartier est vivant, beaucoup de jeunes s’y rendent pour commencer a faire la fête ou pour faire du shopping. On peut croiser quelques jeunes artistes aux tenus extravagantes et au look très original.

Rue d'Hongdae

A 30 minute de bus se tiens une tout autre ambiance, le marché de Kwang jang (광장시장) ou l’on peut manger quelques plats ou bien faire ses courses.

Le marché de Kwang jang

sundae

Les plus gros sundae de Seoul

gateaux coreens

Gâteaux de mariage?

Pour finir nous avons fait un petit tour du coté de Chung gye chun (청계천).

Des petits lampion, les lanternes de lotus, sont accroché le long des avenues un peu partout dans la ville pour célébrer bientôt l’anniversaire de Bouddha : le 5 mai.

 Chung gye chun

Quelques exhibitions lumineuses tout du long de la rivière artificielle sont impressionnantes, l’endroit idéale pour finir cette petite excursion nocturne.

Chung gye chun light

avr 26

A table

Qu’est ce qu’on mange aujourd’hui à Seoul?

Il y a beaucoup de choix pour manger ici, il y a tout d’abord une quantité incroyables de snacks et de restaurants différents ouvert tous les jours à toutes heures mais le mieux est d’aller dans les « the bop » ou l’on peut manger un peu de chaque petit plat réparti sur la table. Le plus célèbre de ces petits plats est le kimchi (김치) qui est composé de piment et de chou fermenté. Il y a aussi le bu chim gae (부침개) sorte de petites crêpes ou pan cake avec des légume, des fruits de mer…

Ou alors manger des morceau de porc sur un petit grill au milieu d’une table, avec bien sure la boisson traditionnel le Soju (소주) .

On peut aussi boire un peu de Dong Dong Ju (동동주) ou le Makgeolli (막걸리) à toutes heures une sorte de bière laiteuse un peu sucré fait à partir de riz.

동동주

avr 20

La tour de Séoul (엔 서울타워) Namsan

Construite sur un mont surplombant la ville (262 m d’altitude) la « N Seoul Tower » mesurant 236,7 m surplombe toute la ville.

N Seoul Tower

Au pied de la tour des emplacements prévus pour les « cadenas d’amour » ont été disposés. Anciennement les gens les accrochait au grille de sécurité (garde-corps) entourant le site.

Avec ses 10.421.000 habitants Seoul est la quatrième ville la plus peuplée du monde et cela peut se comprendre lorsque l’on voit le panorama de la la ville du haut de la tour.

avr 20

Festival du printemps Yeouido Seoul

Prés du fleuve Han (한강) à Yeouido se déroule tout les ans le festival du printemps. L’occasion pour les Séoulites et les touristes d’aller admirer les cerisiers en fleurs près des rives et quelques animations aussi.

Séoul spring festival

Malheureusement j’ai raté une partie du spectacle qui se déroule la nuit avec des sons et lumières.

fév 20

France map in jquery

Une petite carte de France, avec  jquery pour utiliser sur des sites de petites annonces etc. Les sources contienne l’image en vectoriel vous pouvez la modifier en utilisant Inkscape

Little france map component with jquery to use for a classified ad website. Contain .svg picture editable with vertor graphics editor like Inkscape.

Enjoy ;)

Jquery carte de France

Jquery carte de France

oct 17

Simple way to Emit msil

This is a very simple example to introduce how to easily emit msil code on the fly with System.Reflexion.Emit.

1 – The simpler, the better
using System;
using System.Collections.Generic;
using System.Text;
namespace HelloWorldEmit
{
 class Program
 {
 static void Main(string[] args)
 {
 SayHello();
 }
 public static void SayHello()
 {
 Console.WriteLine("Hello world");
 }
 }
}
2- IL code

Once compiled, we will use .Net Reflector and see ILCode of SayHello method in the assembly.

.method public hidebysig static void SayHello() cil managed
{
    .maxstack 8
    L_0000: nop
    L_0001: ldstr "Hello world"
    L_0006: call void [mscorlib]System.Console::WriteLine(string)
    L_000b: nop
    L_000c: ret
}

To emit this msil code is not a simple task, you have to translate it in your code with method provided by System.Reflexion.Emit package.
If you like IL and you want to keep it clearly and your code look similar to MSIL you can use EmitHelper (« Emit with a human face ») of BLToolKitFramework.
The example below shows how we can be lazier with tool.

3- C# to Emit – Use ReflectionEmitLanguage Reflector pluggin

Fortunately ReflectionEmitLanguage pluggin on Reflector generate c# Emit library code ready to use.

That’s a screenshot of what we get when SayHello method is translated to ReflectionEmitLanguage with .net Reflector.

reflector Reflection.Emit-Language

reflector screenshot

4-Add and call emit code

Now we will use this peace of code to add emit code method to our main class and call it. We cannot add directly generated method to an existing type.
So we build an intermediate type to call it.


namespace HelloWorldEmit
{
    class Program
    {
        static void Main(string[] args)
        {
            Type t = DefineType("HelloWorldEmit", "Program");
            MethodInfo method = t.GetMethod("SayHello",System.Reflection.BindingFlags.Static | BindingFlags.Public);
            method.Invoke(null, null);
        }

        /// <summary>
        /// Generate intermediate type to call
        /// </summary>
        /// <param name="assName"></param>
        /// <param name="typeName"></param>
        /// <returns></returns>
        public static Type DefineType(string assName,string typeName)
        {
            AssemblyName asmName = new AssemblyName(assName);
            AppDomain domain = AppDomain.CurrentDomain;
            AssemblyBuilder demoAssembly =
                domain.DefineDynamicAssembly(asmName,
                    AssemblyBuilderAccess.Run);
            ModuleBuilder demoModule =
                demoAssembly.DefineDynamicModule(asmName.Name);
            TypeBuilder generatedType = demoModule.DefineType(typeName, TypeAttributes.Public);
            MethodBuilder hello = BuildMethodSayHello(generatedType);
            return generatedType.CreateType();
        }

        /// <summary>
        /// Method copied pasted from reflector
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static MethodBuilder BuildMethodSayHello(TypeBuilder type)
        {
            // Declaring method builder
            // Method attributes
            System.Reflection.MethodAttributes methodAttributes =
                  System.Reflection.MethodAttributes.Public
                | System.Reflection.MethodAttributes.HideBySig
                | System.Reflection.MethodAttributes.Static;
            MethodBuilder method = type.DefineMethod("SayHello", methodAttributes);
            // Preparing Reflection instances
            MethodInfo method1 = typeof(Console).GetMethod(
                "WriteLine",
                BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic,
                null,
                new Type[]{
            typeof(String)
            },
                null
                );
            // Setting return type
            method.SetReturnType(typeof(void));
            // Adding parameters
            ILGenerator gen = method.GetILGenerator();
            // Writing body
            gen.Emit(OpCodes.Nop);
            gen.Emit(OpCodes.Ldstr, "Hello world");
            gen.Emit(OpCodes.Call, method1);
            gen.Emit(OpCodes.Nop);
            gen.Emit(OpCodes.Ret);
            // finished
            return method;
        }
    }
}
oct 13

Enable click on Toolbar or MenuStrip without focus on winform

This hack provide to enable click on Toolbar or Menu strip without focus on form container when you are not in mdi mode (IsMdiContainer = false on your main form).
This is very useful if you use transparency on multiple forms and you can’t use Multiple Document Interface functionality.
You can found this trick on paint.net class sources (PaintDotNet.SystemLayer.ToolStripEx) and more information on this blog

1 – Define winform native constants
/// <summary>
/// winform native constants
/// </summary>
public class NativeConstants
{
 internal const uint WM_MOUSEACTIVATE = 0x21;

 internal const uint MA_ACTIVATE = 1;

 internal const uint MA_ACTIVATEANDEAT = 2;

 internal const uint MA_NOACTIVATE = 3;

 internal const uint MA_NOACTIVATEANDEAT = 4;
}
2 – Override WndProc of System.Windows.Forms.ToolStrip
/// <summary>
/// Click through method implementation
/// </summary>
public class ToolStripCT : ToolStrip //or MenuStrip, BindingNavigator etc...
{
 public ToolStripCT(ToolStripItem[] toolStripItems)
 : base(toolStripItems)
 {
 }

 /// <summary>
 /// Overided for activete direct click on a toolstrip item
 /// and not default behavior :  set focus to the form container and fire event until you click again
 /// </summary>
 /// <param name="m"></param>
 protected override void WndProc(ref System.Windows.Forms.Message m)
 {
 base.WndProc(ref m);
 if (m.Msg == NativeConstants.WM_MOUSEACTIVATE &&
 m.Result == (IntPtr) NativeConstants.MA_ACTIVATEANDEAT)
 {
 m.Result = (IntPtr) NativeConstants.MA_ACTIVATE;
 }
 }
}

Please verify your information

You must complete the captcha to finish your booking :

Your booking is complete

A detail copy has been sent to your email and also to our staff.