Ohlédnutí za DevFestem 2014

Letošní DevFest se mi hodně líbil a oproti minulému jsem si ho mnohem více užil a méně se dozvěděl 🙂 Což bylo samozřejmě dáno tím, že jsem se tentokrát rozhodl nehonit se přednáškami a snažit se stihnout co nejvíc. Přednášek a navzájem si konkurujících akcí bylo tolik, že by se to stejně stihnout nedalo. Na některé přednášky se pak (snad) podívám ze záznamu. Vypíchnu tedy co mě zaujalo nejvíc. Je to čistě subjektivní pohled. Co se mi hodně líbilo, tak byla bohatá nabídka doprovodného programu. Například Machine Room a Oculus Rift byla naprostá bomba. Přednášky jsou samozřejmě užitečné, ale na …

Continue Reading

Hledáme programátora

Kdo jsme a co děláme Jmenujeme se ST-Software a  jsme liberecká IT firma, spadající pod Swiss Timing. Dodáváme informační systémy pro velké sportovní události (automobilové závody, jachtařské závody, částečně olympiáda , atd …). Programujeme hlavně v C#, Javascriptu, TypeScriptu. Dáváme si záležet, aby výsledný software byl kvalitní, takže samozřejmě píšeme unit-testy, integrační testy, máme CI Build server (Team City), git. Hardware máme výkonný a v případě potřeby není problém půjčit si notebook domů. Občas jezdíme na služebky, hlavně Asie a Jižní Amerika. Programátoři jezdí spíše výjimečně, ale já jsem si takhle udělal skvělou dovolenou v Pekingu 🙂 Rádi používáme nové technologie …

Continue Reading

How to optimize SQL generated by NHibernate

If we query objects with lot of dependencies NHibernate can (and I believe by default will) load all of them. In many situations this is not necessary. For example all we want is to count objects with some properties or show only 3 properties of some object. The object has lets say 20 properties, some of them pointing to other DB objects and those pointing to another objects. How to optimize this? It is actually quite easy. Use Linq’s SELECT method. NHibernate is clever enough to translate it into optimized SQL. But there is one drawback to consider: NHibernate can …

Continue Reading

LinkedIn endorsement je k ničemu

Když mě někdo “endorsne” (pozn. řekne o mně, že něco umím), tak mi to příjemně pohladí ego. Všichni máme rádi, když nás někdo pochválí. Problém je v tom, že na LinkedIn můžu o někom říct, že ovládá nějakou technologii (endorsnu ho), aniž by ji dotyčný ovládal nebo aniž by ten, kdo chváli dané technologii rozuměl. A když ji nerozumí, těžko ohodnotí, jak té technologii rozumí někdo jiný. Takže taková informace dost ztrácí vypovídající hodnotu. Evidentně nejsem sám, kdo si to myslí. Schválně si zkuste v Twitteru najít “endorse linkedin” 🙂   Dneska mě například “endorsla” moje bývalá manažerka z firmy, …

Continue Reading

How to unit test Angular’s $resource and $http

Unit testing of Angular’s underlying $http can be very tricky. I’ve some spent considerable time to get the unit testing up and running. What was running OK in a live application, was not working at all in a unit test. I was getting error message “No pending request to flush !” all the time. My controller looked something like this //TypeScript Module.controller(“UsersCtrl”, [<any> “$scope”, “$location”, “User”, function ( $scope, $location : ng.ILocationService, User: ng.resource.IResourceClass) { $scope.findUsers = () => { User.query({ email: $scope.searchTerm, showAdHoc: $scope.showAdHoc }, function (data: any) { //data arrived. Do something with them }, function (errorData: any) …

Continue Reading

O čem se zdá programátorům

Mám zvyk si svoje sny zapisovat, takže pak mám docela přehled o tom, co se mi kdy zdálo. Je to už několik sešitů. Některé sny se týkají programování nebo jiných technických věcí. Rád se o ně podělím. Jak jsem si naprogramoval blaho Mám ve snu otevřené Visual Studio a v něm nějaké xml s konfigurací. Není to však konfigurace nějaké projektu, ale mých pocitů. Kód vypadá nějak takhle. <?xml version=”1.0″ encoding=”UTF-8″?> <feelings> <feeling name=”pleasure” strenght=”intensive”> <bodyParts> <bodyPart name=”belly” starthere/> <bodyPart name=”legs”/> <bodyPart name=”head” state=”light”/> </bodyParts> </feeling> </feelings> Když jsem konfiguraci dopsal, tak jsem “program” spustil. V tu chvíli se mi …

Continue Reading

Jak jsem si zamiloval TDD

Jako asi každý vývojář, jsem i já četl o tom, jak je důležité psát unit testy. Občas jsem nějaké psal, ale nebylo to dostatečné. Na posledním projektu, kde vývoj trval zhruba rok a půl, jsem začal unit testy psát až během posledních několika měsíců. Což bylo sice ostudně pozdě, ale lepší než nic. (Jednalo se o testy na serverové straně, na klientský JS jsme žádné testy neměli. Člověk si musel všechno ručně proklikat. Hrůza.) Takže poučen z předchozích nezdarů jsem si řekl, že v novém projektu musím mít testy pokud možno na všechno. Vyvíjím teď klientskou část aplikace v Angularu. …

Continue Reading

Proč nepsat TODO v kódu

Nepište TODO komentáře do kódu. Proč? Protože je velká šance, že se k nim už nikdy nevrátíte. Na evidenci úkolů jsou přeci mnohem lepší nástroje jako Trello nebo Jira, tak proč je nepoužít? Není lepší pocit, než když používáte kolegovo API a najdete v něm hlášku typu:  //TODO: Co se dat?? nebo //TODO: spravne vyfiltrovat. Trochu to člověka znervózní, když neví, jestli data co dostává, jsou správná. Dobrý pocit taky je, když procházíte svůj vlastní kód a najdete tam poznámku //TODO: Tohle je prasox a mělo by se to refaktorovat. Protože ta poznámka je schovaná někde hluboko v kódu, tak …

Continue Reading

Function string.format ported from .NET to AngularJS

Have your ever wondered if there something like string.format() method as known in .NET but available in Javascript? And waht about AngularJS? The answer is yes. Guys from Microsoft wrote library Ajax Control Toolkit, containing little this gem String.js (I found it via Stackoverflow). I needed it as a filter in AngularJS, so I have ported it there. The code is available on Github. Example of use <h4 class=”result”> {{‘put values here “{0}” and here “{1}”‘ | stringFormat:[‘1’, ‘2’] }} </h4> Result is put values here “1” and here “2” ONLINE DEMO ON JsFiddle Comments welcome.

Continue Reading

Co programátoři dělají celé dny?

Můj překlad článku What developers do all day? Pokud jsi programátor, můžeš na konci dne smazat všechno, co jsi napsal a napsat to znovu zhruba za hodinu? Je dost možné, že ano. Proč to tak je? Je to pro to, že programátoři jsou líní přeplácení machírci? Ne. Je to proto, že se tu děje mnohem víc, než je na první pohled vidět. Vědomí toho, čím trávíme nejvíc času a pochopení z toho plynoucích výhod a nevýhod nám může pomoci být v práci efektivnější. Věřím, že nejvíce času trávíme zkoumáním, navrhováním, ověřovaním a (pak až) psaním kódu. Zkoumání Dave Moore se …

Continue Reading