Co je špatně na webu DMPLJ.cz

Čím to je, že státní podniky mají tak často tak špatně udělané weby? Že v takovém podniku není nikdo, kdo rozumí tomu, jak udělat web, to chápu, zabývají se prostě něčím jiným.  Ale to si nemůžou  najmout někoho, kdo tomu opravdu rozumí? V čem je problém? Možná chybí motivace odvést dobrou práci – například proto, že to “není moje práce přemýšlet nad tím, co dělám”? Web dpmlj.cz je nepřehledný, neintuitivní a vůbec nehezký. Proč o tom ale vůbec píšu? Jednak jsem z Liberce a služby dpmlj občas používám, jednak mě jako programátora vytáčí, když vidím něco tak, s prominutím, zpraseného.

Continue reading “Co je špatně na webu DMPLJ.cz”

How to get text value from HtmlTextWriter in C#

HtmlTextWriter is very nice tool to generate HTML in C#, but it lack ability to get generated HTML as a string.

Here is a simple solution: HTmlTextWriter uses internally StringWriter which uses StringBuilder. So you first create StringBuilder and StringWriter, pass them to HtmlTextWriter and when you are done you simply call ToString() on the instance of StringBuilder.

 

SEO Vtip

Snažím se psát blog o programování a příbuzných tématech a hádejte, co je aktuálně nejčtenější článek na blogu? Výměna baterek ve Včelím medvídkovi. Kromě Googlu jsou největšími zdroji návštěvnosti servery mimibazar.cz a emimino.cz. Kdepak asi soudruzi se SEO asi udělali chybu? 🙂 Nebo, že by to byl jediný zajímavý článek, co jsem napsal? Já vám nevím… 🙂

Pár myšlenek z WebExpo 2011

Letos jsem byl poprvé na WebExpu. A celkově jsem byl dost spokojen. Co mi hlavně ze začátku chybělo, byla nějaká výraznější navigace uvnitř areálu, měl jsem občas problém trefit správnou halu nebo dorazit na přednášku včas:) Catering byl dobrý, jen bych uvítal i celozrnné pečivo jako alternativu ke chlebíčkům a sladkostem.  Snažil jsem se psát si z každé přednášky poznámky, předkládám tu pár (alespoň pro mně) nejzajímavějších myšlenek z několika přednášek.

Antivirus zdarma a síla komunity

“Naše společnost čelila krachu. Naše jediná šance bylo nabídnout lidem výborný produkt zdarma, dosáhnout jeho velkého rozšíření a část uživatelů zpoplatnit. Podařilo se to.”

“… My vlastně nevíme, proč lidé náš produkt kupují. Placená verze a verze zdarma jsou v podstatě úplně stejné. Ale stává se, že nám občas někdo pošle v obálce třeba 5 dolarů. Nebo náš produkt používá zdarma 10 let, je spokojený a z vděčnosti se ho rozhodne koupit. Nebo se začne angažovat v komunitě, stane se naším evangelizátorem, radí ostatním uživatelům na diskuzních fórech, překládá náš produkt. My žádný placený support nemáme. To všechno za nás dělá komunita.”

“Nejtežší bylo získat prvních 100 milionů uživatelů. Pak už to jde samo :)”

Přednáška byla zajímavá ještě z jednoho důvodu. Přednášející – Miloš Korenko – totiž podněcoval k diskuzi rozdáváním dárků. Kvalitní francouzské víno (závidím), flešky, trička atd… Nevím, jak ostatní, ale já jsem začal dávat hodně pozor 🙂 A musím říct, že se ptalo hodně lidí, mnohem více než na jiných přednáškách. Nešlo samozřejmě jen o dárky, ale i o ten pocit, že přednášející má zájem o otázky, že si chce s lidmi povídat, že otázky jsou vítané, protože posouvají diskuzi někam dál… Samozřejmě, že na konci každé přednášky byl prostor pro otázky, ale ptát se zpětně někdy nemá už takový efekt, jako zeptat se právě v tu chvíli, kdy je to “horké”…

