How to give a good presentation
by admin on Únor 3, 2012
- be natural
- good introduction is very important! Build up a good relationship with audience – look at them. smile, allow yourself time to take control of the situation.
- be enthusiastic about the topic
- capture your audience (vary the rhytms of your speech, try to sound excited)
- definitely make eye contact
- in case of complex information – slow down, pause, repeat the key details
- do not say too much too fast
- allow silence to happen
- change grabs attention
- never apologize for imperfections
- be attentive to audience
- be original
- good conclusion is also important
- rehearse your presentation a couple of times but do not memorize it, short breaks are useful
- your voice and your body is better than any pictures in your presentation
Jak rychle (de)serializovat JSON v .NETu
by admin on Leden 7, 2012
Framework .NET nabízí několik způsobů, jak se vypořádat s formátem JSON. Robustnost těchto řešení je vynikající, ale horší je to už s rychlostí. Dle ServiceStack jsou implementace Microsoftu v některých případech až 9x pomalejší, proto se nyní podíváme na nejrychlejší JSON (de)serializér ServiceStack JsonSerializer.
Co budeme potřebovat
Například pomocí balíčkového instalátoru NuGet nebo ručně si stáhněte knihovnu ServiceStack.Text a přidejte si referenci do projektu. Z ServiceStack.Text nás bude zajímat samotný (de)serializér JSONu (JsonSerializer).
Serializace JSON se ServiceStack JsonSerializer
V našem příkladu budeme serializovat jednoduchou třídu Person se 3 property (FirstName, SecondName, Age a FullName). Takovou třídu si tedy vytvoříme.
{
public string FirstName { get; set; }
public string SecondName { get; set; }
public int Age { get; set; }
public string FullName
{
get { return FirstName + " " + SecondName; }
}
}
Nyní této třídě přidáme atributy pro označení členů které, chceme serializovat. Všimněte si, že property FullName nemá atribut DataMember, to znamená, že ve výsledném JSONu se neobjeví.
[DataContract]
public class Person
{
[DataMember(Name = "firstName")]
public string FirstName { get; set; }
[DataMember(Name = "secondName")]
public string SecondName { get; set; }
[DataMember(Name = "age")]
public int Age { get; set; }
public string FullName
{
get { return FirstName + " " + SecondName; }
}
}
A konečně výstup v JSONu.
using System.Collections.Generic;
using ServiceStack.Text;
namespace TestApplication1
{
class Program
{
static void Main(string[] args)
{
Person Person = new Person();
string JsonPerson;
Person.FirstName = "Jiri";
Person.SecondName = "Raska";
Person.Age = 22;
// Serializace objektu Person
JsonPerson =
JsonSerializer.SerializeToString<Person>(Person);
Console.WriteLine(JsonPerson);
}
}
}
Deserializace JSON se ServiceStack JsonSerializer
Deserializace se nese v podobném duchu a proto pro oživení si zvolíme více strukturovaný vstupní řetězec v JSON. Nyní nebudeme mít jen jednu osobu, ale kolekci osob (Person) plus jednu celočíselnou property avgAge.
"data":
[
{
"firstName":"Lewis",
"secondName":"Sunderland",
"age":33
},
{
"firstName":"Monica",
"secondName":"Voren",
"age":29
}
],
"avgAge":31
}
Popravdě o až tak zásadní změny nejde a k třídě Person si vytvoříme ještě třídu Persons, která ponese právě kolekci osob a průměrný věk osob v kolekci.
[DataContract]
public class Persons
{
[DataMember(Name = "data", IsRequired=true)]
public List<Person> Data { get; set; }
[DataMember(Name = "avgAge")]
public int AvgAge { get; set; }
}
A kód deserializace.
string JsonPersons;
JsonPersons = "{\"data\":[{\"firstName\":\"Lewis\",\"secondName\":\"Sunderland\",\"age\":33},{\"firstName\":\"Monica\",\"secondName\":\"Voren\",\"age\":29}],\"avgAge\":31}";
// Deserializace retezce JsonPerson na objekt Persons
Persons =
JsonSerializer.DeserializeFromString<Persons>(JsonPersons);
Cvičení na závěr
Na procvičení návrhu tříd pro JSON a hrátky s JsonSerializer si vytvořte knihovnu, která bude pomocí webové služby (freegeoip.net) získávat lokalizaci dle IP adresy.
Jak na to?
Nejprve zjistíme formát URI (http://freegeoip.net/json/<IP>), na kterou se budeme dotazovat. Zobrazíme si strukturu JSONu, který vrací tato služba, např. pro http://freegeoip.net/json/216.239.51.99.
"city": "Mountain View",
"region_code": "CA",
"region_name": "California",
"metrocode": "807",
"zipcode": "",
"longitude": "-122.073",
"country_name": "United States",
"country_code": "US",
"ip": "216.239.51.99",
"latitude": "37.3974"
}
Třída v C# pro tento JSON bude triviální. Pro získání JSON skr HTTP použijeme v namespace System.Net WebRequest resp. HttpWebRequest následovně.
string RequestUri = "http://freegeoip.net/json/216.239.51.99";
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(RequestUri);
Request.Timeout = 20000;
Request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0";
GeoLocationData GeoLocationData =
JsonSerializer.DeserializeFromStream<GeoLocationData>(
Request.GetResponse().GetResponseStream());
Amazon zálohuje na Facebooku aneb život s Pandou od Googlu
by admin on Listopad 11, 2011
Google v první polovině tohoto roku představil významné změny ve svém algoritmu pro vyhledávání, který používá drtivá většina uživatelů na internetu. Tento update je nazýván Panda a Google ho stále vylepšuje.
Jak funguje Google Panda?
Vyhledejme si v google nějaký produkt. To co nám v odpovědi vrátí jsou především autorativní stránky. Tedy prvních 10 pozic SERPu na slovní spojení „nixon player“ je tvořeno oficiální stránkami výrobce nebo prodejci typu amazon, backcountry či dogfunk. Rozhodující váhou již není obsah, ale právě autorita a důveryhodnost doménového jména.
Facebook.com notes + Amazon
A konečně se dostáváme k odpovědi na kterou čekáte po přečtení titulku tohoto článku. Nejdříve si otevřete amazon a vyberte si jakýkoliv produkt. Máte? Nyní si jeho název dejte do googlu ať vám něco najde. Co čekáte, že by vám tato webová „službička“ najde? Asi stránku amazonu s tímto produktem a potom další prodejce, co nabízí tento produkt.
Já jsem si zvolil produkt s názvem „Marc New York by Andrew Marc Men’s Melrose Jacket“. Na 1. místě v SERPu byl odkaz na Amazon, ale hned pod ním tedy 2. a 3. místo v SERPu 2 odkazy na Facebook a 1 odkaz na Youtube na 4. místě. Jak zajímavé, že by Facebook měl vlastní obchod?
Zvědavci již určitě klikli, co tam to ten facebook má? Že by opravdu začal prodávat zboží? Ne tak docela. Jen prozíraví Affiliates si všimli, že tento koncept skvěle funguje a začali přenášet katalog produktů Amazonu na Facebook se svými affiliate odkazy. Díky službě facebook notes tak snadno vytvoří stránku s přátelskou URL plnou klíčových slov na autorativní doméně.
Co jsou Facebook notes?
Facebook Notes, díky nimž můžete napsat jakýkoliv textový obsah doplěný o obrázky či odkazy, který bude mít vlastní URL na facebooku např. http://www.facebook.com/notes/muj-novy-svetr/111896828921908. Spolu s posledními změnami na googlu se z tohoto konceptu tedy Facebook Notes + Amazon Associates stal velmi výnosný byznis.
Co s tím hodlá dělat google a facebook?
Tento koncept je praktikován již někdy o června tohoto roku a jak google tak ani facebook s tím jak je vidět nic nedělají. Facebook tedy občas nějaký ten Note smaže, ale nebojuje proti tomu jako youtube, kde již zmiňovaný odkaz na 4. pozici je DEAD, respektive dané video bylo smazáno.
Soutěž na závěr
Kdo dřív najde produkt, který je na amazonu a neni zkopírován na Facebooku. Podělte se v komentářích.
Dark theme pro Zend Studio 8.0
by admin on Červen 21, 2011
Nejdříve si stáhneme fonty Envy Code R. V prostředí OS Windows 7 fonty naistalujeme tak, že nejdříve je dvojklikem otevřeme a následně klikneme na instalovat.
Nastavení font a barev v Zend Studiu 8.0
Veškeré nastavení budeme provádět v nabídce Windows – Preferences.
Změna fontu
General > Appearance > Colors and Fonts
Font : Envy Code R Bold (11 pt)
Změna některých obecných barev textového editoru
General > Editors > Text Editors
Line number foreground : #787878 (120-120-120)
Current line highlight : #35353D (53-53-61)
Background color : #25252D (37-37-45)
Změna barev zvýrazňovače syntaxe PHP
PHP > Editor > Syntax Coloring
Decprecated : #000 (0-0-0)
Fields : #FFFFFF (255-255-255)
Heredoc : #008282 (0-130-130)
Keyword : #DE5727 (222-87-39)
Multi-line comment : #557F5F (85-127-95)
Normal : #FFF (255-255-255)
Number : #FFCECE (255-206-206)
PHP tags : #DE5727 (222-87-39)
PHP Doc : #FEC601 (254-195-1)
PHPDoc Comment : #FEC601 (254-195-1)
single line comment : #FEC601 (254-195-1)
static fields : #FFFFFF (255-255-255)
static methods : #FFFFFF (255-255-255)
String : #B3C0C8 (179-192-200)
Task Tags : #FEC601 (254-198-1)
Variable : #0B91B7 (11-145-183)
3D model do 2D pohledů v AutoCADu 2010
by admin on Březen 29, 2011
Před pár dny jsem hledal nějaký návod jak dostat z 3D modelu v AutoCADu nějakým způsobem něco ve 2D. Protože jsem nenašel nic, co by uspokojilo mé potřeby, nyní zde sepíšu mé řešení. Na začátek podotknu, že rýsování, kreslení či modelování v AutoCADu není mým středem zájmu a ve skutečnosti se jedná o můj první pokus v tomto mocném prostředí.
Jako 3D model zde máme vcelku jednoduchou židli. V záložce view(pohled) si vybereme pohled(top, left, front, bottom, …), v mém případě jsem si vybral front. V záložce home(výchozí) si přepneme visual style na 2D Wireframe. Teď máme model připraven.
3D do 2D s příkazem plošsnímek resp. flatshot
Příkazem flatshot, který napíšeme do příkazové řádky a potvrdíme stiskem klávesy Enter dostaneme nabídku Flatshot. Ve které ponecháme zaškrtlé možnosti Insert as new block, dále můžeme zvolit vizuální styl čar viditelnych a těch, co vidět nebudou. Nabídku potvrdíme stisknutím tlačitka create(vytvořit) a následně zadáme body 0,0,1.
Ve spodní části(vlevo dole) se přepneme ze sešitu Model na Layout1, kde uvidíme vytvořený pohled ve 2D.
Ahoj všichni!
by admin on Prosinec 27, 2010
Vítejte ve WordPressu. Toto je váš první testovací příspěvek. Můžete ho upravit, nebo smazat a postupně pak začít s tvorbou vlastního webu.





