Icarez’s Blog

Mise en place de Slax Router

février 5, 2010 · Laisser un commentaire

Slax Router est une distribution linux dérivant de l’excellente slax.

Elle supprime toute interface graphique et est à la base orientée routeur logiciel.

Néanmoins je l’utilise en temps que serveur multitâches. Pour obtenir cette distribution, vous pouvez vous orientez vers son site : http://slaxrouter.sourceforge.net/

Concernant la mise en place de cette slax, il faut procéder à 2 modifications, l’une pour définir l’IP réseau, l’autre pour permettre un accès au réseau internet.

  1. Concernant l’ip, il faut éditer le fichier /etc/rc.d/rc.inet1 et rajouter la ligne

    /sbin/route add -net xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx dev eth0 en placant vos ip à la places de xxx.xxx.xxx.xxx

  2. De plus, ajouter la ligne
    /sbin/route add default gw xxx.xxx.xxx.xxx
  3. avec à la place de xxx.xxx.xxx.xxx l’ip de votre passerrelle.

→ Laisser un commentaireCatégories : Divers
Tagué : , , ,

Alternatives à Assembla ?

février 3, 2010 · Laisser un commentaire

Assembla Logo

Depuis qu’assembla a fermé les dépots svn privés de son système, il devient difficile de s’y retrouver dans la longue liste de serveur de dépots svn gratuits.

