Kilka dni temu musiałem opublikować aplikację która korzystała z bardzo prymitywnej bazy danych, zdecydowałem się na SQL CE jako, że wszystko mam już in place i nic nie musiałem dodatkowo robić. Z SQL Lite sprawa jest prosta, ściągamy wersję dla .NET i tworzymy strukturę katalogów jak opisane zostało to tutaj. Z SQL CE było podobnie, w VS 2010 za pomocą jednej magicznej opcji wszystko, co potrzebowaliśmy trafiało w odpowiednie miejsce: W VS 2012, niestety opcja ta została usunięta, więc...
No właśnie, może warto o tym porozmawiać? Mnie osobiście zawsze ciekawiło to jak każdy z nas podchodzi do nauki, nie tylko dla tego, że samo w sobie jest to najlepsze, ale warto zobaczyć jak to robią najlepsi, gdyż wtedy możemy sami wyciągnąć wnioski, zrobić podsumowanie i starać się zastosować podobny tryb poznawania technologii jak Ci z najwyżej półki. Pamiętam jak kiedyś rozmawiałem z jedną z osób, która zaczęła mi listować, kroki jakie zaobserwowała w osobach, które doprowadzają...
Ostatnio dla jednego z projektów potrzebowałem zrobić uwierzytelnianie z Flickr i Instagram. Szukałem jakiś gotowców, ale nic nie udało mi się znaleźć. A, że od jakiegoś czasu korzystam z World Domination, to stwierdziłem, że dopiszę to to potrzebuje jako dodatkowe providery. Stąd też ten o to popełniony przeze mnie kod który możecie znaleźć na github. Zwiera on implementację uwierzytelniania dla: Instagram – dokumentacja API Flickr – dokumentacja API Unit testy, są skopiowane i lekko...
Ostatnio wspomniałem o problemach, na jakie możemy natrafić bawiąc się OAuth w wersji 1. W sieci istnieje wiele różnych providerów, skracających nasze męki przy autoryzacji, jednak wcale nie ukracają one mąk jakie musimy przejść gdy chcemy coś więcej niż tylko autoryzację. Na szczęście mały projekt RestSharp przychodzi nam na ratunek. Dzięki niemu za pomocą kilku prostych metod, możemy dodać nagłówek authorization do zapytania z odpowiednimi parametrami jak iż z automatycznym podpisywaniem...
Ostatnio opisałem jak możemy odebrać trackback, teraz pora na jego wysyłanie :) Oczywiście, stoimy przed tymi samymi problemami co w przypadku wysyłania pingback. Do tego, jeżeli mamy zaimplementowany pingback, warto ustalić pewną kolejność wykonywanych poleceń – najpierw trackback a potem pingback czy na odwrót? Powinniśmy także wysłać tylko jedną rzecz, po co zaśmiecać i spamować inne blogi/źródła. Cały proces wysyłania trackback jest bardzo podobny do tego z pingback: Pobieramy...
Ostatnio musiałem napisać autoryzację z jednym z serwisów w który używa OAuth w wersji 1 i muszę powiedzieć, że tyle przecinków ile się posypało przy tym dawno nie wydobyło się z moich ust. OAuth2 jest dość przyjemnym protokołem – da się z niego normalnie korzystać, jednak z OAuth1 tak prosto i fajnie już nie jest. Pierwszy zgrzyt na jaki natrafiłem to tak zwane podpisywanie requestów. Niby wszystko prosto, jeżeli chcemy zrobić request do (plus query parameters), to powinniśmy dodać do niego...
Ostatnio napisałem jak można odebrać i wysłać pingback, teraz pora na coś starszego - Trackback (specyfikacja). Został on wymyślony na początku XXI wieku przez firmę SixApart i zaimplementowany w MovableType. Z tego co się orientuje, to na pewno nie był on wspierany przez Bloggera – teraz nie wiem jak jest. Ogólnie ja rozumiem to tak – Pingback coś nowego, Trackback – coś starego. Jednak wciąż niektóre serwisy wysyłają trackbacks i nie posiadają implementacji pingback. Jeżeli chcemy śledzić kto...
Sposobów walki ze spamowymi komentarzami jest wiele. Sam do tej pory stosowałem minimum dwie metody – każdy komentarz podawany jest analizie w Akismet oraz czas dostępności komentarzy jest ograniczony do X dni (komentarze zamknięte, brak możliwości dostania spamu :)), do tego pewnie jest jeszcze kilka innych sposób jak CAPTCHA i inne. Jednak w ciągu ostatnich kilku dni odkryłem całkowicie nowy i na razie najskuteczniejszy sposób walki ze spamem. Najlepsze to, to, że odkryłem go próbując...
Od dwóch miesięcy nie byłem wstanie pozbyć dość popularnego okno generowania kodu którego nikt nigdy nie zobaczy czy też zbierania danych dla SETI@home: To okno pokazywało mi się zawsze, kiedy otworzyłem plik – mogło się pokazać od razu lub po jakimś czasie (na przykład po kliknięciu enter), tak czy siak, pokazywało się ono zawsze i ta operacja trwałą od 10 do 60 sekund – w ekstremum, powiesiła mi VS. Znalazłem jednak dwa rozwiązania na ten problem, jeden będzie was kosztował $70 ale o nim...
Ostatnio napisałem jak możemy odebrać pingback z innego serwisu/strony. Teraz pora na to byśmy my poinformowali inną stronę, że linkujemy do niej. Samo w sobie wysyłanie nie jest skomplikowane, jednak to kiedy wysłać pingback może stanowić nie lada problem. Na przykład dodajemy post, który ma się wyświetlić 30 kwietnia, kiedy więc powinniśmy wysłać pingback? Przy dodaniu? Nie da rady bo go jeszcze nie ma widocznego, przez co nie ma jak zweryfikować czy pingback pochodzi z naszego źródła...
Prze mój mały głupi błąd, który powstał w celu przyspieszenia ładowania strony komentarze mogły nie działać poprawnie dla FireFox. Za co bardzo przepraszam! Problem powinien być już rozwiązany, ale jeżeli jednak wciąż coś wam nie działa poprawnie to pls dajcie znać, zarówno na @gutek lub poprzez email w sekcji O mnie. Dzięki i sorki za problem! PS.: to są właśnie plusy posiadania własnego silnika do bloga ;)
Jeżeli nie mieliście jeszcze planów na 24-26 kwietnia to może warto zainteresować się konferencją TechDays – a nawet jeżeli nie, to może warto spróbować i wygrać HTC WP8 Phone? :) Chociaż, z punktu widzenia dev, powinien nas interesować tylko dzień pierwszy konferencji – reszta, jest przeznaczona dla IT Pro. 24 kwietnia będzie można posłuchać o: Introduction to Tech Days Online Developing in Visual Studio, what's changed in the last 12 months? Developing for Windows 8 with Visual...
O tym, że NodeJS można wrzucić na Azure, wiadomo od dawna. Pisał o tym Scott, Azure udostępniło tutoriale, no i twitter zaćwierkał. Wszystko działa pięknie, dodajemy sobie sync z GitHub lub Bitbucket czy też z lokalnym git rep (musimy dodać remote do azure) – czyli za każdym razem jak zrobimy push to nasz site zrobi re-deploy. Oczywiście, TFS Services też jest wspierany, ale już GIT repositories na TFS nie. Czyli mając dwa git repozytoria na TFS Services, Azure twierdzi, że nie mam żadnego. No...
W najbliższych dwóch tygodniach będzie się działo :)Windows AzureConf (23 kwietnia)Konferencja poprzedzająca Bootcamp, za darmo i dostępna online. Więcej informacji można znaleźć na oficjalnej stronie konferencji – jednak można ją rączej traktować jako wstęp do tego co nastąpi 27 kwietnia.dotnetConf (25 kwietnia)Każdy może wziąć udział w onlinowej konferencji dotnetConf (rejestracja już otwarta na eventbrite).O czym będzie konferencja? O wszystkim – od programowania na Win 8, przez Web (...
Co to jest pingback? Jest to rodzaj notyfikacji dotyczącej umieszczenia linku do danego źródła w tekście. Notyfikację tę my możemy zarówno wysłać jak i otrzymać. Dziś napiszę jak my możemy odebrać taki pingback i co musi zostać spełnione, zaś następnym razem opisze sposób wysyłania takiej notyfikacji. To co będziemy potrzebować (choć nie jest to konieczne) to biblioteka XML-RPC.NET – ułatwi nam ona znacząco implementację – gdyż komunikacja odbywa się poprzez XML-RPC, oczywiście dla...
Udało się :) blog jest już dostępny, wczoraj przez przypadek usunąłem swój blog stary i zorientowałem się dzisiaj ;) więc trzeba było przyspieszyć pracę.Jak się okazało, wcale nie jest to takie proste – kłopoty z raven, kłopoty z POST itp. itd. jednak chyba już wszystko działa.Kod bloga znajduje się na github – nie jest on piękny, ale spełnia swoje założenia :)Jeżeli znajdziecie jakiegoś buga to pls dajcie znać poprzez komentarz lub issue na github - dzięki. Starałem się jak mogłem by all...
Pierwszym problemem na jaki natrafiłem w trakcie rozpoczynania prac nad blogiem to był problem hostingu – gdzie mogę go postawić i na czym i czy mi się to opłaca. Od niego tak naprawdę uzależniłem wszystko inne. Ogólnie mam kilka domen ale wszystkie są hostowane na hostingach windowsowych – tak naprawdę per web app a nie per serwer. Czyli ja mam dostęp do IIS a nie do serwera. Czyli pewne rzeczy są czasami nie do przeskoczenia. Mimo ogromnej chrapki na Node.JS i napisanie całego bloga w Node...
Powoli zbliżam się do skończenia kodu więc pora zacząć coś na ten temat pisać. Na pewno posty te będą stanowiły mała motywację by jednak się zebrać i dokończyć te parę linijek kodu. A więc dlaczego własny engine? Krótka odpowiedź? Bo tak, dłuższa? Bo tak i już :) A tak szczerze, na rynku dostępnych jest masa rozwiązań, które są już dojrzałe, mają set pluginów i są banalnie proste do postawienia, skonfigurowania i odpalenia. Czemu więc zdecydowałem się przejść na „własny” engine? Sprawa...
Wyszło na to, że nie jestem power user i nie poradziłem sobie z problemem wyszukiwania obrazków w Bing, więc dla tych, którzy też nie są power userami małe info. Jeżeli wchodzicie na bing.com i nie macie możliwości przeszukiwania obrazków oraz opcja na stronie explore Images nie działa i wciąż wam daje wyniki takie jakbyście przeszukiwali sieć, to oznacza, że macie złe ustawienia :) Należy wejść na stronę account wordlwide i kliknąć International lub United States – English (lub wybierzcie co...
Ostatnio w projekcie potrzebowaliśmy wykorzystać kontrolkę umożliwiającą wybór daty jak i godziny danego zdarzenia. Jako, że całe UI oparte jest o Bootsratp – szukaliśmy czegoś co będzie zgodne z framework a przy okazji nie będzie miało tylu problemów co poprzednia kontrolka. Udało nam się znaleźć dwie kontrolki, które spełniały nasze oczekiwania – DateTime Picker i Date/Time Picker (tak, wiem, nazewnictwo powala ;)). Nie licząc różnicy w API (małej) jak i w UI (też małej), obie się dobrze...
Kila dni temu przeczytałem artykuł na jednym z serwisów gazety na temat tego, dlaczego nie potrafimy biegać maratonów (czy jakoś tak). Ogólnie autor podawał kilka informacji, które są jasne i zrozumiałe – brak przygotowania, zły rozkład sił itp. itd. do tego autor oczywiście dawał porady, i jedna z nich uderzyła mnie prosto w twarz typową polskością – jak wiesz, że nie dobiegniesz do mety w określonym przez siebie czasie (ale wiesz, że dobiegniesz), zrezygnuj a potem (jak wystarczająco...
W zeszłym tygodniu zadałem pytanie – ale chyba było zbyt łatwe lub takie które nikogo nie intersuje ;) Więc zamieszczam odpowiedź do niego :) Mianowicie: wyświetli referencje do elementu input z id=id wyświetli referencje do elementu input z name=action wyświetli commentForm wyświetli /comment/new Zaś w IE 8, 3 i 4 będą takie same jak 1 i 2. Więcej informacji na temat nazw problemów z nazwami elementów na formularzach, można znaleźć tutaj. Może więc ktoś zna odpowiedź, to w...
Tak, wiem ostatnio dużo złego pisałem na temat WP8, ale jednak wciąż z niego jeszcze korzystam. Hipokryzja? Nie. Zawsze pisałem o negatywach, nigdy o pozytywach. Pora więc powiedzieć, dlaczego jeszcze korzystam z WP. Kilka tych rzeczy nie jest nowością, ale piszę o tym co mi się podoba! Więc możliwe, że już o tym czytaliście/słyszeliście. Nie wspominam tutaj o małych sprawach na które w trakcie korzystania można się natknąć. Są moim zdaniem one pomniejsze i raczej zostaną naprawione w kolejnych...
Tak mnie dzisiaj naszło, podsumowałem liczbę linii kodu, którą dzisiaj wygenerowały moje palce czasami z pomocą resharpera, ctrl+c, ctrl+v i mojego konwertera klas na knockout JS. Łącznie dziś napisałem: 4956 linii kodu, w tym cshtml: 2141, C#: 1771 i JS: 1044. Czy jest to wydajna praca? Czy to nie jest wydajna praca? Popatrzmy na taski, całość zamknęła 20 tasków i 4 Product Backlog Items i około 5 bugów. Czy to już jest wydajnie? Nie czuje abym coś dzisiaj tak naprawdę napisał. Czy to...
Jak co roku Michał Bojko (SharePoint MVP) nie próżnuje. Po raz kolejny (5 już raz) zorganizował turne po całej Polsce z sesjami dot. SharePoint. Jak zwykle, miasta w których można posłuchać o SPS to Gdańsk (8 kwietnia), Warszawa (10 kwietnia) jak i Wrocław (12 kwietnia). W tym roku bardziej będzie od strony konfiguracyjno-zarządczej, jednak parę tematów trochę devowych powinno się trafić. Jeżeli więc pracujecie z SPS lub jesteście zainteresowani co nowego to zachęcam do rejestracji na...