Finally!

New CodeIgniter version 1.5.4 finally fixed it's mysql library. CI is a great framework, but I had that mysql bug for ages. I found it in 1.5.0 when I was working on my previous project.

They used some lame stuff with magic_quotes and addslashes to escape strings, and it worked in many cases of trivial text data and didn't work in much more cases when the data was more complex. I did a fix for my CI installation, was going to file a bug and submit a patch, but someone did that before me. It was in early 2007.

And now they finally fixed that in release. And even more: they got rid of that nasty little magic quotes stuff. Since now, if magic_quotes_gpc if on, CI uses stripslashes, so all data inside it is always unquoted.

I'm really glad about it as I almost started thinking Code Igniter is abandoned, and was going to switch to it's community branch, Kohana.

See CodeIgniter Changelog for more details.

If you liked this post, why not subscribe to my RSS feed?

Jul. 17, 2007 // 14:10 | Comments (0)


Link: An Excelent Productivity Blog

The best one ever, actually, even though it just had appeared.

http://www.doitfuckingnow.com/

Hope, you'd enjoy reading it as much as I did.

Jun. 05, 2007 // 18:56 | No Comments


Vi Clone Completely Written in Javascript

Tonight, surfing instead of studying (gonna have an exam tomorrow, wish me luck, I'm in damn need of it), I came across this stuff: a jsvj – vi clone written in javascript. Completely.

I was amazed. Well, yes, I realize, that vi is open source and it's source code isn't that large, but still... I'm amazed. It's working! I'm a crazy vimmer, vi/vim is my favourite piece of software ever, and I was just recently thinking about why didn't anyone created online AJAX'ish vim clone, and here it is.

It supports --INSERT--, --VISUAL-- and --VISUAL LINE-- modes, most vi-keys (and some vim, too, though it is still a vi/ed/ex clone, not vim), some HTML for physical text markup, highlights hyperlinks automatically (you can double-clikc highlighted link to open it in a new window) and even has spellchecker, which looks pretty neat.

There some bugs, though. It doesn't handle all the keys correctly: Ctrl-[, which is a replacement for Esc (in case you don't have Escape key) works only in IE and Opera, while, cursor-keys navigation in --INSERT-- mode adds extra characters instead of actually moving in Opera.

Anyway, that's cool and I'll try to make some use of it in one of my future project. I can't imagine, what could it be, but I'm sure I want it!

BTW, it's licensed under terms of GPL.

May. 31, 2007 // 01:31 | Comments (0)


Motivation, Part 2, Self-Assuring: Don't Be A Loser

Never.

Don't tell me you're not. Hmm, well, probably you really aren't, and don't need to read this article. But it is also possible (and more probable, I think) that we understand losing and winning differently.

Play To Win

Always. Do not play to loose, do not even play just to play, unless it's just a hobby. Sure, you should know what would you loose if you fail, but. Don't. Ever. Think. About. It. after you started working. Estimate all pros and cons before, and as you started working, just work and achieve a success. And no “what if?”s. Playing to win doesn't mean trying to burn yourself out doing things you can't do. It means knowing yourself at doing your own best.

Where's motivation, you ask? You don't? Great, you understand me. Anyway, to ensure than we understand each other:
When you know exactly what you can and what you can not. When you always can tell: “I can do that” or “I can't do that”, you always get only the jobs you can successfully finish. So you always self-assured and self-confident. You love your work, you love yourself, you're a smooth dancer.
That doesn't mean you should freeze. Get new skills, develop, but always know your possibilities.

Do Your Best, Not Someone's

Never excuse yourself. Your failure is your failure. You do not fail because someone's better than you and, especially, someone has more chances than you. Terrible Lie! Winning is not about been the best. It's about doing your best.

Don't look at others. Never tell yourself that someone succeeded because he had more chances. Sergey and Larry studied in Stanford, while you didn't? They had a chance to be seen, and you didn't? Why? Because you weren't at Stanford. Why haven't you been there if you're so good?

See? What a fair competition with them? Are you sure, you're better? I doubt. So don't look at others, be yourself and do your own best. Find your niche.

Don't be a loser. Be yourself.

May. 23, 2007 // 12:59 | Comments (0)


Motivation, Part 1, Extreme: Stress

When freelancing, one of the biggest problems for you is productivity. Working in office, you always have your boss or your colleagues around, so no matter how lazy and how tricky you are, you have to work at least one hour a day. But what if nobody looks after you?

Hmm, yes, you can work naked, but that's not what I'm talking about.

This would be the first article about motivation, or in other words: [ How to make yourself do something and deliver required work by deadline? ]

May. 16, 2007 // 23:29 | Comments (4)


Door Locks Only Protect From Honest People?

After years of vimming and preceding years of using PHP Expert Editor I finally decided to try Zend Studio.

