avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Saturday May 8, 2021, 11:55 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Martin_130286 [ switch to compact view ]

Pages: [1]
Living Room / Re: What books are you reading?
« on: November 07, 2012, 12:01 PM »
I don't tend to read many non-programming books, but here's a few I have read recently and really enjoyed.

Predictably Irrational
Dan Ariely introduces a series of fascinating experiments he conducted on various groups of people to demonstrate that we all act irrationally, but often in quite a predictable way. He looks at things like why Starbucks decided to call their cup sizes tall, grande and venti. He also goes into the psychology of being paid vs. doing somebody a favour and how we react to 'free' things.

The Goal
This infamous book introduces TOC – The Theory of Constraints – and has been influential in business for a long time. It's written as a fictional novel, following the manager of a plant, Alex, as he tries to turn it around and save it from failure. Along the way Alex is helped by Jonah (who many believe to be the author in character form) who helps him understand the concept of systems thinking.

By the way, if you're not familiar with systems thinking, see this awesome short video from the late Russ Ackoff Beyond Continuous Improvement

The Thank You Economy
This book is super relevant to my startup and is authored by the amazing Gary Vaynerchuk. He's very inspirational and his book talks about the way business is changing in the world of social media and personal brands. He argues the case that business is coming back to "old town rules" where building real and meaningful relationships with every single user is how you get the edge. To quote him:

Listen to your users, absolutely. But giving a shit about your users is *way* better. People listen but they don't do *anything*. Doing something, answering those emails, giving a crap, caring about your user base – that's what you need to do.

I'm only about a fifth through this book, so I can't really review. But I don't need to to know Gary is totally right and I'm looking forward to reading the rest. Because he's so passionate when speaking, a few of my friends have recommended the audio version over the text, and apparently he ventures off into rants quite often, which sounds like it'd be entertaining :)

If you haven't heard of Gary Vaynerchuk, watch this 15 minute video immediately! Building Personal Brand Within the Social Media Landscape

That's all I've got :)

Living Room / Re: IRLDD NYC - Martin and app103
« on: February 08, 2012, 06:11 PM »
I had a lovely time and I'm already working out how I can get back to NY ASAP. That's if I don't decide to hide out in China town for 10 years until I can claim residency, eating Lo Mein the entire time.

April showed off her hidden talents for dollar bill origami too, I've added a pic of the 'dollar ring' she made, it's true American engineering (and she didn't even charge me for labor).

Also added a picture of progress they're making at the World Trade Centre site (as it was pretty with it being all lit up at night). And a picture of the bright lights in Times Square.


Living Room / Re: Invalid Cast: Cool Member Blog
« on: August 13, 2010, 07:17 AM »
Thanks guys :)

I'm really pleased you found it entertaining/useful in some way. I try to write there as often as I can, but I also wait for something interesting to talk about too - so it's kind of irregular.

I'm going to put some time into documenting my older projects (including IDE 1/2/3), as I realise there's a woeful lack of support for any of them still being used by poor souls out there :)

Hahah, this episode was awesome... it was so predictable too.

You might hope the damage to his car was more than the hardware that he stole + his overpriced rip off. But the more likely truth is that he stole the car too.

Even so, let's hope his local car technician is a cow boy too, and tells him that he now needs a new engine, new seats and a new radio.


Thanks for the feedback f0dder :)

Right now, easm outputs directly to PE, causing problems when you want to create multiple obj's and link them later, I will add other output formats when time permits though. As for imports, right now it's purely dynamic - static of course would be an advantage and something I will consider in later versions.

I do intend to support structures, it's such a pain having to do it manually - that'll be in the next release, but again it's a time issue. I'll more than likely support their declaration in a slightly different way, but I'll write a tool to convert an existing to an easm compatible one which can be included as you suggested. It would be fantastic to be able to just write:

   struct WNDCLASSEX wndClass // or something similar.

Thanks for the feedback, I really appreciate it - and I'll make another post at, thanks for the link.

Regards, Martin

The Epsilon Assembler (easm) is a Win32 assembler whose main focus is Windows application development. I am developing easm as my final year degree project and I wanted to introduce the project to a wider audience and generate some interest.

The assembler is still in very early stages and currently only supports a small percentage of the overall design. In saying this however, easm is capable of creating some interesting things in its current state. My aim is to develop the project, even after it has served the educational purpose that it was created for, to be a fully functional assembler with little to no limits.

