SerializationOto krótki wpis o Serializacji i Deserializacji JSON-a w Objective-C. Komunikaty w usługach sieciowych  zwykle mają notację XML-ową lub JSON-ową.  JSON jest lżejszy jest on więc bardziej stosowany. Usługa sieciowa typu SOAP jest ciężka więc urządzenia mobilne lubią usługi sieciowe typu REST.

Get FilesCałkiem niedawno napisałem prostą aplikację operującą  na bazie danych SQLite. Po zrobieniu kilku insertów na bazie z możliwością zapisu zrodziło mi się głowie pytanie jak wydobyć z telefonu czy tabletu moją zmodyfikowaną bazę, którą umieściłem w telefonie.

ŚmieszneUfff. Dawno nie miałem takiego miesiąca. Studia, praca i problemy na stancji. Życie na pewno nie oszczędziło mnie w tym miesiącu. A ja myślałem, że już nic nie przybije zatrucia pokarmowego i uczenie się w takim stanie do trzech egzaminu w sesji za dwa dni. Nie ma jednak czasu na narzekanie. Jak więc poprawić sobie humor? Na pewno mały remont na blogu poprawił mi humor Uśmiech(praca zawodowa dobrze się równoważy z pracą hobbistyczną/ społeczną) , ale czy są jeszcze inne sposoby.

Zauważyłem, że wiele pozytywnych  komentarzy  nie dochodziło do moje skrzynki pocztowej i te komentarze też dały mi siły. Dzięki.

Sposobów jest wiele, ale dzięki sieci społecznościowej Google+ przypomniałem sobie szybko zabawne filmiki na temat programowania.

ReflectionCzęść NR.6Prawdopodobnie ostatni wpis z tego cyklu. Uczę się Objective-C od dwóch tygodni po godzinach ale tempo nauki musi zostać jeszcze bardziej zwiększone.

Chociaż być może jeszcze napiszę o rzutowaniu. Podstawy refleksji przydają się na codziennie w programowaniu. Jak więc refleksja wygląda w Objective-C.

Add whiteW tym wpisie dodam białe znaki do dużych liczb tak aby były one bardziej czytelne.

Czyli chcemy sformatować liczbę 1000000000 do takiej postaci “1 000 000 000”. Dodatkowo chce dać użytkownikowi możliwość ustalenia co ile znaków ma się pojawiać znak spacji.

KeyBoradOd jakiegoś czasu zacząłem używać MACa i zobaczyłem, że układ klawiszy w nim jest trochę sprzeczny z układem z Windows.

Na początku myślałem, że mi się tylko tak wydaje ale potem na swoim laptopie zacząłem mylić klawisze CTRL z ALT.

StringCzęść NR.2Naukę Objective-C można zacząć od rzeczy najprostszy dlaczego więc nie zacząć od napisów

Podobnie jak w poprzednim wpisie użyje przykładu z C# i Objective-C dla porównania. Uznałem także ,że nie będę tracił czasu na zbędne opisy kodu.

StartCzęść NR.1 Zawodowo programuje w C# od 2 lat. Licząc czas spędzonych na studiach z C# ten czas wydłuża się przynajmniej dwukrotnie.  Aby pisać aplikacje na iOS bez pomocy firmy Xamarin trzeba oczywiście znać Objective-C.

Czasu do nauki tego języka mam niewiele i jest to spore wyzwanie dla mnie biorąc pod uwagę, że jest praca na drugi etat.

ACROd tego miesiąca stałem się programistą  Objective-C. Chociaż ten termin nie powinien sobie jeszcze przypisywać biorąc pod uwagę ,że obecnie uczę się składni języka oglądając programy Hello World. W najbliższym czasie na blogu będzie dużo wpisów o Objective-C. Tak czy siak miałem oczywiście interesują konwersację z swoim współlokatorem oraz najlepszy przyjacielem na temat moich zdolności programistycznych.

