Sunday 30 December 2012

[How to] Add your Twitter feed to your blog - Picture tutorial


Hello everyone!

As you may notice on the bottom right corner of the page, I added my Twitter feed to The rob Point ;-)
I spent quite a long time searching for a plugin, a lot of them didn't work for some reasons... Finally I discovered that I just had to use a plugin from my Twitter account, which is really easy to implement :D

So here you go, this is how we add a twitter feed to one's blog or website in three simple steps:
(note that this also works if you want to obtain the feed of a random other person on Twitter)


//1/ Create the widget in your Twitter account

To achieve that, just go to the "Edit profile" menu, and click on the "Widget" tab...



Then hit the "Create new" button!





//2/ Configuration



Enter the username of the person you want to follow the feed here, e.g. you if you want yours

If you want to add the widget to a banner or to the side of your page, I recommend you adjust its height. Note that the width is automatically adjusted



To suit your blog theme, it is a good idea to change the color of the links in the widget...

This step is a bit tricky if you're using a platform that adapt the url to the country of the reader (like me). In that case, you should put various urls like in the example, or the widget won't work in the excluded countries. I didn't found a better way to do it until now...

Don't forget to save. You will be able to edit these properties at anytime. ;-)




//3/ Add the widget to your blog or website!

This step varies depending on your editing interface. I'll show it in pictures for blogger, but i think the steps are almost the same on every platform ;-)

Click on the widget's html code below the preview panel to select it, and copy it




Create a blank widget in your blog administration panel


Note: If you use brute html to modify your blog model, you can always copy the code straight in your html file and it will work anyway



Add the html code from your Twitter widget in your blog's blank widget :-)


Note: You don't have to add a title, because the widget already includes one, so it will look weird...




And there you go! :D

This widget can take any width, so if you want you can also easily use it on a dedicated page, or on top (or bottom) of your page as a banner. You'll just have to put in the correct height in Twitter.

Note that if you want to modify your widget, the only way to do it is via your twitter account. The html code is only to get the widget configuration from Twitter.

I hope these helps some of you!
And... a very happy new year 2013, to all of you! ;-)




Saturday 22 December 2012

Canarticho de Noël ! Christmas Farfetch’d! :D


Merry Christmas!

What a great period of the year... Family, presents, ...everything! (/me is gonna get a new screen, mouhahahah)

To celebrate, i modified my awesome Farfetch’d theme to make a Christmas version: (as you may have already noticed if you come on this blog regularly, which is improbable, so here you go:)

NOTE: Apparently blogger has an issue with theme modification, so you won't be able to see this theme on the blog until i manage to fix it manually :-( EDIT: Fixed

      Before:

Farfetch'd



     After:

Christmas Farfetch’d



I used this palette:                In addition to the original palette of Farfetch’d:       
                                                             

As you can see, I added a Santa hat and a Christmas ball, and i changed the colors of the vegetable so that it fits the new image & theme.

An obvious mistake in this picture is that the Christmas ball has too many colors. It has 5 colors tone of red, which is at least one unnecessary color, i'll say the border one. But i wanted to draw something fancy for this ball... On the contrary, the hat is clear : red 3 tones, b&w 2 tones + black.

Anyway, i hope you like it!! And don't hesitate to give feedback, as apparently my pixart skills need some improvement. ;-)

Cheers!


Complete image :


Thursday 29 November 2012

[ASM] How to use the windows API in NASM

Hellooow everybody! ;-)

Today I will give you a short guide on how to use windows API in ASM programming! (at least in programs compiled with NASM because this is the one I'm using and as I'm quite noob about the different versions of asm, I prefer not risk to tell wrong things) This is because I wanted to learn some asm stuff and make little programs on windows, and quickly realized that windows was too protected to use pure asm and that we need to use the windows C++ API, including console I/O.

What is the windows API?
It's a library of C++ functions. You have to use it if you want to make any program on windows. So that means you will have to call these functions in your asm code.
It's called kernel32.dll for 32bits systems, and normally it's in the path :-)
Here is the official documentation:
Here is the documentation for console stuff:

