vtu.cc is now online

vtu.cc is one of my latest project. It’s an url shortener service. The goal is to get rid of long urls. It’s a free service so feel free to use it.

http://vtu.cc

It’s a work in progress, but it’s functionnal and I would appreciate any feedbacks or suggestions on it.

Until next time 😉

Updated: Tags

building v8 with mingw32… not yet

Building v8 with mingw32 is not quite stable yet.

In the latest revision of the trunk, you need to tweak some piece of code in platform-win32.cc for it to compile.

Then, when you do get it to compile there is a nasty bug using a get accesor inside a anonymous method, wich doesn’t crashes on other platforms/compiler.

v8-users group discussions related to this bug.

In conclusion, to avoid losing your time like I did, you should use MSVC 😉

Greg Young webcast

Greg Young made his first summer webcast live from PCMS Conseil office in Montreal today. I work at PCMS so I had the chance to listen to it live.

The presentation was about how the DDD Ubiquitous Language is actually not that ubiquitus. In résumé, Ubiquitus Language can only be ubiquitus if you place it in a bounded context. If you have Eric Evans blue blook read the chapter 14. If you don’t have it, get it. Or go to DDD-Step-by-Step, it’s a great start.

He also explained why separating your bounded context from the start is important. Since you won’t be using DDD in all of them, you need to abstract them and focus on the core of your business. It’s alot like the AGILE priorisation technique, you split your context, then focus on the core business of your client, the one where your client need an advantage. This way you can see an ROI of using DDD, because the technique is more expensive than other simpler approach.

It was a nice presentation, minor some technical problems (wich I didn’t have, since I was on site). The presentation was recorded, I’ll post a link to the video here once Greg put it online.

building v8 using mingw on windows

By default v8 only builds on MSVC for Windows. It also supports building with mingw, but it is not documented anywhere and I’ve lost some time finding how. So here it is, easy steps for whoever needs it.

Prerequisites

1. v8 source code (of course), in my case I used trunk.

svn checkout http://v8.googlecode.com/svn/trunk/ v8

2. scons (building tool used by v8)

http://prdownloads.sourceforge.net/scons/scons-1.3.0.win32.exe

3. mingw32 (gcc 4.x.x is required to build v8)


binutils-2.20.1-2-mingw32-bin.tar.gz
gcc-full-4.4.0-mingw32-bin-2.tar.lzma
make-3.81-20090914-mingw32-bin.tar.gz
mingwrt-3.15.2-mingw32-dev.tar.gz
mingwrt-3.15.2-mingw32-dll.tar.gz
w32api-3.13-mingw32-dev.tar.gz

You can get those from http://sourceforge.net/projects/mingw/files/.

Building v8 with mingw

1. Using the “toolchain=gcc” command line paremeter doesn’t work, so you need to modify Scons.

a) Open file C:\Python26\Lib\site-packages\scons-1.3.0\SCons\Tool\__init__.py
b) Find the line “if str(platform) == ‘win32’:”
c) Modify the tools lists to use mingw tools instead of msvc tools by default.

Should look something like this once done:

linkers = ['gnulink', 'mslink', 'ilink', 'linkloc', 'ilink32' ]
c_compilers = ['mingw', 'msvc', 'gcc', 'intelc', 'icl', 'icc', 'cc', 'bcc32' ]
cxx_compilers = ['g++', 'msvc', 'intelc', 'icc', 'c++', 'bcc32' ]
assemblers = ['nasm', 'masm', 'gas', '386asm' ]
fortran_compilers = ['g77', 'gfortran', 'ifl', 'cvf', 'f95', 'f90', 'fortran']
ars = ['ar', 'mslib', 'tlib']
other_plat_tools=['msvs','midl']

2. Open a command line (cmd.exe)

3. Set you environment path (if required)


set path=c:\python26;c:\python26\scripts;c:\mingw\bin;%PATH%

4. Build v8


scons mode=debug visibility=default

note: the visibility=default parameter is required otherwise gcc generate a warning (as an error) and the build doesn’t work.

note: currently (revision 4432) only static debug mode works with mingw building, debug=release produce errors (warning as error) and so does library=shared (building dll). Will try to fix this in a next post.

Have fun with v8 😉