Paint.NETNarzędzie NR.1Każdy edytuje obrazki do pewnego stopnia. Bez względu na to czy jest to proste wycięcie, zmniejszenie czy dodanie tekstu – warto mieć pod ręką prosty edytor który jest szybki i łatwy w nawigacji oraz wykona  zdanie bezboleśnie.

Istnieje wiele edytorów. Najbardziej znanym programem jest Adobe Photoshop. 

C#

F# DLL -> C# Krótki tutorial o tym jak wykorzystać kod napisany w F# w C#

Krok pierwszy. Utwórz projekt “F# Library Project”. Nazwij go przykładowo “FsharpTestDLL”.

IE StylesJeżeli zajmujesz się Web Developmentem to zapewne nie raz chciałeś wynaleźć wehikuł czasu i zabić wszystkich programistów odpowiadających za wygraną IE 5.0  w wojnie przeglądarek przeciwko Netscape.  Zwycięstwo tej wojny jest odczuwane ,aż do dzisiaj. Wiele użytkowników ślepo korzysta z IE. Świat na szczęście się zmienia…ale dzięki popularności systemu Windows XP użytkownicy IE8 i IE7 wciąż istnieją.

Tak to jest gdy scalisz swoją przeglądarkę z systemem operacyjnym. Poza tym nie oszukujmy się nawet JQuery oficjalnie powiedziało nie dla IE8.

Tak koniec pisania specjalnych skryptów dla IE bo są jakieś bugi z właściwością z-index i itp.

SignalRPróbowałeś kiedyś napisać chat. Co ile sekund ma on wyciągać dane od serwera? Nie to z góry kiepski pomysł.

Lepszą techniką jest “long polling”. Otwieramy połączenie i utrzymujemy je otwarte zmuszając klienta (przeglądarkę) do czekania udając ,że dane połączenie rzeczywiście trwa długo.

Jeżeli połączenie jest zerwane wtedy połączenie jest otwierane ponownie po obu stronach(klient serwer). W przyszłość WebSockety  rozwiążą ten problem lepiej.

CSS3 GenIstnieje tona wspaniałych generatorów, które za ciebie napiszą style CSS3 wraz ze specyficznym prefiksami do przeglądarek.

Gradienty, Animacje, obramowania, cienia.

Oto krótka lista takich generatorów.

WykładowcaOto co widzą me oczy. Nieskrępowane przez czasu okowy. Trójkę nieprzyjazny wykładowców dane ci będzie spotkać…Żaden jednak z nich nie będzie jednakże najbezpieczniejszy niż ty w pełni swojej chwały. To cienie matematyki, automatyki i starego programowania obdarzone życiem i zniekształcone zgodnie z prawami jakim się uczelnie rządzą…

Link do orginalnego dialogu

…Dojdziesz do więzienia z żalu i płaczu powstałego, gdzie nawet studenckie cienie odchodzą od zmysłów. Zażądają tam od ciebie potwornej ofiary, Najdroższy. By móc w końcu spocząć, zmuszony będziesz unicestwić to, co utrzymuje cię wśród studentów i przestać być wiecznym studentem.

Wiem ,że musisz ukończyć studia póki masz taką możliwość. Krąg *musi* się zamknąć najdroższy. Nie przeznaczonego takiego życia i praca już zbyt długo czeka na ciebie. Musisz odnaleźć to co zostało ci odebrane i udać się w podróż poza granicę tej egzystencji do krainy ludzi pracujących.

Będę na ciebie czekała w komnatach pracy…najdroższy.

Po tygodniu siedzenia w kontrolkach Telerik postanowiłem zrobić wpis bardziej na luzie. Może napiszę coś o studiach, jutro przecież mam zjazd. Mój głupi wpis o tytułach mgr licencjatach cieszy się taką popularnością. Może to niezły pomysł. W rezultacie poczułem nieodpartą chęć zrobienia wpisu o wykładowcach i studentach. Zatem nie traćmy czasu.