Velikost myšlení

Hodně mně zaujal výrok Lukáše Plíhala: “Nejlepší nápady říkají ostatní, já je k tomu jenom podněcuji.” Líbí se mi to, protože v tom je pokora a umění naslouchat. Myslím, že je docela těžké, a člověk se to musí učit, vést dialog takovým způsobem, aby “nejlepší nápady měli ti druzí”. Znamená to dát jim k tomu prostor, neupřednostňovat svoje ego a svůj pohled na věc, ale naslouchat druhému. Je docela dobře možné, že moje řešení je skvělé, ale když ho budu lidem nutit (protože jsem přece nejlepší a vím to líp), tak je pouze naštvu a nakonec se mnou nebude chtít nikdo spolupracovat.

“K rešení problému se nejsnáze dostaneš tak, že se ho třeba pokusíš nakreslit během krátkého omezeného času. Když dostaneš 3 minuty na to, aby jsi nakreslil kolo, tak si budeš hrát s detajly jako je zvonek, brašna, světlo atd. Ale když budeš mít jen 2-3 vteřiny, tak nakreslíš jen to opravdu podstatné: kostru, kola, sedlo a pedály, řidítka.”

Evoluce designera

“Pokud není nikdo, kdo by váš design nenáviděl, pak není ani nikdo, kdo by ho opravdu miloval, koho by nadchnul.” [Tibor Kalman]

To opravdu funguje. Pokud totiž nikoho nenaštvete, jste nejspíš průměrní, nezajímaví… Platí to i v například online seznamování, jak dokazuje studie seznamky okcupid.com.

Rozhodněte o rozhodnutí druhých

Na úvod přednášky nám Petr Kosnar pustil video o Marshmallow Experimentu. Doporučuji shlédnout:)

“Lidé touží po tom, mít co nejširší výběr. Ale když ho dostanou, je to na ně příliš, nedokážou si z toho vybrat. Tak půjdou jinam a koupí si něco jiného.”

Jak vysoký je Chrysler Building? Odpovědi lidí zavisí na tom, jak zformulujete otázku. Když se zeptáte: “Kdo si myslí, že je vyšší než 100 metrů?” budou lidé hádat jinak, než když se jich zeptáte “myslíte si, že je vyšší než 1000 metrů?” Číslo zmíněné v otázce totiž funguje pro tázáného jako referenční bod vůči kterému vztahuje svůj odhad. Funguje to dokonce i tehdy pokud zvolite nějakou zjevně nesmyslnou hodnotu.

Elastic Search

Databáze, která se umí sama distribuovat. Kluci ukázali hodně pěkné demo, jak se jejich databáze chová, když přidají nebo zabijí jeden node.

Proč nepoužívám seznam.cz

Před lety jsem používal mail na centrum.cz, později když mi tam chodilo více spamu než normáních mailů, jsem přešel na seznam.cz. Před několika lety jsem zkusil gmail. Nějakou dobu jsem ho používal souběžně se seznamem, ale ten jsem nedávno v podstatě opustil. Důvod je skoro stejný jako v případě centrumu: spam a bulvár.

Nefunkční “Smazat jako spam”

K čemu tohle tlačítko je?? Zdá se mi to, nebo jediné co dělá, je že daný email smaže bez potvrzení? Proč mi druhý den přijde skoro stejný mail, opět dám “Smazat jako spam” a druhý den ho tam mám zase… (Ne)Funguje to takhle už hodně dlouho, skoro bych si tipoval, že to tak je úmyslně…

Bulvár na titulní straně

Chci se přihlásit do mailu a první co vidím, je že čtyřleté děvčátko pokousal pes nebo že školní autobus spadl ze skály, někdo vyfotil nahou celebritu a podobně. Já to nechci číst. Mám malou dcerku. Nechci číst o pokousaných dětech a celý den pak na to myslet… Já vím, že Blesk jsou neprodávanější české noviny a že smrt a sex nejvíc prodávají, ale musí se k tomu seznam.cz snižovat? Chápu, že je to asi lukrativní byznys a reklamu na novinkách.cz vidí hodně lidí, ale nešlo by stavět na něčem kvalitnějším? Třeba mapy.cz jsou výborné a pokud nepotřebuji street view, tak jdu primárně tam.