How to call a windows API function in asm?
1) Don't forget the header!
You have to declare any function you want to use in your code by specifying them as external functions. Basically at this point all you have to do is to put a line like this in the begining of your file:
  extern    Function1Name, Function2Name, FunctionNName
example (console I/O):
  extern    ExitProcess, GetStdHandle, WriteConsoleA, ReadConsoleInputA

/!\ If you want to use any windows constant in the function calls, you also have to declare those.
For example for the GetStdHandle, these can come in handy :
  STD_OUTPUT_HANDLE    equ -11
  STD_INPUT_HANDLE     equ -10
But of course you can directly pass the constant value as an argument (if you wanna do it in the hardcore way :p) 

2) Function calls in asm
Function calls in asm aren't really more complicated than in any other language. You just have to pass the arguments the function needs and call the function's name.
In asm your pass the arguments by pushing them on top of the stack:
  push    arg

/!\ Always remember that as the stack goes decreasing, (unlike a stack of papers) you have to pass the arguments in the reverse order:
  push    arg3
  push    arg2
  push    arg1

Once all the arguments are sent to the stack, you can call the function:
  call    function

Example: WriteConsole call
  push    NULL
  push    buffer_out
  push    msg.len
  push    msg
  push    dword[handleOut]
  call    WriteConsoleA

How to compile and link a program that uses win API functions? (using nasm and golink)
This is the easy part! Just open a console and eventually cd in the right directory.
To compile, type something like:
>> nasm -f win32 yourProgram.asm -o yourProgram.obj
and to link the library using golink:
>> GoLink.exe /console /entry starting_point_of_your_asm_program yourProgram.obj kernell32.dll

Or, you can do a makefile:
  yourProgram: yourProgram.obj
  GoLink.exe /console /entry starting_point_of_your_asm_program yourProgram.obj kernell32.dll
  yourProgram.obj: yourProgram.asm 
  nasm -f win32 yourProgram.asm -o yourProgram.obj

NB: 
If you don't already know GoLink, it's a linker, which means it's able to link your file with the libraries you want. (in this case the kernel32.dll file)
You can download it here: (direct download of last version)
Manual:

NB2:
In order to use these commands, the source folders for nasm and GoLink.exe have to be in the path. So when you install them don't forget to add these at the end of the path variable. (right click on computer => advanced system parameters => environment variables... => find "path" in the system variables table, hit "modify" and add your new paths at the end, separated by a ';')

Working example: system("pause")
  STD_OUTPUT_HANDLE   equ -11
  STD_INPUT_HANDLE    equ -10
  NULL                equ 0
  global start
  extern ExitProcess, GetStdHandle, WriteConsoleA, ReadConsoleInputA

  section .data    ;message we want to display on console
  msg                 db "Press a key to continue...", 13, 10, 0
  msg.len             equ $ - msg
  consoleInHandle     dd 1

  section .bss     ;buffers declaration
  buffer_out          resd 2
  buffer_in           resb 32

  section .text
    start:       ;starting point of our program
        push    STD_OUTPUT_HANDLE
        call    GetStdHandle   ;call to get a handle to the
        push    NULL           ;specified mode (input, output...)
        push    buffer_out
        push    msg.len
        push    msg
        push    eax            ;contains the GetStdHandle result
        call    WriteConsoleA  ;call to print our msg in console

    read:
        push    STD_INPUT_HANDLE
        call    GetStdHandle        ;new call to get input handle
        push    NULL
        push    1
        push    buffer_in
        push    eax
        call    ReadConsoleInputA   ;call to detect user input
                                    ;this function will wait til
    exit:                           ;it detects enough keypresses
        push    NULL                ;(in this case, 1)
        call    ExitProcess

Manual pages for the functions used in this code:
- ExitProcess
- GetStdHandle
- WriteConsole (A stands for ANSI version)
- ReadConsoleInput (A stands for ANSI version)


I hope this helped some of you! See ya around and have fun coding ;-)