Focus BorderChyba dawno nie odrobiłem pracy domowej z technologii webowych ponieważ nie mogłem ustalić co powoduje  to obramowanie. Teraz już wiem.

Zacząłem swoją przygodę z kontrolkami Telerik i jedną z najbardziej irytujących rzeczy było właśnie to obramowanie. Sprawa wydawała się trudna ponieważ to obramowanie nie wywodziło się od żadnych styli CSS.

HightChartNowe bajery HTML 5 pozwalają na rysowanie złożonych zawartości bez użycia pluginów takich jak Flash czy Silverlight. Z punktu widzenia biznesowego prawdopodobnie chcielibyśmy w Canvas narysować jakiś wykres niż postać z anime.

Canvas i HTML 5 istnieją już od dłuższego czasu ,a to oznacza ,że już ktoś opracował gotowe biblioteki do rysowania takich wykresów.

C++ c# C

Specjalny znak “#” nie może być zakodowany w adresie url. Jak więc zmaksymalizować SEO pod tym kontekstem.

Co zrobić gdy człowiek zdaje sobie sprawę ,że słowa kluczowe jak“C#” “C++” "i “C” dla Google mogą reprezentować ten sam kontekst.

AttachDzisiaj w pracy pokazałem koledze jak w Visual Studio potrafi się dołączyć do procesu aplikacji w celu debugowania aplikacji. Trochę się uśmiałem ponieważ pewien kolega nauczył mnie tego w poprzedniej pracy.

Czasami nie możemy debugować aplikacji. Przykładowo moduły w DotNetNuke nie mogą być inaczej debugowane gdyż reprezentują tylko część systemu ,a nie całość.

LockSłowo kluczowe “lock” oznacza część krytyczną kodu, która zablokuje przepływ kodu dla innych wątku ,aż do jego zwolnienia.

Wewnątrz części krytycznej zabezpieczam kod, który mógłby zachowywać się nie przewidywalnie gdyby wiele wątków na raz próbowało wykonać jedną i tą samą operację.

Polski

Przyszedł czas aby poruszyć niewygodny temat. 8 miesięcy temu przeniosłem bloga z bloggera na BlogEngine.NET. Blog wygląda teraz bardziej profesjonalnie. Wcześniej sam nie mogłem traktować poważnie tego starego wystroju.

To nie było coś, co mógłbym pokazywać z dumą i chwałą.

Java+JSJak sprawdzić czy ktoś ma ogólne pojęcie o programowaniu?

Najlepiej zadać mu pytanie jaka jest różnica pomiędzy JavaScript-em ,a Javą. Sam kiedyś dawno temu myślałem ,że oba języki programowania mają ze sobą dużo wspólnego ,że JavaScript jest Javą dla przeglądarek (cokolwiek to znaczy).

Awaiting XNauka “async i await” się nie kończy. Co można jeszcze zrobić przy pomocy tych słów kluczowych.  W WPF w prosty sposób możemy zwolnić wątek UI. W WCF możemy łatwo przejąć kontrolę nad wiadomościami zwrotnymi usługi. To jednak nie koniec.

JQuery

Po miesięcznej pracy nad Androidem w Eclipsie wróciłem do Visual Studio i ASP.NET. Po kilku godzinach pracy stwierdziłem ,że chyba zapomniałem jak się programuje. Do rozwiązania miałem prosty problem ,a ja uznałem ,że do jego rozwiązania jest potrzebny “UpdatePanel”. O to moja historia.

Accent ColorsW końcu udało się mi zaktualizować swój telefon “LG”  do wersji 8.  Osobiście miałem już dosyć swojego telefonu ponieważ nie ukrywajmy jest on przestarzały i z natury sam system jest zamknięty.Ten wpis zawiera tylko krótką notkę na temat styli kolorów w Windows Phone.Biorąc pod uwagę ,że sam używam tych kolorowych kwadracików na blogu ta zmiana jest także dla mnie istotna.