Pomalý vývoj

Mapy.cz mají novou verzi (už je to pár měsíců), ale seznamácký mail jakoby se zastavil v čase. Google mail zatím přidal například podporu pro drag’n’drop pro nahrávání příloh, štítkování zpráv – i několikanásobné, integrované widgety, propojení s kalendářem a mapami, klávesové zkratky. Existují různá rozšíření pro prohlížeče jako třeba Gmail Checker Plus, který vám ukazuje v záhlaví prohlížeče počet nepřečtených zpráv, jejich náhled atd. Co za tu dobu vylepšil seznam.cz na svém mailu? Přidal tak možná podporu skinů…

Pro přesnější statistiku se podívejte na následující graf. Je patrno, že podíl uživatelů Google v ČR stále roste. Sice ne nějak rychle, ale roste. Nedivím se. Google neustále svoje služby vylepšuje, seznam.cz jen občas… Zůstávám u gmailu i navzdory tomuto článku.  Zdroj: toplist.cz [27/09/2011]

 

Vývoj podílu Seznam.cz a Google

Asshole Driven Development

I’ve recently stumbled upon a book called “Say no to assholes” (Link to blog post in Czech) and it immediately reminded me of my past job. I don’t want to slander anyone, I just want to share it as a warning and encouragement. I worked there for about a year, which is enough time to know how Asshole Driven Development works. Basically there is an asshole in the leading position demotivating everyone. What is surprising about it is that although employees complain every day, lot of them stays in the company. They are under motivated, pretending to work and their boss is pretending to pay them. To compensate for stupid work condition they make small mischievousness. No blame on them. I did the same, and some of things we did was lot of fun :).

What surprised me the most that even after a year situation is almost the same. People are leaving at a pace about one/two people per month (and newbies are hired instead). I wonder why the number of people leaving is not higher? Is it fear of being unemployed? Or is it enough to clear your head by complaining? Why is it that we get used to something we don’t like? Tomas Hajzler says that human mind has the strange feature that if something is happening for long enough it will accept it as normal. That probably explain why so much people work in a job they don’t love for 10 years in a row, or why a quarrelling couple stays together for so long, or why we think that some things “have always been this way“.

Nothing has always been the way it is. There was some process that lead to it. And there is always the possibility to change it to something else. First make sure that you not the cause of your current problems (which is very often the case), and then try to change things around you. If it is not possible, don’t complain but leave. Leave and go someplace else. Meet new people, join new company, get some fresh air 🙂

Courage and personal growth

Motto: What prevents you from success is your fear of failure

If you are afraid that you will fail than you are very likely to give up. You might be given great opportunity, but you don’t take it because you are afraid that you might fail. What is worse? To try something new, possibly fail but learn loads of stuff in the process or avoid risk and do nothing? Of course that when you do something what is new to you will make mistakes. There is no way how to avoid mistakes when you learn. People even can make fun of you. But probably they wont. (Did you know that? it is just your fear talking to you. You wont realize it unless you do it.) Instead of laugh you will get respect. Just look at small kids: they don’t count failures. They just try to walk. They want to get to their favourite toy. And they will get there, may be with bruises, but they will get there. Unlike some adults who rather stay in a corner and complain that life is too difficult. We all have dreams, we all want to achieve something great, we all want to get respect from our friends and community. We want to be successful and happy. But there is a price to pay: You have to have courage to pursue your dreams. You have to be passionate. Don’t you just dream but really do something, go out, talk to people, be open, start something, and don’t be afraid to ask for help. We all need a helping hand sometimes, there is no shame in asking for it. (Just be polite and don’t beg 🙂 ). I don’t know what it means to be great but it I believe it has something to do with standing on shoulders of giants. If you work only on your own you are like a piece of coal taken out of a fireplace.

 