Additional source for this article:
This thread I posted on stackoverflow.com when I was having a hard time understanding all this: ;-p

Monday 16 July 2012

BA de BJPSTA

Note : An english version of this article is coming! Stay tuned! ;-)

     Mais que cache ce titre obscur ? Rien de moins que la présentation tant attendue du petit jeu que je suis en train de développer pour smartphone. La première version sera la version android  (hé oui), que je vais essayer de terminer pour septembre.

Pour reprendre la présentation du twitter 'officiel' (@BJellyPixel), Bikini - Jelly : Pixel Smash Them all ! est un petit jeu de plateforme bien sympa en devenir, avec un nom absurdement long, néanmoins indubitablement cool ! Le jeu est pensé pour être dynamique et fun, en plus d'une mignonitude ambiante très présente :p

via @BJellyPixel :
BJPSTA est la fusion révolutionnaire de tout ce qu'il y a de plus cool : filles en bikinis, mobs trop chous, pixels à gogo, et MASSACRE :-O   |   Le principe est simple : (1) On contrôle une "fille" en petit bikini   |   (2) Le but d'un niveau est d'écrabouiller sans pitié tous les mignons petits monstres en gelée ! :-D   |   Et enfin, (3) Pour corser le jeu, il faut être habile pour triompher car nos amies les Jellies ont plus d'un tour dans leur sac !   |   Le tout dans un environnement tout en pixel art, pour le plaisir des yeux... ;-)
Heliosa, première héroine !
     Mais enfin, un peu plus de détails. L'idée de base m'est venue en cours d'éco, alors que je songeais aux ingrédients les plus cool que l'on puisse mettre dans un jeu video... Et je me suis dit : Pourquoi ne pas faire un jeu composé de tout ce qu'il y a de plus cool, un jeu auquel j'adorerai jouer ? (J'ai toujours du mal à trouver des jeux sur smartphone qui me plaisent, n'étant pas addepte des Angry Bird, Fruit Ninja, et autre Doodle Jump, pour ne citer que les meilleurs moins mauvais ;p) Je me suis donc mise en route pour développer le jeu le plus cool du monde o/

Note : Je ne dis pas qu'il n'y a aucun bon jeu sur smartphone, c'est vrai que c'est une question de goût. Mais à part sur émulateur, je n'en ai jamais trouvé qui me fasse dire : Wouah, ce jeu est génial ! Et si je ne trouve pas mon bonheur sur le market, j'imagine que ça doit être le cas d'autres personnes... En tout cas je suis ouverte à toute suggestion :-)

Les briques élémentaires de Bikini - Jelly : Pixel Smash Them All ! sont tout simplement transparentes dans le nom du jeu :
 - des bikinis pour le coté sexy,
 - des 'jellies', aka des monstres en gelée pour euh... parce que c'est cool quand y'a de la gelée partout ! ^^'
 - des gros pixels pour un environnement mignon et un rien old school,
 - et enfin, de la violence, puisqu'il faut toutes les écraser avec une arme de guerre ! De la violence sans conséquences cependant, puisque ce ne sont que des monstres en gelées, et comme chacun sait, les monstres en gelée... ne meurent pas... ;-p

Voilà voilà, j'éspère que le jeu et son univers vous plairont ! ;-) Je donnerai plus d'info par la suite via la section Bikini-Jelly PSTA de ce blog, ou le site en devenir pixel-smash-them-all.com, et surtout sur le fil twitter @BJellyPixel. En attendant je suis en plein dev, alors n'hésitez pas à me faire parvenir vos remarques ou suggestions ! A très bientôt !

Wednesday 11 July 2012

Cours Heliosa, cours !

Coucou tout le monde !

     Vous avez bien sûr tous entendu parler de mon petit projet de jeu smartphone ! (j'en parlais dans un précédent article : lien, et je donnerai plus d'infos quand j'aurais le temps. J'en profite pour créer un libellé "Bikini - Jelly : PSTA" qui regroupera tous les futurs articles sur le sujet)