Config ClassW poprzedniej pracy zgodnie z zalecanym wzorcem tworzyliśmy klasę konfiguracyjną której właściwości odpowiadały wartościom słownikowym  w pliku konfiguracyjnym.  Taka klasa rozwiązuje problem z magicznymi stringami i plikami konfiguracyjnymi. Wtedy  ja taką klasę  pisałem ręcznie co jest czystą głupotą ponieważ można napisać template T4 który zrobi to za nas.

PlaceHolder Całkiem nie dawno w pracy tworzyłem moduł dla strony, który był tylko prototypem prawdziwego rozwiązania. Moduł ten był dosyć złożonym sliderem.  Nie ma slidera bez grafiki więc musiałem go uzupełnić jakimiś bzdurnymi grafikami.Kilka tygodni później zdałem sobie sprawę ,że straciłem kilka minut życia nad tym małym problemem ponieważ istnieje wiele serwisów, które oferują zastępczą grafikę.

T4 Ten artykuł demonstruje jak łatwo stworzyć prosty schemat T4, który wygeneruje kod w C# bez bawienia się w bardziej zawansowane narzędzia jak DLS.

Jeśli nie wiesz co to jest T4 i jak tego użyć spokojnie ten wpis pokaże wszystko co musisz wiedzieć aby zacząć swoją przygodę.

Zen Coding Po wpisie o “Less CSS” otrzymałem sugestie ,że powinien zainteresować się “Zen Coding”. Dlaczego nie? Pisanie div-ów trwa odrobine za długo ,a Zen Coding to ciekawy sposób który przyspieszy ten  proces wielokrotnie.

Zen Coding może być użyte  z Visual Studio dzięki dodatkowi Web Essenitals.

Source? Oto jeden ze sposobów na pozbycie się komunikatu “Source not found” w trakcie debugowania kodu w Androidzie. Jeżeli kodu nie ma to po co w ogóle chce mi go wyświetlić. Visual Studio w trakcie debugowanie nie spaceruje po klasach systemowych. Nic dziwnego ,że tak lubię MonoDroida. Problem można rozwiązać dodając kod źródłowy Androdia do projektu ,ale ja nie chce go oglądać wcale.

Less CSSKilka dni temu wyszła aktualizacja do ASP.NET i narzędzi WEB w Visual Studio 2012.

Zainteresowała mnie lista obsługiwanych składni językowych (CoffeScript, CSS Less), o których słyszałem ale nie miałem jeszcze okazji ich sprawdzić. W pracy działam w końcu na Visual Studio 2010.

BroadCastPrace na projektem w Androidzie ruszają pełną parą, a ja jak widać zapomniałem już o podstawach. Nic nie  stoi jednak na przeszkodzie aby te podstawy sobie przypomnieć. Dzisiaj opowiem krótko o “BroadcastReceiver”  . W Androidzie Broadcast Receivers służącym do odbioru  wiadomości wysłanych  z innych aplikacji, bądź z samego systemu. Komunikaty te są czasami nazywane zdarzeniami.

WCF AwaitPisząc ostatnio wpis o WCF zauważałem ,że Visual Studio 2012 domyślnie generuje klasy proxy dla usługi w stylu “Task”. Ten styl wymaga użycia słów kluczowych async i await. 

Pomyślałem dlaczego nie zrobić o tym wpisu i przy okazji same siebie przyzwyczaić do nowej składni języka C# 5.0.

StronicowanieW poprzednim wpisie udowodniłem ,że nawet na moim obecnym super sprzęcie i systemie 64 bitowym nie jestem wstanie przesłać 2.000.000 rekordów w WCF za jednym zamachem. W tym wpisie pokaże jak za pomocą “stronicowania” (paginacji) można rzeczywiście przesłać ,aż tyle informacji.

