Monthly Archives: Październik 2015

Wprowadzanie daty za pomocą datepicker jQuery

Parę miesięcy temu rozpocząłem przygodę z ASP.NET MVC, a zwykle jednymi z pierwszych tematów jakimi należy się zająć pisząc jakąkolwiek stronę są formularze. ASP.NET WebForms posiadał zestaw kontrolek do wprowadzania i walidacji wielu rodzajów danych, a MVC już nic takiego nie posiada. Oczywiście jest to zupełnie inne podejście do programowania i uważam, że w gruncie rzeczy lepsze. Tak więc posiadają całkowitą władzę nad tym jak będzie wyglądał wynikowy HTML, musiałem nauczyć się tworzyć dobrze pola formularzy. Pisząc „dobrze” mam na myśli, walidacje i wyświetlanie pomocniczych elementów, takich jak, np. datepicker.

Postanowiłem, że użyje tej kontrolki z jQuery, ponieważ ta biblioteka jest już od wielu lat używana przez wielu programistów i posiada wspaniałe wsparcie dokumentacji, oraz użytkowników na wszelakich forach. Ogólnie podziwiam bardzo dobrze zrobioną dokumentacje jQuery i Androida, ponieważ to przemawia bezpośrednio na popularność ich rozwiązań. Ja z pewnością będę z nich korzystał 🙂

datepicker jquery

to jest obrazek 🙂

No to zaczynamy

Należy umieścić na serwerze paczkę pobraną z tego adresu:

http://jqueryui.com/download/

Następnie w sekcji head na stronie należy umieścić takie odwołania:

[html]<link rel="stylesheet" href="jquery-ui.min.css">
<script src="external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>[/html]

Po wykonaniu powyższego, możemy dodawać pole w formularzu:

[html]<input type="text" name="date" id="datepick">[/html]

lub ASP.NETowe rozwiązanie:

[html]@Html.TextBox("", "", new { @id = "datepick", type = "date" })[/html]

Aby pole tekstowe po zaznaczeniu wyświetlało kalendarz, musimy dodać kawałek kodu JS, które wywoła funkcję z jQuery dla pola o nazwie date:

[html]<script>
$( "#datepick" ).datepicker();
</script>[/html]

Efekt powinien być taki jak na obrazku powyżej. Jeżeli chcemy uzyskać inne formatowanie, użyć innego stylu lub cokolwiek innego to warto zajrzeć na stronę dokumentacji tej biblioteki:

http://api.jqueryui.com/datepicker/

Co to Hackathon programistyczny i czy warto w nim uczestniczyć?

Na Polskiej Wikipedii nie ma jeszcze artykułu tłumaczącego pojęcie Hackathon, prawdopodobnie z powodu braku Polskiej literatury naukowej na ten temat, dlatego postanowiłem to pojęcie wam przybliżyć.

Hackathon jest to połączenie słów „hack” i „marathon”, które po połączeniu tworzą wyrażenie „maraton hackowania” i tym właśnie hackathony są. Tego typu wydarzenia polegają na wielogodzinnym budowaniu oprogramowania o określonej wcześniej tematyce lub rozwiązującego określony problem. Słowo „hacker” jest w Polsce uważane za słowo o negatywnej konotacji, ponieważ w mediach używane jest do określania przestępców komputerowych, dlatego nazwa „hackathon” może być odbierana negatywnie.

Jak się odbywają tego typu imprezy?

Hackathony zwykle mają swój temat przewodni, np. Smart City, a pomysły osób startujących w tym konkursie muszą z tym tematem być w jakiś sposób powiązane. Po rozpoczęciu zaczyna się etap prezentacji pomysłów (Pitching). Każdy kto ma jakiś pomysł może wyjść na środek i powiedzieć co chciałby zrobić. Najważniejsze jest to, że wcale nie musi wiedzieć jak to zrobić, ważne żeby zainspirować ludzi dobrym pomysłem, a osoby które znają się na rzeczy z pewnością się znajdą.

Po etapie „pitchowania” przychodzi moment na tworzenie zespołu. To jest dla mnie jeden z trudniejszych momentów. Jest tak ponieważ ciężko jest odmówić osobie, której spodobał się pomysł i chce dołączyć. Niestety jest to etap ciężkich decyzji, zbierania informacji na temat dobrych i złych stron pomysłu, a czasami nawet diametralnej zmiany planów. Ale trzeba być otwartym i słuchać ludzi. Nie wszystkie pomysły i propozycje będą dobre, ale wszystkie należy zebrać i przemyśleć już z nowo utworzonym zespołem.

