1. Button Generator - soon there will be dutch and french translations available.
2. STAT4U - just started rewritting everything from scratch - so there will be v3.0.
3. Probably there will be OCOP v4.0 some time soon (beginning of the next year, I think).
4. I'll be taking some time to work on several new Android apps.
5. I'm quite dissapointed that almost 1 year of work on my Q4U E-learning System didn't turn to be instantly fruitful, but I'm not giving up just yet.
After I learned quite fast and from scratch some basics of Java and Android API and created two apps to test my new skills I found myself in situation where I suddenly have to change job. After 4.5 years, mind you.
I got new job in one day, but this time the project required knowledge of C++ and MS Visual Studio 2008.
Good thing I have Stroustrup's "The C++ Programming Language" book! But so far I couldn't bring myself to really read it. It took one weekend of reading and bang! "I know kung fu. / Show me." as it was in The Matrix. Or quoting from Star Trek Voyager's EMH when he first got his mobile emitter "It's just another environment to me".
Friend of mine told me, that these two are one of the best paying languages to know. I avoided them for years. Not any more. Hello World! Here I come!
Crowdsourcing is an interesting idea. It’s based on an assumption that greater and difficult (costly) task can be (in reallity where we have computers and Internet) divided into smaller tasks (sub-tasks, chunks) and performed by crowd of people who happen to have just some basic required knowlegde and a bit time to do small part of this bigger task each. A task that would take hours or days for only one person to complete and one person wouldn’t probably have all the data / expertise needed.
I myself decided to use this approach to do (and possibly complete) two quite not easy tasks:
1. Translation of a program interface (labels, dialogs, messages, etc.) into some foreign langauges (I only know polish, english and basic german and russian). In this particular case it’s my freeware Button Generator for Windows (I called it Button Generator Translation Project).
2. Collect and update geolocalisation data for all polish IP addresses (geo.4u.pl) for use with my STAT4U system (first polish web statistics).
Here are some of my observations on the subject after few years in the process.
In general people are heplpful. They seem to want to contribute out of their own free good will. That really keeps my belief in humanity up.
Translation of Button Generator into spanish and italian wouldn’t be possible without this great external help. Google translator is still not an option as it often tends to produce real crap. Also collecting geolocalisation data is not possible without such a help. Some things can be learned from whois or DNS, but a lot can’t. In Poland we have some ISP who have total mess in their whois data. For example Neostrada (by TP S.A.) is one big mess. Big IP areas here are described as Warszawa or Poznań or Lublin while in fact they are totally fragmented across the whole country. Some other ISP like UPC or NETIA have no city descriptions in whois at all. So the only way is to relay on what people tell you. And they usually give honest and accurate info (I always try to verify it to maximum extent possible).
These were the positive aspects of crowdsourcing. The negative ones are really annoying. I understand they are impossilbe to avoid, but ...
Why the hell people from Turkey are so stupid? They may not understand polish. That’s OK. They may even not understand english. But why do they have to fill web form they don’t understand. Why do they select city Turek (which is a CITY and is in Poland) and submit it as their location, when the form says clearly „We don't collect GEO information from outside Poland. If you are not in Poland please do not submit this form since your data will be discarded anyway.” ??? This happens every time I update the database (which is only semi-automatic). And there are always some IP-s from other countries entered as polish cities. WTF?
What I mean is I always process the data, but why people bother to enter such crap anyway?
Button Generator Translation Project – here often happens another crap – someone (or somebot) enters a lot of random text with some spam-like URL’s in it. I had to fix the form to be immune to (or ignorant of) HTML tags, URL and e-mails. This is something that shoud probably be done from the beginning. But I didn’t realize someone will actually do bad things here. There is no reason - again I will process everything manually when it’s time (when 100% is translated). UPDATE: I need to fix it more, it’s still not 100% immune!
I would guess when using crowdsourcing to accomplish something quality distribution will be more or less gaussian. One has to apply some filters on incoming data anyway - as usual always validate user input (any input). So standard do not trust rule (good oldschool paranoia) is ALWAYS required. Then and only then there will be overall benefit in the process.
It seems to take a lot of time to complete crowdsourced task. Unless some marketing is done around it.
Is it better to keep up or stick to what's already known?
It’s the road
I started long ago - in 1988 - with ZX Spectrum BASIC and Z80 assembler. Then came Elwro 800 junior (ZX clone) with it's then-cool CP/M and Turbo Pascal. Then came Commodore C-64 and I learned 6502 assembler on it. Then I got access to first PC-s like XT/AT/286/386/486. It was so cool. New TP 6.0 and 7.0 seemed so all-powerfull back then. And 80x86 assembler? WOW! And those 256 colours! Neat! And there was a lot more on the way...
20+ years later most of this hard learned knowlegde and skills is useless. Who cares what POKE 23606, n does? Or why care about LDIR anymore? I'm happy I never learned Fortran or Forth or Cobol (last one may however still be usefull)...
I'm quite conservative and tend to stick to what I mastered. Until recently (it’s year 2011, not some dark ages!) I still used Delphi 3 (which costed me a lot when I bought it). After I first learned it something like over 10 years ago I remember myself thinking: that's the ultimate tool, now I can code anything and I'm not afraid of Windows anymore. Now I’ll create best software ever! Now I'll be famous and rich... :)
And again - now D3 is crap and even D7 is so... For example all those problems with unicode / UTF support... Nowadays people (my endusers) use XP/Vista/W7. I’m the only one I know who still uses W2K as primary OS. Delphi 3 is just so outdated... One of my old quite widely used apps (OCOP) doesn’t even run on W7... And what about mobile applications?
Maybe it's time to move on... I was so excited with object oriented programming, big hard drives, and lots of memory and CPU power that I was happy to forget about 8-bit stuff (lots of old tapes and floppies with assembler subroutines I never got the chance to put to good use).
But what to do with all that new code written for years (and often unfinished)? And all that stared projects that never came to be? The further you go the more you carry. It may become too heavy and you may get too slow. Open source may be some option. But there are some risks here.
And there are challenges. And they are the blessings. They seem good in long term. Some new skills are required to do new things. Things that were impossible yesterday but now are not only oh-so-cool but even just a standard. For example mobile apps on Android. I always disliked Java. Why use eating resources VM to just write „Hello world!”? On ZX it would took only few bytes and run under miliseconds (CPU @ 3.5 MHz). If I now have over 1GHz CPU why wait seconds just for the environmet to initialize? It’s exaggeration, I know, but it shows my dislike. And now here I am. Willing to code for Android I finally started to learn Java (and new Android API / philosophy). And guess what? It ain’t that bad. In fact it’s pretty cool actually. And it’s much easier that I ever tought. However old (not bad) habits need to be kept in check.
Some loose list of pro and cons
Stick to old is good
- you do what you know that you know and you know you’re good at it so you keep the quality
- what you do is easy and pleasant, no suprising obstacles or setbacks, just pure zen of coding
- you make less stupid or catastrofic mistakes because you already know the thing you ougth to
- you remember there are some users / people who are also stuck in THE OLD, you don’t abandon them
- new things happen everyday but they don’t disturb you, again it’s perfect bliss
Stick to old is bad
- you loose touch with what’s going on
- you can’t do anymore (new) things that are in fact easilly possible
- you stop developing yourself professionally
- everybody (competition) is ahead of you
- you might oversleep the next big chance
Move on is good
- you stay fresh and challenge is your friend not your enemy
- you keep in touch with reallity (if there’s such thing)
- you keep your options open
- you have better chance you have/know/create what your users/clients need
- you can achieve more for less (time, effort, money)
- there’s excitement in what’s new
Move on is bad
- better is the enemy of good
- new hi-tech super-hiper stuff may be outdated tommorow, before you even master it’s use and application
- sometimes it’s better to wait and see what will unfold (eg. Symbian/PalmOS vs Android)
- new software is just old software but with new bugs
- you often start from scratch
- if you put all your data in one cloud it can one day evaporate with it and the rain will be cold
It’s all in emotions, it’s all in the habits
We all cling to once familiar (I think it’s a quote from Star Trek, but I’m not sure). This is an emotional response. Natural really. But not always helpfull. I learned Delphi the hard way, with stress, with fun, with deadlines, with try and error, with 12h coding sessions. Am I to just throw it all away? No way! Learn Java, C++ or C#? Who needs this crap. I can do all that in my favorite, the best and coolest... not so special, not so universal... Basta! How do I code for Android in Delphi? I don’t.
Some habits are good and independent of language / platform. These are worth keeping. You learn to think in certain way. You refine that thinking. It is beneficial all the time. But when you still into DOS it cannot be good.
I belive one has to find the right balance. As with everything in life. Some thing are holding me back and they are worth leaving behind. Some new things are promising and they seem to be the future. They are worth learning. Go forward and look forward, but remember whre you came from and draw from what you already know. Some technologies and tools become obsolete but all the gained experience is the essence. Stick to it and move on.
I have to say I don't really like blogs. Boring stuff. Mostly boring. Same goes for things like twitter, facebook and other crap. But I feel like checking out how it feels to write sometimes about things I find important. Things that don't seem to concern anybody else around.
For example: today I almost crashed one production server with trivial grep redirected to a file. I underestimated resulting filesize and choked the filesystem on / .