Oto drugi wpis z cyklu “WCF Big Large Data”.

DriverNie korzystam na co dzień   z Androida i nie jestem jego szczególnym fanem. Prawdopodobnie wynika to z modelu programistycznego, który mnie irytuje.Niestety ,ale od czasu do czasu muszę coś na te urządzenie napisać.

Do testowania aplikacji otrzymałem jakieś nieokreślony chiński model telefonu więc mnie nie dziwi ,że Windows domyślnie wie co to jest ,ale nie może nic z tym zrobić dalej.

Try Sending Wczoraj kolega zrzucił mi wyzwanie. Spytał mnie czy kiedyś przez WCF wysłałem 600.000 rekordów. Oczywiście tego nie robiłem ponieważ dlaczego usługa typu REST dla telefonu Android powinna przekazywać 600.000 rekordów.

Wyzwanie jest wyzwaniem. Udowodnię kto z nas jest lepszym programistą raz na zawsze.

ToxicPogląd NR.1

Uwaga celem tego wpisu jest przedstawienie pewnego problemu. Wpis celowo jest napisany toksycznie.  Nie traktuj tego wpisu poważnie i nie staraj się wiązać mnie z nim ponieważ ten wpis jest przeciwieństwem tego co bym chciał naprawdę robić i reprezentować. Jest to także chyba jedyny wpis, który zawiera przekleństwa.

Piąteczek !!!! Jak zawsze w piątek wszyscy odżywają po tygodniu szkoły, która niewiele uczy. Co będziesz robił w wolny weekend? Co ty robisz w wolnych chwilach?. Niektórzy wolny czas wykorzystują na przeglądanie obrazków w Internecie lub imprezowanie z ludźmi, dla których studia nie są żadną wymówką.

WCF CirWczoraj mój najlepszy przyjaciel przedstawił mi problem związany referencją cykliczną i WCF.

Mój kolega wie ,że pisałem wcześniej aplikacje w WCF i spodziewał się ,że znam już odpowiedź na to pytanie. Oczywiście tak nie było ,ale ponieważ mam większe doświadczenie w tej technologii znalezienie odpowiedzi nie trwało długo.

ChromeKiedyś moją ulubioną przeglądarką był FireFox głównie ze względu na dodatki jak “AdBlock” i “ReadItLater”(Pocket).

Chrome jednak powoli podbija moje serce swoimi dodatki. Oto lista 6 ciekawych dodatków do przeglądarki Chrome, które ułatwią tobie czytanie Internetu.

PANIC notDzisiaj zaczyna się wielki powrót do Androida. Od ostatniego projektu przesiadłem się na Windows 8 i zauważyłem ,że mam pewien problem z uruchomieniem emulatora Androida.

Wpis jest krótki ponieważ rozwiązanie jest proste.

StudneckiPrawdopodobnie ostatni egzamin jaki będę pisał zbliża się do mnie wielkimi krokami. Zapewne by się tak nie przejmował gdyby nie fakt ,że powstała pewna głupia sytuacja, która trochę mnie zdołowała. A sam egzamin jest z “algorytmów genetyczny, sieci neuronowych, analiza szeregów czasowych, liczb rozmytych oraz zagadnień transportowych plus  algorytm centroidów.  Nie mówiąc o tym ,że planowałem sobie ferie.

Zapewne powinien opisywać jaki to ja jestem wściekły i tak dalej. Jednak gniew do niczego nie prowadzi i nie ma on sensu z punktu widzenia biznesowego dlatego staram się zarządzać takim emocjami w bardziej cywilizowany sposób.

Postanowiłem zrobić wpis na blogu.

UpdatePanelUpdatePanel to kontrolka, która w prosty sposób odświeża zawartości strony bez jej całkowitego przeładowywania. Jej popularność polega na tym ,że nie wymaga ona od programisty znajomości JavaScriptu, Ajax czy Jquery.

Zawartość jest zmieniana w C# po stronie serwera.