I have released a BETA version of easm on the project website ( in the hope that people will test the assembler and  report any potential bugs. Bug reporting is particularly important at this stage as I need some evidence that the application has been tested.

Bugs are reported on the project website and require a login to do so (to avoid abuse of the bug reporting system). If you require a login, just complete the short form (found in the 'Bugs' section of the site) and I'll add the login asap. Any feedback would be greatly appreciated and be a huge help.

The website also contains design documents, explanations of relevant concepts, easm source code samples and the online documentation for the easm syntax (

The easm syntax is essentially x86 assembler, but with a unique touch which aims to make it more manageable and readable, take the following Hello World example:

   subsystem cui

   section imports

        from msvcr70.dll import printf
        from kernel32.dll import ExitProcess

   section constants

        const NULL = 00h

   section data

        string szOutput = "Hello World\n"

   section code

        call printf (&szOutput)
        call ExitProcess (NULL)

easm makes extensive use of Win32 'imports' in order to import functionality from existing code, residing in dynamic link libraries. It is possible to import pretty much any function from any DLL (given its name) and then invoke the function in easm. This produces a huge library of inherited code, much like other languages have access to.

As a final example, the application below was recently created using easm and shows that easm is capable of the development of a fully functional application (even though it is tedious at this point). The program is a simple HTTP downloader, which saves a remote file to a local file given the fully qualified URL.


Although easm is intended for the Microsoft Windows platform... there has be some success in running the assembler and applications produced by the assembler under Linux systems with the aid of the Windows Emulator WINE. I have not tried this myself, but I am aware that the early examples in easm run fine when using WINE.

Thanks a lot, Martin.

Due to my final year project for my major being an assembler, the second most used language for me is actually my own (easm) - as I continue to develop it in preparation for my exams.

Living Room / Re: Will Wikipedia Run Out of Money and Disappear
« on: February 11, 2007, 01:27 PM »
I'd be an awesome shame to see Wikipedia go... it's often my most used resource in learning some obscure idea or technology and has helped me so much over the last few years.

I can't help notice that Wiki has no obvious third-party advertising, perhaps if they are desperate to raise funds... offering advertising on such a visited website would bring in some more money to support them... it's not ideal, but better than leaving the internet all together.

With all the discussion about productivity, it made me think about whether I do what I can to ensure I am as productive as I should be.

This lead me onto thinking about the things that divert my attention away from my task in-hand, such as loud music, interruptions and explicit wallpapers. So I came to wonder whether your desktop wallpaper (being the thing you see everytime you get a glimpse of your desktop) could aid you in your productivity.

So what I want to do is get people posting their favorite 'concentration wallpaper'. The wallpaper that you believe allows you to concentrate best and explain why it does this. The results may be interesting, and perhaps lead me to a wallpaper that helps me concentrate better than my current one.

OK - I'll go first.

This is my current wallpaper and in-case you don't recognise it, it's the top of the space needle in Seattle. I like it because looking at it makes me feel as though I am sat there in the big empty room and it gives me the sense of peace, and the nice peaceful view. It reminds me of a quiet atmosphere and being on top of the world. I truly believe it helps me concentrate better.

Space Needle.jpg

Well there's mine... now everyone else, don't be shy... show us your filth.

Announce Your Software/Service/Product / Re: Ligare
« on: January 25, 2007, 05:59 AM »
Thanks for the comments, it's really nice to see that the app I made ages ago might be used by someone and it wasn't a waste of time :)

Hmm, "RC4 derivative encryption algorithm." - isn't RC4 relatively weak? And why "derivative"? IMHO it's better to use strong standard algorithm than trying to fix up a weak one :)

The app looks nice though, and is something that I had considered writing myself.

You're absolutely right f0dder, it is relatively weak and I agree that using a stronger more recent algorithm would have made Ligare more secure. The reason I actually used this algorithm is two-fold. Firstly I had to write a research paper about RC4 (for its use in WEP) and secondly, having read and understood much of the algorithm... I wanted to see if I could implement it. Ligare is that experiment; rather than an attempt to create a maximally secure binding application.

I used the word derivative because I played around with the key scheduling algorithm and made it non-standard ... so I can't claim it is RC4 anymore.

Martin, do you still have the .pdf file that goes with this?

It might be of interest to someone like f0dder.

Yeah good suggestion april. After a bit of searching I managed to find it again. It's basically the paper I wrote that describes the algorithm - for anyone who wants to know how 'insecure' Ligare is :D

Thanks again for everyone's interest, it's nice to see it finally noticed. (and special thanks to Gothi[c] for his donation - a pleasant surprise this morning)

Announce Your Software/Service/Product / Ligare
« on: January 24, 2007, 06:46 PM »
I wrote a small application a while back that I thought might be of interest to some people.
I'll present it here in-case anybody finds it interesting and wants to use it. It's completely free so try it out.

Ligare is basically a small Win32 utility which takes a single input file and binds it to an 'extractor' executable, which contains a copy of the input file after it has been encrypted using an RC4 derivative encryption algorithm.

The idea behind Ligare is for allowing the safe hosting of a file no matter where it is. Think of it as password protecting any file. It's main personal goal was for me to be able to host source code or programs on a webserver and know that only people I give the password to could actually access it.

Another possible use of Ligare could be for licensing on small utility programs. The encryption key could just be a serial number that could be generated for each separate copy. (Just an idea though)

This particular example binds & encrypts the file Main.cpp and produces the output file Main.ligare.exe.
Please note: data is only bound, no compression is used and so the resulting executable size will be the size of the original source data + the 'extractor' executable.

On running the output file Main.ligare.exe, the extractor program appears allowing you to enter the encryption key and extract the original file:

Assuming the correct key was entered, the original file will be extracted and decrypted and should work as normal. If an incorrect key is entered, the actual output file will be another level of encryption with the newly entered key.

I hope someone can find use for it and feel free to leave your comments and suggestions, I may still make small changes if people need me to.

Thanks, Martin.

Hi, I'm Martin - a student from England, UK.

I spend most of my time programming, mainly Uni assignments but some of my own ideas too.
I've been hanging around in the IRC channel quite a lot lately, and finally decided to get an account today :)

Pages: [1]