Pour ceux qui n'étaient pas attentifs, il va s'agir d'un petit jeu de plateforme bien fun répondant au nom mélodieux de Bikini - Jelly : Pixel Smash'em'all ! Retrouvez toutes les infos sur le fil twitter @BJellyPixel , j'ai la flemme de tout remettre ici ;p

Hier, j'ai réalisé l'animation de course de ma première héroïne, Heliosa ! :3
- Version grande qui fait mal aux yeux -
Donc comme Twitter ne permet pas de publier de GIF animés (j'ai même essayé de changer l'extension en .png et tout mais ça a pas fonctionné), je la met ici :



- Version taille réelle -











Vous la trouvez pas trop mimi ?! <3

Blague à part, l'animation est réalisée sur six sprites donc c'est légèrement saccadé, et encore bien perfectible... Pour la taille, j'ai choisi des dimensions beaucoup plus modestes que l'ancien pixart de la version pc inachevée : 60x50px environ. (ici avec du blanc autour on en est à 65x55)

Voilou ! N'hésitez pas à laisser vos commentaires, je suis à l'écoute ! :p

Thursday 5 July 2012

[Windows de merde] 'javac' is not recognized as an internal or external command

     Alors comme ça vous essayez d'installer le JDK ? Vous avez tout bien fait avec la variable d'environnement PATH et ça fonctionne toujours pas ?

Cherchez plus...

Redémarrez la console.






Non, non c'est pas une blague !
Ah, ces trucs qui te donnent envie de déchirer ton petit sticker windows avec les dents... (pour ceux qui en ont un :p)

Wednesday 20 June 2012

Optimisme : Piqure de rappel

     Alors voilà, c'est la fin de l'année (scolaire), et je peux déjà dire que ça a été une année mouvementée pour pas mal de monde. Donc sur une inspiration venue de notre cher Bobo, voici un éventail de videos optimistes et remotivantes... Pour tout ceux qui ont traversé quelquechose de difficile et qui s'en sont sortis, pour ceux qui on douté, et qui essayent de trouver leur voie, pour ceux qui comprennent et ceux qui veulent aller plus loin...

      Ca en fera peut-être rire certains, mais laissons nous aller à un petit transportement d'émotion : j'aimerais dédicacer cet article à Belias (gimme five! ;p), qui a pris ses rêves en main et qui ne s'est vraiment pas laissé abattre cette année. Franchement respect bro :-) Au début quand j'en étais encore à te botter le train pour que tu te remues j'avoue que j'éspérais même pas un tel accomplissement, et maintenant c'est limite toi qui vient me faire la morale. Félicitations pour cette réussite, cette victoire même, on peut le dire :), et j'éspère que tu décrocheras le contrat pro de tes rêves très vite o/

Nuuuumero 1 !
"Getting lost will help you find yourself"
Manifesto de Holstee, startup fabriquant des vêtements et accessoires à partir de produits recyclés (Fournie by Bobohwh)


Quelques autres videos remarquables :

"When was the last time you did something for the first time?"
"Follow your dreams, they know the way"
J'aime beaucoup ! Créé d'après le livre "5" qui a l'air passionant ( http://www.live-inspired.com/The-5-Book-by-Dan-Zadra-P13 )
et PO PO POOO pour les gorilles des montagnes !

"Don't just wonder the future. Create it."
Excellente. Seriously. Bande annonce du salon EOAlchemy 2012 sur l'entrepreneuriat à Seattle ( http://eoalchemy.com/ )

"By choice, not by chance..."
"Don't settle for less, when the world has made it so easy to be remarkable"
Video de Mannatech, qui est... euhh... une entreprise qui fait des compléments alimentaires à base d'aloe vera si j'ai bien compris ! xD ( http://mannatecheurope.com/ )

"Believe that the best is yet to be"
Une autre video de 1inspireoz sur qui je n'ai pas trouvé d'infos. Une video formidable, quoiqu'un brin déprimante, qui parle de l'importance de croire, d'avoir foi en soi, en les autres, et en l'avenir :-)