Etap realizacji jest najciekawszym etapem. Przede wszystkim ciekawym doświadczeniem jest praca z ludźmi, których zupełnie nie znasz, a przez następne 20h będziesz z nimi rozwiązywał problemy i spierał się o swoją rację. Na większości hackathonów oprócz uczestników i organizatorów są jeszcze mentorzy, czyli specjaliści z branży i biznesu, którzy pomagają, szkolą i wspierają uczestników. Osobiście zalecam słuchać co mają do powiedzenia, ponieważ w większości są to osoby, które mają ogromną wiedzę i praktykę, więc ich przemyślenia będą poparte doświadczeniem w biznesie i programowaniu. Nawet jeżeli przychodzi do Ciebie programista Javy, a ty piszesz coś w C#, zaproś go, opowiedz co chcesz zrobić. On chociaż nie będzie mógł pomóc ci technologią programowania, z pewnością zwróci ci uwagę na elementy, które mogą sprawić problem, ale przede wszystkim pomoże ci zweryfikować założenia projektu. On jest specjalistą i pomoże ci.

Gdzie tu są pieniądze? No właśnie, czy na pewno przemyślałeś pomysł pod względem biznesowym. To jest ważny składnik sukcesu projektu i jest on często równie ważny jak efektu końcowy, czyli aplikacja. Oprócz ludzi z branży IT na hackathonach pojawiają się często ludzie biznesu, których warto zaprosić do stolika i opowiedzieć o swoim pomyśle. Tutaj pojawia się ważna rada. Biznesmeni nie zawsze mają rację, tak jak programiści, i każdy inny człowiek. Zawsze bierz pod uwagę ich słowa, ale dobrze przemyśl. Zdarzyło mi się, że uczestniczyłem w hackathonie, podczas którego wszystkim podobał się pomysł, ale na prawdę poważny biznesmen, który rozkręcił całą masę projektów i zarabia krocie, skreślił ten pomysł. Pomysł finalnie wygrał, ale niestety w realizacji ubiegł nas duży inwestor, który zatrudnił dziesiątki fachowców, zrealizował pomysł i zarabia krocie. Tak bywa. Dlatego jeżeli na prawdę wierzysz w ten pomysł to trzymaj się go i realizuj. Wiele świetnych produktów powstało pomimo, że ktoś początkowo nie wierzył w ich sukces.

Etap prezentacji projektów jest najfajniejszym momentem, choć nieco stresującym, ponieważ trzeba pokazać zrealizowany projekt i tłumacząc jaki jest fajny, zmieścić się w np. 2 minutach. Ale gdy usłyszysz brawa po zakończeniu prezentacji, to zrozumiesz że było warto.

Po etapie prezentacji następuje etap rozdania nagród. Często oprócz samych nagród rzeczowych czy pieniężnych, można uzyskać zaproszenie na płatny staż w firmie programistycznej, czy nawet ofertę pracy. Nie zawsze się wygrywa, ale każdy tego typu konkurs otwiera głowę na nowe pomysły i daje świeże spojrzenie na swoje pomysły. Po uczestnictwie w kilku takich wydarzeniach zrozumiałem, że powiedzenie „Sky is the limit” jest prawdziwe i tego też wam życzę.

* Placeholder w TextBox ASP.NET MVC

Zastanawiałem się w jaki sposób korzystając z helperów ASP.NET MVC w widoku generować TextBox z widocznym tekstem w formie znaku wodnego w środku. Odpowiedź jest banalnie prosta:

[csharp]
@Html.TextBoxFor(m => m.Name, new { placeholder="Your Name…" })
jest odpowiednikiem tego:
<input name="name" type="text" placeholder="Your name…">
[/csharp]

W taki sam sposób można przekazywać do TextBox’a inne parametry. Powyższy opis nie tyczy się tylko TextBox’ów, ale również Label, itp.

W ten sam sposób można dodać klasę CSS’ową do elementów HTML generowanych przez ASP.NET MVC.

[csharp]
@Html.LabelFor(model => model.PhysicalPostcode, new { @class= "SmallInput" })
[/csharp]

Źródło: http://stackoverflow.com/questions/18022351/how-to-display-watermark-instead-of-value-in-textbox-in-asp-net-mvc

* Ścieżka do katalogu aplikacji w WPF

Niby podstawowa wiedza dla programisty WPF, ale zwykle gdy muszę poprawnie pobrać ścieżkę do aplikacji w WPF, to szukam w internecie. Poniższe dwie metody są sprawdzone i działają tak jak działać powinny.

[csharp]
System.AppDomain.CurrentDomain.BaseDirectory
[/csharp]

[csharp]
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
[/csharp]

Źródło: http://stackoverflow.com/questions/938421/getting-the-applications-directory-from-a-wpf-application