RSS
people

To be a good web developer

  1. Be a good programmer first. (Point 2 to 14)
  2. Understand the pointers, memory allocation and all those low level ‘outdated’ things. (Yes, even when you program in Java)
  3. Learn the sorting alogrithms – You probably never going to write one, as your language has a built-in function for the job. But, Do it and understand the time and space complexities of each.
  4. Remember the good old data structures like Linked Lists, Trees, HashMaps – even when the language provides abstractions for these.
  5. Learn to use Objects properly.
  6. Learn when not to use objects. Appreciate the fact that functional programming paradigm has its positives.
  7. Seriously – seriously – even when it feels insignificant – seriously – comment your code.
  8. Be comfortable with point 14.
  9. Never stop learning – learn from everyone.
  10. Be open minded. There is always a possibility of better solution.
  11. Use IDE. Vim and EMacs are geeky but little help while writing code does not harm anyone. Pick any – Netebeans, Eclipse…etc.
  12. Always keep a track of your code. Use a subversion system. (SVN/git)
  13. Be platform agnostic.
  14. Be comfortable with point 8.
  15. Learn HTML – it’s NOT a job below your standards. Afterall, whole point of your application is to output HTML.
  16. Understand symantics in markup. Even though you can make h1 look like p and p look like h1 – Do not do that.
  17. Learn to make h1 look like p and p look like h1. Yes, I am talking about CSS.
  18. Learn JavaScript, detect those memory leaks. Specially when you want to be a ‘backend’ developer.
  19. Seriously, its okay to pick one JS framework (jQuery, mootools, yui – whatever) and be good at it than to know little bit of every framework.
  20. Never forget the config files. Always read them. (httpd.conf, php.ini, redis.conf – everything)
  21. Think about optimization and caching – always. You do not implement optimizations later.
  22. Write a single deployment script. Deployment should mean pressing ‘enter’ once.
  23. Learn SQL. SQL is not only about select, insert, update, delete. Understand transactions, triggers, views – use them.
  24. Keep an eye for NoSQL. (Point 9)
  25. Use firebug on daily basis.
Note: These are my personal opinions and I will keep updating it, as I understand more and more things. Any suggestions is welcome.
5 Comments | Tags: , ,

Obfuscated code in C

If you think that program below will not get compiled, think again. Try compiling and running it. And see the output it produces.

#include<stdio.h>
main()
{
int a,b,c;
int count = 1;
for (b=c=10;a=
"- LLLLLL?, LMKC,XYZHELLO FOLKS,\
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!" [b+++21]; )
 
for(; a-- > 64 ; )
putchar ( ++c=='Z' ? c = c/ 9:33^b&1);
 
}

Ya! This is a valid C program. It will produce a map of India. :) This kind of source codes are called Obfuscated codes. Obfuscated codes ares source codes or intermediate language that is very hard to read and understand, often intentionally.

See one more example from wikipedia:

#include <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \
}'+}##(!!/")
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1)
  :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

This will generate the 12 verses of The 12 Days of Christmas. It contains all the strings required for the poem in an encoded form inlined in the code. The code iterates through the 12 days displaying what it needs to.

4 Comments | Tags: , ,