As you probably know, it has evaluation period of 30 days. I downloaded it, installed, used for a while, then left it to use vim and DBDesigner again. I don't remember how many days passed since I started using it, but today if accidentally deleted it's link. That link is actually a sh script which starts java VM with a .jar file which itself is Zend Studio. I wasn't sure if there's something more in that script, so I decided to reinstall Zend Studio rather than rewrite the startup script myself (luckily, installations of Zend Studio doesn't take any significant time).

And what do you think? When I launched Zend Development Environment, I saw that my evaluation period expires in 30 days again: on May, 22.

I'm a little mad about licenses legal issues with software, but you can use it forever without searching for any cracks/serials. Nice gift for poor students, huh? I wonder if the Windows version of Zend Studio is as easy to “evaluate”.

Anyway, it doesn't seem a perfect IDE for me. Some stuff is really great there, but it misses a lot of thighs I'd really appreciate and it's rather slow and RAM-greedy. Guess, I'll get back to vimming or finally try to get used to emacs.

Apr. 22, 2007 // 23:55 | Comments (0)


Where To Get Clients, Part One: RentACoder

In the recently posted article about freelance I didn't mention how to find clients. The answer is simple: communication, communication and communication again. Keep in touch with you past clients, ex-co-workers, ex-classmates, make friends in professional community, etc. My ex-co-worker Ivan from an open source project which was never finished, gave me a link to a freelance which brought me where I am now. You see? You never know who could help you. Never lose contacts.

But what if you're completely new to freelance work and noone can recoomend you or have aby work for you? Then you go Google and find a bunch of sites which make money from connecting software buyer and software coders to each other, register, post a resume and start browsing through the list of open projects. When you find a project that interests you, you try to assure the buyer, you're the perfect man for that work, and if you succeed you start working.

I started from a local Russian/Ukrainian service called Weblancer. No need to place a link here, as it isn't interesting for anyone been a very bad service. I list it here just as an example of what a service of your choice should never be.
It looked cool with a lightweight design. All the text were readable, but it had ads placed in two or three places. Not the banner of other project of the same company, but a usual paid ad. I was young and unexperienced, so it didn't bug me, I didn't think about why do a company need to place advertisement for $200/mo if make money from coder-buyer interface.
Well, yes, I was lucky enough to get there when it was still possible to find a work me. I finished a couple quick'n'dirty projects and had been paid directly by the buyer. Yes! That site didn't force people to communicate and send money through it. It was just an option. An if you chosen to pay through site, the commission was 10% and there were no safe escrow mechanism: both buyers and coders were unprotected.
Pretty soon, the site added a lot of paid features for coders (like seeing other coders' bids, clients' contact info, placing image into CV) and buyers (don't know which exactly). And I still didn't understand what that means: they couldn't get any revenue from primary functionality.
I left Weblancer later, where two or three people appeared there: they took most of the projects, and then started new with the same objectives and, in their turn hired real coders for a half price. Or even 1/3. Maybe even less, I didn't really knew what does development cost.

After leaving that site I haven't any freelance work for 6 months (and had to do boooring data entry work in dental clinic) until Ivan invited me to RentACoder. Compared to previous site, it was Heaven.

It features safe escrow system: the funds are transferred to RAC when buyer chooses coder for a project, and they only (or the part of therm) released when the project (or the part of it) is finished. If the project is canceled or the coder failed to deliver the work, the funds are returned to the buyer.

There are a lot of coders and buyers. Of course, more coders means harder concurrention, but you're good enough, aren't you? And more coders – more bad coders. Actually, my success is built on other coder's unprofessionalism: we both placed a bid, he won, but failed, and the buyer inveted me again. I succeed. I still work with that guy (Hi, Leif! I know, you're reading me through loonstart), he's great.

Payments are sent twice a month, and there were 4 ways to get your payment: check (by courier mail or by plain mail – first is fast and reliable, second is slower but cheap), wire bank-to-bank transfer, PayPal and Western Union.

Arbitrations. If something's gone wrong and coder or buyer violated contract, they can self-mediate the conflict or ask RAC person for arbitration. I never had to use it, but Ivan says, the process is pretty clear for both sides.

When the work is done or failed, both coder and buyer are encouraged to rate each other and write a couple lines of review. Most people leave ratings and a few neglect reviews. You will get “A great coder”, “Not everything went clear, but we worked it out”, “Accept his bids!”, «A++", etc frequently, because you're good enough for that.

The commission is 15% (or $3, whatever is more), and the buyer can add funds to his account from credit card or PayPal.

What RentACoder lacks is more pay options for coders: I would really appreciate e-gold or something like ePassporte. For that I rate it 9 of 10 points.

Apr. 15, 2007 // 00:43 | Comments (8)