Il est cependant intéressant de noter l’existence de SVN Hosting Comparaison (http://www.svnhostingcomparison.com/) un moteur de recherche de ces services.

Ce site vous permettra de trouver le serveur de dépots svn correpondant à vos besoin.

Personnellement je retiendrai :

  • OpenSVN, qui semble avoir de problèmes de serveurs ces dernières semaines…

→ Laisser un commentaireCatégories : Développement web
Tagué : , ,

Tutorial PMDG JS4100 en vidéos

janvier 24, 2010 · Laisser un commentaire

Le tutorial du dernier né PMDG pour FSX, a été repris en vidéo sur Youtube :

EDIT : La seconde partie n’est pas encore en ligne

→ Laisser un commentaireCatégories : FSX
Tagué : , ,

Comment changer le user-agent de Google Chrome

janvier 24, 2010 · Laisser un commentaire

Contrairement à d’autre navigateurs, la modification du user agent de google chrome n’est pas facilement accessible, mais tout de même possible.

http://www.labnol.org/software/change-google-chrome-user-agent-string/4566/

→ Laisser un commentaireCatégories : Technologies Google
Tagué : , , , , ,

Les 10 meilleures extensions Google Chrome

décembre 13, 2009 · Laisser un commentaire

ChromeLes extensions Google Chrome ont été rendues disponibles pour les non-déevloppeurs la semaine dernière.

Le moment pour moi de lister les 10 meilleures extensions après quelques jours d’utilisation.

Pour les utiliser il faudra tout d’abord télécharger google chrome beta à cette adresse : http://www.google.com/intl/en/landing/chrome/beta/

Concernant les extensions :

  1. Google Mail Checker : Une petite icone en haut à droite qui affichera la présence de message non lu dans votre boite gmail
  2. Google Calendar Popout : Dans le même style, ajoute une icone en haut à droite permettant d’afficher son google calendar dans un menu déroulant
  3. AdThwart : Un bloqueur de publicités
  4. Select To Get Maps : Lorsque vous selectionnez une adresse sur une page web, cela vous affiche un bouton vous permettant d’afficher la carte google maps correspondante
  5. AutoPatchWork : Charge et affiche automatiquement la page suivante dans une recherche google, amazon, etc (Dans le même style : AutoPagerize)
  6. Send from GMail : Lorsque vous cliquez sur un lien email sur une page, cela créer un nouveau mesage dans une fenêtre gmail au lieu d’ouvrir un logiciel de messagerie comme outlook
  7. ChromePad : Une icone déroulant une zone bloc note
  8. Switch HTTP Proxy : Pour les personnes qui utilisent leurs machines derrières plusieurs proxy, permet de switcher de proxy en un clic dans chrome
  9. FlashBlock : Bloque les animations Flash
  10. html2Pdf : Convertit une page en un pdf

Pour toutes les autres extensions : https://chrome.google.com/extensions/

→ Laisser un commentaireCatégories : Logiciels
Tagué : , ,

Application Android : wpToGo

août 18, 2009 · Un commentaire

wpTOGo

wpTOGo

Je n’ai pas encore vendu les mérites d’une application android sur ce blog. Ce sera maintenant chose faites puisque j’ai aujourd’hui découvert une petite app sur l’android market à savoir wpToGo. Cette application permet de gèrer son blog wordpress, hébergé sur wordpress.con ou non, depuis son mobile android. L’application est rapide et bien réalisée dans l’ensemble.
L’application demande la mise en place de l’option xmlrpc qui permet à des programmes externes d’accéder à wordpress en administration (activable dans les options écriture).
Pour les utilisateurs de blogs sur wordpress.com, notez que cette option est active par default et le lien est donc : nomDuBlog.wordpress.com/xmlrpc.php

→ 1 commentaireCatégories : Android
Tagué : , , , ,

Soirée SFR Android, invitations sur FrAndroid

mai 13, 2009 · Laisser un commentaire

FrAndoird propose des invitations à ses lecteurs pour la soirée SFR Android :
http://www.frandroid.com/2647/10-nouvelles-invitations-pour-la-soiree-sfr-android/

Une petite soirée à ne pas manquer !

→ Laisser un commentaireCatégories : Uncategorized

HaXe : présentation

décembre 17, 2008 · Laisser un commentaire

HaXe est une plateforme de développement web RIA. Il permet au final de générer du javascript, du flash, du php ou du code neko (même si je n’ai pas testé ces 2 derniers).

Il reprend les packages flash, javascript, propose une programmation orientée objet. Néanmoins, je trouve qu’il manque cruellement de documentation. Il n’y a que très peu de tutoriaux sur internet et une connaissance préalable de javascript ou action script est nécessaire pour réaliser quelque chose (ce que je n’ai pas).

Néanmoins, cette solution permet de coder tant au niveau serveur que client et permet de nous affranchir de licence Adobe onéreuse.

Pour installer HaXe, il faut téléchager le compilateur sur le site officiel.

A l’écriture de ce billet, l’IDE FlashDevelop supporte complètement HaXe (mis à part la conversion des librairies xml vers swf qui ne fonctionne pas, alors que FlashDevelop intègre swfMill, qui permet simplement de réaliser cela…).

En ce qui concerne la documentation, il n’y a malheureusement qu’une bien faible documentation en ligne, et l’absence d’un forum ou d’un bon wiki fait réellement défaut lors de l’apprentissage.

On notera tout de même la présence d’une mailing list, où les développeurs même de HaXe interviennent et surtout la doc de l’api.

Cet article évoluera pour devenir à terme un petit tutorial, une aide, une base…

Mise à jour 17/12/08 : HaXe ayant une très mauvaise documentation (il manque surtout un forum à mon avis.), j’arrête d’étudier HaXe. Cet article restera dans l’état pour l’instant. Je vais par contre me tourner vers Flex d’Adobe, qui m’apparait une meilleure solution pour développer des RIA.

→ Laisser un commentaireCatégories : HaXe
Tagué : , ,

Irrlicht : installation

décembre 10, 2008 · Laisser un commentaire

Logo IrrLicht

Logo IrrLicht

Voici donc un tutorial concernant l’installation d’Irrlicht sur une machine Windows.

Il faut dans un premier temps,

 

  • soit récupérer le package Irrlicht déjà compilé pour windows (méthode la plus simple) :P our ceux qui veulent les dernières sources, un site  (http://irrlicht.convextech.ca/) met à disposition un système qui compile les dernières sources et les propose en téléchargement. On choisera alors « Core, Examples and Tools », la compression zip, et on prendra un téléchargement pour Windows x86.Sinon, il y a  le package officiel :  vous pouvez aller à l’adresse : http://irrlicht.sourceforge.net/downloads.html Il ne reste plus qu’à télécharger l’un des deux et de décompresser l’archive quelque part sur votre disque dur. 
     
  • soit télécharger les dernières sources de SVN https://irrlicht.svn.sourceforge.net/svnroot/irrlicht/branches/releases/1.5/ irrlicht-1.5 , et les compiler soit même.

Ensuite il faudra indiquer à Visual Studio ou encore Code::Blocks, l’emplacement des includes et des librairies de Irrlicht (voir mises à jour de l’article).

→ Laisser un commentaireCatégories : Irrlicht
Tagué : , ,

Irrlicht : Sélection de faces.

décembre 2, 2008 · Laisser un commentaire

Dans le cadre d’un de mes projets, un utilisateur devait pouvoir cliquer sur une face et une arrête d’un objet, non aligné avec les axes (x,y,z), donc avec pour moi l’impossibilité d’utiliser les Bounding Box proposée par Irrlicht.

Il fallait alors lancer le rayon depuis la souris à chaque frame, et déterminer quelle face traversée par ce rayon est la plus proche de la caméra.

Avec l’aide de rogerborg du forum d’Irrlicht, qui me donna la solution pour les arrêtes, j’ai enfin réussi à trouver le code nécessaire pour la scène node face qui permet cela.

Le voici :

/!*
*\author : Icarez
*\date : SEPTEMBER 2008
*\brief : a face scene node with selection from mouse
**/

#include
#include

using namespace irr;

#pragma comment(lib, "Irrlicht.lib")

class SelectableFacesNode : public scene::ISceneNode
{
core::aabbox3df Box;
std::vector Faces;
std::vector corners;
//core::array Edges;
core::array EdgeUnitVectors;
video::SMaterial Material;
int SelectedFace;

public:

SelectableFacesNode(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id)
: scene::ISceneNode(parent, mgr, id)
{
SelectedFace = -1;
Material.Wireframe = false;
Material.Lighting = false;
// Material.TextureLayer[0].Texture[0].

corners.push_back(core::vector3df(0, 14, 0));
corners.push_back(core::vector3df(-10, 0, -10));
corners.push_back(core::vector3df(10, 0, -10));
corners.push_back(core::vector3df(0, 0, 14));

for(int corner1 = 0; corner1 < 4; ++corner1){
for(int corner2 = corner1 + 1; corner2 < 4; ++corner2)
{
for(int corner3 = corner2+1; corner3 <4; ++corner3)
{
const core::triangle3df face(corners[corner1], corners[corner2], corners[corner3]);
Faces.push_back(face);
}

}
}

/*Vertices[0] = video::S3DVertex(0,0,10, 1,1,0,video::SColor(255,0,255,255),0,1);
Vertices[1] = video::S3DVertex(10,0,-10, 1,0,0,video::SColor(255,255,0,255),1,1);
Vertices[2] = video::S3DVertex(0,20,0, 0,1,1,video::SColor(255,255,255,0),1,0);
Vertices[3] = video::S3DVertex(-10,0,-10, 0,0,1,video::SColor(255,0,255,0),0,0);*/

Box.reset(corners[0]);
for (s32 i=1; iregisterNodeForRendering(this);

ISceneNode::OnRegisterSceneNode();
}

virtual void render()
{
u16 indices[] = { 0,2,3, 2,1,3, 1,0,3, 2,0,1 };

video::IVideoDriver* driver = SceneManager->getVideoDriver();

driver->setMaterial(Material);
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);

for(u32 face = 0; face draw3DTriangle(Faces[face], video::SColor(255, 0, 255, 0));
else
driver->draw3DTriangle(Faces[face], video::SColor(255, 0, 0, 255));

}

}

virtual const core::aabbox3d& getBoundingBox() const
{
return Box;
}

virtual u32 getMaterialCount() const
{
return 1;
}

virtual video::SMaterial& getMaterial(u32 i)
{
return Material;
}

void testLineIntersectionWithEdges(const core::line3df & line)
{
core::line3df localLine(line);
core::matrix4 inverseTransform;
if(!AbsoluteTransformation.getInverse(inverseTransform))
return;

inverseTransform.transformVect(localLine.start);
inverseTransform.transformVect(localLine.end);

const core::vector3df lineUnit = localLine.getVector().normalize();

const f32 VirtualEdgeThicknessSq = 6.f * 3.f; // Thicken up the edge
f32 closestToLineSq = VirtualEdgeThicknessSq;

SelectedFace = -1;
for(u32 face = 0; face < 4; ++face)
{
/*core::vector3df normal = lineUnit.crossProduct(EdgeUnitVectors[edge]);
normal = EdgeUnitVectors[edge].crossProduct(normal);*/

core::plane3df plane = Faces.at(face).getPlane();

core::vector3df intersection;
if(Faces.at(face).getIntersectionWithLine(localLine.start, lineUnit, intersection))
{
const core::vector3df nearestPoint = Faces[face].closestPointOnTriangle(intersection);
const f32 distanceToLineSq = intersection.getDistanceFromSQ(nearestPoint);

if(distanceToLineSq <= closestToLineSq)
{
closestToLineSq = distanceToLineSq;
SelectedFace = face;
}
}
}
}
};

int main()
{
IrrlichtDevice *device =
createDevice(video::EDT_OPENGL, core::dimension2d(640, 480), 16, false);

if (device == 0)
return 1; // could not create selected driver.

video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();

smgr->addCameraSceneNode(0, core::vector3df(0,0,-40), core::vector3df(0,0,0));

SelectableFacesNode *myNode =
new SelectableFacesNode(smgr->getRootSceneNode(), smgr, 666);

scene::ISceneNodeAnimator* anim =
smgr->createRotationAnimator(core::vector3df(0.3f, 0, 0.3f));

myNode->addAnimator(anim);
anim->drop();

while(device->run())
{
core::line3df cursorRay = smgr->getSceneCollisionManager()->getRayFromScreenCoordinates(device->getCursorControl()->getPosition());

myNode->testLineIntersectionWithEdges(cursorRay);

driver->beginScene(true, true, video::SColor(0,100,100,100));
smgr->drawAll();
driver->endScene();
}

myNode->drop();
device->drop();
return 0;
}

Vous pouvez également trouver ce code avec celui pour les aretes sur le forum Irrlicht.

→ Laisser un commentaireCatégories : Irrlicht
Tagué : , ,