Voilou, ça fait déjà pas mal de bonne humeur et de bonne volonté, a bientôt sur le blog !

Et bonne continuation à tous ;-)

Love,
Rob

Sunday 8 April 2012

LaTeX ** ERROR ** Could not open specified DVI file x.dvi Output file removed.


Une fois n'est pas coutume, encore un fix !

Ce message d'erreur LaTeX est le premier que vous pourriez rencontrer en créant un nouveau document si vous n'êtes pas vigilant :

** ERROR ** Could not open specified DVI file x.dvi Output file removed.

Cela risque de survenir lors d'une tentative de compilation rapide. C'est du au fait qu'il faut "compiler" une première fois en utilisant LaTeX avant de pouvoir faire cette exécution rapide (qui est par défaut la fonction exécutée par la touche F9 (en tout cas dans l'éditeur Texmaker http://www.xm1math.net/texmaker/)). Compilez avec LaTeX !


Sous Texmaker :

La compilation par défaut est "compilation rapide".




Pour faire une compilation LaTeX complète, sélectionnez "LaTeX" dans la liste déroulante.








Compilez !

(C'était vraiment pas compliqué :p)

Wednesday 15 February 2012

MySQL error 1064 on Jobeet day 3



Voici le fix pour une erreur mysql sur laquelle je me suis arrachée les cheveux pendant deux jours (donc je la met sur le blog pour rentabiliser :p):
C'est sur le tutoriel Symfony Jobeet (qu'on est sensés terminer en moins de 24h d'après la pub), au jour 3 : en mode console, on nous demande de créer des tables dans une base de données à partir d'un fichier YAML.
Plus précisément, on nous demande de générer du sql et de l’exécuter dans la base en utilisant l'outil ORM propel.
Encore plus précisément, cela consiste à taper deux lignes dans l'invite de commande :

>> symfony propel:build-sql
>> symfony propel:insert-sq

...et de laisser faire le pc faire tout le boulot. En théorie. Sauf qu'en fait ça marche pas dans tous les cas ! Voilà le message d'erreur qui est apparu dans mes cauchemars :



Après des heures de prise de tête et de questionnement philosophique ( --et si je devenais pas facteur au lieu de développeur finalement ?) j'ai fini par déterrer un post unique sur internet résolvant le problème...


...que je relaie ici :)


Voilà la marche à suivre :

1. Ouvrez votre fichier MysqlDDLBuilder.php, localisé vers :
symfony/lib/plugins/sfPropelPlugin/lib/vendor/propel-generator/classes/propel/engine/builder/sql/mysql/MysqlDDLBuilder.php
2. A la ligne 156 changez :
$script .= "Type=$mysqlTableType";
en :
$script .= "Engine=$mysqlTableType";
3. N'oubliez pas de vider le cache symfony :
>> symfony cc
4. Et ça marche !!!


Petites explications :

Comme vous avez pu le constater en empruntant le chemin ci-dessus, le problème vient de propel. Si vous êtes confrontés à cette erreur, c'est parce que vous utilisez la version 1 de propel qui a certaines incompatibilités avec mysql, comme celle à laquelle nous avons fait face.
Contrairement à ce qui est indiqué dans le deuxième post (voir lien), je n'ai pas upgradé propel car l'environnement de travail dans mon entreprise utilise exclusivement propel 1. Si vous ne devez pas faire face à ce genre de considérations il est effectivement préférable d'upgrader propel à sa version 1.5... en théorie. Si vous n'avez pas PEAR et que vous êtes pressés ça risque d'apporter son lot d'arrachage de cheveux supplémentaire.
(symfony installe ses plugins grâce à PEAR, qui n'est pas inclus d'office dans la version 1.2 du framework. Et si vous voulez l'installer, malgré le "Install pear is not complicated" dans le readme, ça se fait en mode console, plus il faut tripoter les variables d'environnement... enfin bref on a plus vite fait d'utiliser la méthode rapide et c'est meilleur pour la santé capillaire)