Przyjaciele Przyjaciele. Według Japońskiej animacji jest to najsilniejsza siła we wszechświecie. Według kucyków “My Little Pony” przyjaźń to magia.

Istnieją jednak naukowe dowody na to jak twoi znajomi wpływają na ciebie oraz to jak ty wpływasz na nich. Na ostatnim zjeździe studencki wykładowca pokazał nam ciekawą prezentacje.

SessionJavaScript jest językiem klienckim i wywołuje się on po stronie przeglądarki.Naturalnie w JavaScript  nie możemy uzyskać dostępu do zmiennej sesyjnej  ASP.NET. Istnieją jednak pewne sposoby do uzyskania zmiennej sesyjnej i jej wyświetlenie po stronie JavaScript.

VirtualBoxHyper-V nie lubi strasznie konkurencji. Mając Windows 8 istnieją  spore problemy z zainstalowaniem jakichkolwiek innych maszyny wirtualnych. Patrz Virtual PC.

Jednym z nich jest VirtualBox. VirtualBox i Hyper-V nie mogą koegzystować równocześnie na tej samej maszynie. Tylko jednak usługa “hypervisor” może być uruchomiona na raz. Hyper-V działa cały czas natomiast VirtualBox działa tylko wtedy gdy próbujemy go uruchomić.

OfflineWpis ten jest wyjątkowo krótki. Jeżeli chcemy tymczasowo zablokować naszą witrynę tak aby użytkownik nie mógł uzyskać dostępu do jej zawartości nie musimy wcale dużo kombinować.

Nie potrzebujemy magicznego kodu w C# ,ani nie musimy modyfikować naszej strony w tym kierunku. Wiele osób odziwo o tym nie wie.Kosmita

Video IDW poprzedniej pracy kiedyś dawno temu dostałem takie zadanie. Polegało ono na stworzeniu kodu, który by wyciągał “id-ki” z filmików z Youtube.

Sprawa nie jest prosta ,a czas jaki dostałem na to zadanie był zdecydowanie za krótki.

Global JS

Język JavaScript do zarządzania zasięgiem zmiennych wykorzystuje funkcje. Zmienna zdefiniowana wewnątrz funkcji jest zmienną lokalną. Istnieje ona tylko wewnątrz funkcji.

Zmienna globalna natomiast jest zadeklarowana poza funkcją lub jest używana bez jakiejkolwiek deklaracji.

Środowisko JavaScript udostępnia obiekt globalny pod słowem kluczowym this ,pod warunkiem, że jest ono użyte poza funkcją lub bez żadnych deklaracji.

Każda zmienna globalna staje się właściwością obiektu globalnego.

W przeglądarkach istnieje właściwość “windows”, która zazwyczaj wskazuje na sam obiekt globalny.

LoopJS Strony internetowe są ładowane wiele razy przez wielu użytkowników równocześnie. Nasz kod JavaScript też.

Napisania złego kodu JavaScript nie zawsze skutkuje totalną katastrofą. Jednak jeśli lubisz być perfekcyjny to warto zapamiętać jak pętle w JavaScript działają.

C++ HelloW tym wpisie opiszę jak w kilkanaście sekund napisać prosty program Konsolowy w C++. Jak łatwo można się domyśleć ten program napisze napis “Hello World”.

Nie będzie to nic niesamowitego ,ale przynajmniej będziesz wiedział jak zacząć swoją przygodę z C++.

ModuleStworzenie modułu w DotNetNuke nie jest takie proste ,a ta umiejętność jest esencją DotNetNuke. Istnieje wiele tutorialów opisujących jak  stworzyć moduł na DotNetNuka. Są nawet gotowe przygotowane wzory do tworzenia modułów.

Problem jednak polega na tym ,że te wzory mają w sobie dużo gotowych bajerów. Te bajery wymagają stworzenia odpowiednich procedur w bazie danych i tak dalej.