TwitterNow bookmarklet

Have your ever wanted to add simple tweet with url of interesting blogpost you are currently reading? I’ve found a simple javascript bookmarklet which does just that. It opens a new twitter popup window with generated message so you can customize it if you want to. And if you select part of text in web page it will be automatically added to the tweet as well.

Bookmarklet (drag it to your links – PS: you might need to add a name to it)

Source code:

javascript: void(open('http://www.myopiclunacy.com/twitit.php?title=' + escape(document.title) + '&text=' + escape(document.selection ? document.selection.createRange().text : (window.getSelection ? window.getSelection() : (document.getSelection ? document.getSelection : ''))) + '&url=' + escape(location.href), 'twitIt', 'scrollbars=no,width=550,height=250,top=175,left=75,status=yes,resizable=yes'))

See original page for other tips.

Why not to work overtime

If you get some amount of work done in 8 hours, will you get done double if you work 16 hours?  This is of course an extreme case, nobody can work for 16 hours and still maintain focus. But some manageres and developers do think that when in need they should work long overtime hours.  The project is almost reaching its deadline, but it is far from being finished. Your boss or your client (or even yourself) urge you to get it done ASAP. So you decide to get up very early and go to bed very late, in order to write as many lines of code as possible. But does it really make sence? Are you really more productive if you work longer? Here is my summary why not follow this path.

Tiredness and loss of concentration

This should be obvious. You are simply not capable of maintaing concentration for too long. When you sit in front of a computer for too long, you get tired. Your body needs exercise, and your brain needs a brake. But you can’t rest because you are already in a hurry. As a result you will introduce more (possibly stupid) bugs in your code, which you would not do if you were fresh. You will have to fix them in the future, and you will be even more late.

Loss of joy from your work

You dream job has now became  a nightmare. You now longer look forward to go to work to write beautiful code, you now go there because you have to. And doing something only because you have to is very bad motivation. You will probably feel need to compensate this suffering somewhere else. So when your shift ends, you try to switch off (Get high, get drunk, whatever). You try hard not to think about work .You are off balance.

No time for reflection

Because you are in a hurry, you don’t have time to stop for a moment and meditate about your work. You need to find some time to look at yourself  “from above” and see yourself and your work in a broader context. Does it make sence what you are trying to achive? Does it make you happy? Does it worth the effort? Could it be done better? Is there something I have missed?

No time for learning

You don’t have time to learn about new language features, about new techniques, new ways of thinking. Even though you are always moving, you don’t get anywhere. You are stuck. You don’t progress, and if you do, then slowly. Then you tend to repeat your own mistakes and bad practises over and over again simply because you are not avare of them.  You also miss new opportunities, which is the greates loss of all.

No time to refactor

You write some code and it works, so you move to the next step. But you have forgotten something important – to look back. There might be something rotten in your code. It works, yes… and, yes it does what it should do, but still it could be probably written better. Refactor. Try to keep the four elements of simple design. If you don’t then you risk that will face maintenance nightmare in the future.

No time for personal life

You girlfriend complains that you don’t pay enough attention to her and that you have become obssesed with your work (instead of being obssesed with her 😉 ) You have not time to actively relax and you don’t have time for your friends, who could probably give you some good advice before you burn out.

Burnout

If you continue to work this way for long enough you will eventually burn out. The day will come when you will wish you have never started to work with computers. You will wish to do something completely different. Like having a goat farm or hitch hiking around the world 🙂

Final Words

There might be various reasons why you “have to “work that hard. Your boss might have unrealistic expectations about how fast the company is able to deliver the project, or he might try to win the contract at all cost. Or it might be because of your own unrealistic excpetations – you might be simply not experienced enough to judge how long it will take you. Or you might be afraid to fail, you don’t want to admit that you are still a beginner. None of these reasons worths it… or does it?

Thanks to Petr Novák for inspiration for this post and reading a draft of it.