Przejdź do głównej zawartości

Posty

Wyświetlanie postów z 2011

Nowa wersja Kolejnego Programu do Blogowania! (wykrzyknik jest w jego nazwie ;-))

Korzystając z paru wolnych chwil, jakie w tym starym roku jeszcze zostały, przypomniałem sobie o moim starym programie do blogowania (i mikroblogowania w pewnym sensie) i o brakujących funkcjonalnościach. Odgrzebałem więc źródła i dopisałem parę rzeczy, a mianowicie:
możliwość zapisu i odczytu (lokalnie) notkisprawdzanie pisowni i sugerowanie poprawnej formyulepszenie okienka do wyboru/wstawiania obrazówi kilka drobnych poprawek.
Krótki opis programu znaleźć można w dziale Po godzinach, natomiast źródła tradycyjnie leżą na GitHubie.

Edycja 30.12.2011:
Idąc za ciosem, dodałem kolejnych kilka poprawek i na GitHubie leży już wersja 0.0.4 (screenshot poniżej zaktualizowany).



Jeszcze o prezentacjach - literatura

W jednym z moich poprzednich postów poruszyłem problem nieudolnego lub może raczej nieumiejętnego prowadzenia różnego rodzaju prezentacji czy wystapień. Wczoraj zaś, w bibliotece, wpadła mi w ręce ulotka pewnego wydawnictwa, na której widniała "zajawka" na temat książki Carmine Gallo "Steve Jobs. Sztuka prezentacji. Jak świetnie wypaść przed każdą publicznością". Zdaję sobie sprawę, że postać Steve'a stała się ostatnio tematem wielu publikacji, włącznie z biograficznymi, jednak ta książka - jak się domyślam, ponieważ nie posiadam jej ani tym bardziej nie czytałem - traktuje o jednej z najmocniejszych cech zmarłego niedawno szefa Apple: o umiejętności prezentacji (wystąpień) i o sposobie ich przygotowywania oraz prowadzenia.
Osobiście nie byłem nigdy i nadal nie jestem fanem Apple, Jobsa ani jego wystąpień, wolałem zawsze prezentacje z udziałem Billa Gatesa, ale jedno trzeba Steve'owi oddać: potrafił zrobić niepowtarzalny show, przykuwając uwagę i wzbudzając …

Mała modyfikacja przykładu, ale ciekawy moduł w użyciu

Na swoim blogu poświęconym programowaniu Peteris Krumins redaguje (rozwija?) od pewnego czasu serię artykułów pod tytułem "Node.JS Modules You Should Know About". Jednym z ciekawszych, przedstawianych na tym blogu modułów jest optimist - szalenie wygodny w użyciu wrapper dla systemowego mechanizmu obsługi wiersza polecenia, a dokładniej parametrów wywołania programu. Postanowiłem wypróbować ten moduł, najpierw wprowadzając lekką modyfikację do publikowanego wcześniej prostego klona programu curl ("Node.js i aplikacje CLI - smaczek przed sesją"):


Oczywiście powyższy kod zawiera tylko minimalną próbkę możliwości optimista ale myślę, że moduł ten na stałe zagości na mojej liście koniecznych rozszerzeń dla Node.js.

Polecam artykuł prezentujący przegląd możliwości tego rozszerzenia:
Node.js modules you should know about: optimist

Moja wizja prezentacji, czyli jak nie sknocić wystąpienia.

Sztuka prezentacji. Trudna do opanowania, chyba głównie ze względu na szereg pokus, jakie się czają podczas korzystania z urządzeń technicznych wspomagających wystąpienia. Pomijam tu oczywiście nieznajomość oprogramowania czy obsługi komputera (projektora, pilota do slajdów itp.). Biorąc udział w różnych prezentacjach, prelekcjach, wykładach i innego typu wystąpieniach, niekoniecznie ludzi z branży informatycznej, zauważyłem, że porażająca większość prelegentów nie potrafi występować przed jakimkolwiek audytorium. Co ciekawsze, informatycy są w wystąpieniach przeważnie świetni, robią bardzo dobre prezentacje i wiedzą o wielu rzeczach, o których np. ludzie z branży edukacyjnej, którzy powinni mieć sztukę wystąpień opanowaną do perfekcji, nie mają czasem pojęcia. I nie chodzi tu bynajmniej o rzeczy, których rzekomo informatycy uczą się na studiach (bzdura, jeśli mogę użyć języka pewnego mojego kolegi).
Spróbuję w tym poście w miarę klarownie przedstawić moją wizję prowadzenia wystąpien…

Podstawy Node.js - wysyłanie żądań do serwerów WWW (POST)

Dwie chyba najbardziej podstawowe metody protokołu HTTP to GET i POST. Jak sugerują nazwy, pierwsza metoda służy przede wszystkim do pobierania zasobów z serwera (możliwe jest ewentualnie przekazywanie parametrów), druga - do wysyłania danych (np. z formularza) do serwera/serwisu. Szerzej metody te przedstawione zostały w zalinkowanych niżej artykułach i książce.
Metoda GET została zademonstrowana w przykładzie dołączonym do artykułu "Node.js i aplikacje CLI - smaczek przed sesją", nie wymaga więc ponownej prezentacji (mam nadzieję).
Czas w takim razie na metodę POST. Poniższy program demonstruje wykorzystanie znanego nam już obiektu ClientRequest, tworzonego przez funkcję http.request, do wysłania dwóch linijek tekstu do serwera WWW (przyda się tutaj przykład z 35. spotkania ŚRGM - kliknij, wybierz full-web-app).
Należy zauważyć, że utworzony obiekt ClientRequest jest jednocześnie strumieniem z możliwością zapisu - uzyskujemy to dzięki zadeklarowanej w opcjach połączenia (zmi…

Po 35. spotkaniu ŚRGM i PLSSUG Katowice

Tym razem wystąpiłem w roli prelegenta, zresztą już się chwaliłem. Moja sesja poświęcona była - o czym też już pisałem - środowisku Node.js. Mimo, że tematyka nie dotyczyła bezpośrednio technologii związanych z firmą Microsoft, odniosłem wrażenie, że uczestnicy spotkania nie nudzili się (aż tak ;-)) - przeciwnie, kilku kolegów wzięło aktywny udział w dyskusji w trakcie prezentacji, za co im oczywiście bardzo dziękuję.
Nie uniknąłem też kilku niedomówień czy zaniedbań. Te pierwsze wynikały zapewne z chęci przekazania jak największej liczby informacji (więc o kilku rzeczach zapomniałem), a zaniedbania - no cóż, nie sprawdziłem np. czy są dostępne moduły do komunikacji z bazami danych Microsoft SQL Servera (a są: node-mssql). I zapewne jeszcze coś się znajdzie. Za wszelkie te nieścisłości i braki przepraszam - obiecuję nadrobić zaległości pisząc regularnie, mam nadzieję, na tym blogu o różnych aspektach tworzenia aplikacji w Node.
No i siła wyższa - podobnie, jak u Tobiasza podczas SCC -…

Node.js i aplikacje CLI - smaczek przed sesją

Na rozgrzewkę przed sesją o Node.js (jutro, na 35. spotkaniu Śląskiej Regionalnej Grupy Microsoft) bardzo prosty programik demonstrujący użycie funkcji http.request(). Mimo, że Node.js to przede wszystkim platforma uruchomieniowa lub raczej środowisko uruchomieniowe dla aplikacji sieciowych (w tym głównie webowych), można je również wykorzystać do tworzenia niekoniecznie prostych programów typu CLI. Poniżej przykład - coś na wzór programu curl, choć tutaj akurat szalenie uproszczonego:



Do zobaczenia na spotkaniu!

Przymiarki do cyklu artykułów o Node.js

Jeśli nic dziwnego się nie przydarzy, już w czwartek, 24 listopada będziecie mogli wziąć udział w 35. spotkaniu Śląskiej Regionalnej Grupy Microsoft, podczas którego będę miał przyjemność wystąpić z miniwykładem na temat podstaw Node.js. Oczywiście zapraszam na spotkanie - szczegóły na stronie Grupy.

Po spotkaniu postaram się rozwinąć temat Node.js poprzez cykl (mam nadzieję) artykułów publikowanych w miarę regularnie na tym blogu. Teraz zaś, na zachętę, zamieszczam parę linków do artykułów (po polsku; o wiele więcej informacji znajdziemy w tekstach anglojęzycznych) wprowadzających w szalenie ciekawą tematykę Node, przedstawiających zasady działania i styl pisania aplikacji wykorzystujących to środowisko. Jak sam Ryan Dahl, twórca Node, powiedział, jego program to "tylko" zestaw bibliotek nadbudowanych nad googlowską V8 (bardzo wydajnym silnikiem Javascriptu)... Ładne "tylko" ;-)

Owocnej lektury!

Node.js: na czym polega sterowanie zdarzeniami w serwerze WWW?
Node.js (@…

Własna chmura, czyli pierwszy kontakt z ownCloud

Szperając w newsach i przeglądając zawartość czytnika RSSów natrafiłem na artykuł "ownCloud 2: your personal cloud server", w którym zaprezentowany został dosyć ciekawy projekt o nazwie ownCloud, będący "częścią rodziny KDE". Projekt pozwalający na wdrożenie na własnym serwerze (komputerze w sieci lokalnej itp.) prostego serwisu do przechowywania i udostępniania plików, kontaktów, kalendarzy itp. - czyli utworzenie czegoś na wzór popularnych obecnie i mocno promowanych chmur (o chmurach pisałem już jakiś czas temu, kiedy temat dopiero zaczynał interesować środowiska IT).
ownCloud być może nie jest jedynym tego typu rozwiązaniem dostępnym na otwartej licencji, ale urzeka prostotą i intuicyjnością, choć w kilku obszarach wymaga dopracowania.

Instalacja

Proces instalacji jest bardzo prosty (opisany np. w linkowanym wcześniej artykule) - polega na rozpakowaniu pobranego archiwum, przeniesieniu plików w miejsce, które może być spokojnie serwowane przez apacza, ustaleniu …

Kilka linków dla programistów piszących w C, a chcących przesiąść się na C++

Tak! Temat ciągle aktualny - tak, jak ciągle możemy znaleźć ludzi, którzy rewelacyjnie programują mikrokontrolery ATMega/ATTiny (w odmianie Basica) jak i inne, z serii 8051 (w asemblerze lub czasem w C), nie mając pojęcia o np. programowaniu zorientowanym obiektowo, frameworkach, bibliotekach itp.
Czasem zdarza się, że programiści, którzy zjedli zęby na C, chcą czy muszą nauczyć się szybko języka C++ (nie będę wnikał w szczegóły i powody decyzji, czemu akurat C++; na temat braków tego języka, jak i zalet, dyskutowaliśmy parokrotnie na G+). Być może, gdyby dobrze pogooglać, znajdzie się wiele poradników na ten temat, ja jednak chciałbym tutaj zaproponować coś, co znalazłem w codziennym mailingu:
From C to C++: A quick reference for aging programmers :-)
oraz - idąc dalej tym tropem:
C++ tutorial for C users.
I jeszcze lista linków:
C++ tutorial for C users (sekcja Related)
Polecam!

"We code hard in these cubicles"

Tym razem wideo prezentowane podczas otwarcia tegorocznej konferencji JavaOne. Uwielbiam to połączenie Javy ze sztuką ;-)



(źródło: The "Java Life" Rap Music Video)

Jeśli ktoś chce sobie porapować z geekami, może posłużyć się dostępnym w sieci tekstem...

Wszyscy oczywiście doskonale pamiętamy Lady Javę :-)

Ostrożnie z "lawinową" aktualizacją Ubuntu!

Od niemal półtora roku jestem szczęśliwym użytkownikiem Ubuntu 10.04 LTS (obecnie 10.04.3) jako jedynego, głównego systemu operacyjnego na moim komputerze stacjonarnym. Jest to szalenie wygodny OS - głównie do pracy, ale i do rozrywki. Dystrybucja, na którą się zdecydowałem, ma wielu - że ich tak określę - oponentów, przeciwników nawet, ale - jak zwykł mawiać mój znajomy - linux to przede wszystkim linux. Wcześniej uzywałem linuksów różnej maści, ale nigdy jako głównego systemu - zwykle wirtualizowałem, a dawniej, zanim sprzęt pozwolił na wirtualizację, wydzielałem sobie kawałek dysku i robiłem dual-boota.

Do rzeczy jednak.

Ubuntu zwykle jest całkiem nieźle opracowaną dystrybucją, choć moim numerem jeden zawsze był SuSE (tam jest YAST - miodzisko wśród programów do zarządzania systemem). Wybrałem linuksa Ubuntu bo nie jest hardcorowy (sport pod tytułem "grzebanie w systemie 24/7 i podniecanie się najdrobniejszymi efektami" to już dla mnie przeszłość) i jednocześnie bazuje n…

Powoli oswajamy się z Windows 8

W dzisiejszym mailingu znalazłem zestaw linków poświęconych oczywiście nowemu systemowi Microsoftu - Windows 8. Zachęcam do lektury.
Welcome to Windows 8 – The Developer PreviewTop 10 Moments from BUILD Day 1 KeynoteWindows 8 101: tips & tricks for new Start experienceHands-on with Windows 8: A PC operating system for the tablet ageWP8 to share same kernel as Win8, voice integration for emailZapis wideo fragmentów wczorajszej konferencji BUILD dostępny jest na kanale WindowsVideos (YouTube).
Windows 8 Developer Preview można pobrać ze strony http://dev.windows.com/.

Przegląd prasy, czyli kolejne ciekawe artykuły

Tym razem dwa linki do artykułów poruszających kwestię bycia dobrym programistą oraz jeden do ciekawego bloga wyjaśniającego, czym tak naprawdę jest REST, czyli które API są RESTowe, a które nie. I kiedy :-)
Zapraszam do lektury.

Become a Good Programmer in Six Really Hard Steps
Top Ten Most Influential Programming Books of All Time
Clarifying REST


Zapis ścieżki, czyli śledzenie położenia

Jakiś czas temu zastanawiałem się (na Google+), jak rozwiązać problem wzbogacenia zdjęć wykonywanych aparatem bez GPS o geotagi. Geotag to - w skrócie - znacznik położenia (na Ziemi ;-)), w którym to położeniu znajdował się aparat podczas robienia danej fotografii, zapisany w obszarze metadanych EXIF pliku graficznego (u mnie JPEG).
Pierwsze rozwiązanie to oczywiście zakup odpowiedniego sprzętu. Drogo (względnie). Drugie rozwiązanie, to rejestrowanie (za pomocą w miarę specjalistycznego sprzętu) zmian naszego położenia podczas wykonywania zdjęć, a później, z wykorzystaniem komputera i odpowiedniego oprogramowania, zestawienie zapisanej ścieżki z fotografiami. Warunkiem koniecznym jest, aby w aparacie fotograficznym były ustawione aktualne data i czas.
Mając zapisaną ścieżkę (kolejne sekwencje zawierające długość i szerokość geograficzną, czas rejestracji położenia i ewentualnie wysokość n. p. m.) - najlepiej w jednym z uznanych standardów (formatów) - można wykorzystać np. GPS Photo …

Z czego zrobione są strony WWW?

Ciekawą infografikę na ten temat mozna znaleźć w serwisie Geeks are Sexy:




Źródło: Geeks are Sexy: What Are Websites Made Of?

Parę linków dla webdesignerów

Projektowanie stron WWW tylko pozornie nie ma nic wspólnego z programowaniem - przekonał się o tym już chyba każdy, kto chciał dodać odrobinę życia do tworzonego przez siebie serwisu (i nie mam tu na myśli animowanego GIFa). Czasem po prostu wystarczy wkleić lub zalinkować skrypt, potem odpowiednio wywołać funkje jako akcje, czasem trzeba napisać coś od początku. W każdym razie przedstawiam kilka linków do artykułów krążących wokół ciągle nowego standardu - HTML5.

The Most Important Parts of HTML5
On the Cutting Edge with Adobe’s Edge
HTML5 or Silverlight?
HTML5 Drag and Drop in IE10 PPB2 (jako ciekawostka)

HTML5 ma umożliwić nam m. in. wyeliminowanie nadmiaru kodu wykonywanego po stronie klienta (oczywiście jesli nie jest to kod związany z tym, co nazywaliśmy swego czasu AJAX) - i z tego, co można zaobserwować, sprawdza się w tej dziedzinie.

Przegląd prasy, czyli kilka ciekawych artykułów

W codziennym mailingu zdarza mi się znaleźć czasem parę ciekawych opracowań czy artykułów, nie będących tekstami stricte developerskimi, traktujących jednak o rzeczach ważnych dla ludzi zajmujących się - zawodowo czy hobbystycznie - projektowaniem i tworzeniem oprogramowania. Dziś kilka linków do dosyć ciekawych artykułów, przy czym jeden z nich przeznaczony jest dla hadcore'owców ;-)

Hacking Vs. Programming"I do a little hacking – that is to say toss something together in a short period of time without a lot of planning – from time to time. I’m not a genius though and typically this ends poorly. The performance is poor, the maintainability is poor, and no one else wants to use it." - pod tym fragmentem mógłbym się podpisać. W ogóle ciekawy punkt widzenia.
Swoją drogą, czytałem kiedyś interesującą wypowiedź (w ramach któregoś z felietonów w SDJ) jednego z uznanych specjalistów od projektowania, tworzenia i wdrażania różnego rodzaju aplikacji. Otóż wyznał on, że w ogóle…

TEN. TEN.!!!

Kolejna produkcja mająca na celu popularyzację Javy - w alternatywny sposób :-) Piękne!
Redrum... to znaczy, chciałem powiedzieć TEN.!!!



Adres na YouTube: The Streaming

Pozostałe produkcje:
Java 4-everLady Java

Visual Basic .NET? Who cares?

Tekst zainspirowany własnymi doświadczeniami i przemyśleniami, pytaniem, które zadał Tomasz Wiśniewski na 2nd Silesian Code Camp podczas prowadzenia sesji, później zapomniany a następnie przypomniany przez wpis na Twitterze (Wojtek, pozdrawiam!).Pięć lat temu brałem udział w projekcie szkoleniowym promowanym przez Microsoft, w którym chodziło m. in. o zachęcenie programistów PHP do przejścia lub chociaż wypróbowania technologii ASP.NET, wkraczjącej na rynek w wersji 2.0 i stającej się wreszcie atrakcyjną dla tworzących serwisy WWW. Moim zadaniem w projekcie było – oprócz popraowadzenia zajęć - przygotowanie prezentacji i materiałów szkoleniowych, a w ogóle, to znalazłem się tam jako ekspert od PHP. No dobra, fakt, byłem wtedy jeszcze pehapowcem. Jako programista przyzwyczajony do języków klasycznych (C/C++, Java, C#…), których składnię stosowałem również w PHP (oczywiście w miarę jak na to pozwalał ten język), przygotowałem zarówno prezentację, jak i przykłady oraz materiały szkolenio…

My Top Twenty+ #AlternateTitlesForSourceCode

Dziś, od wczesnych godzin porannych (w naszej strefie czasowej :-)), na Twitterze aż się trzęsie (znaczy dysk) od propozycji #AlternateTitlesForSourceCode. Dominują głównie odwołania do filmów i niekoniecznie do kodowania :-)

Poniżej przedstawiam listę tytułów, które mi sie najbardziej spodobały (początkowo miało być dwadzieścia, ale szybko sie zorientowałem, że to mało).

C++ The Bjarne Ultimatum
The A-gile Team
Saving Private Method
Das Reboot
catch(Me if_) { you(can); }
C-Sharp 3: Rise of the LINQ
Harry Potter and the Index Out of Range Exception
CRUD: Legacy
IChocolateFactory
!Forgiven
The silence of the lambdas
A Room with a ViewModel
Life<brian>
PrivateRyan.Save()
The Bjarne Stroustrup Identity
The Lord of the Pings: The Fellowship of the Ping
Rollback to the Future
return _jedi;
return _king;
Run(Lola).Run()
Tibet.AddYears(7);
try { matrix.Reload(); } catch ( matrix.StartRevolution(); }
Callback Mountain
Dr StrangeLoop
“/dev/null’s Advocate”
Pla .NET of the…

Jak pisać książki dla programistów?

Nie, nie jest to poradnik dla początkujących - nie posiadam wystarczających kompetencji ani doświadczenia, żeby doradzać w tej dziedzinie. Jest to raczej wytknięcie sobie kilku błędów, które popełniłem pisząc książki przeznaczone - jak by nie było - dla programistów, głównie początkujących lub mających już pierwsze kroki w dziedzinie programowania za sobą.
Gdzies w czeluściach Internetu wygrzebałem artykuł "On Writing Books for Programmers", którego autor porusza temat właściwego podejścia do tworzenia publikacji (głównie książek) przeznaczonych dla programistów. Artykuł ten jest poniekąd streszczeniem maila otrzymanego przez autora (Victor Noagbodji) od Briana Kernighana, w którym guru twórców książek informatycznych odpowiada Victorowi na pytanie, jak pisać dla programistów. Nie będę tutaj oczywiście tłumaczył tego artykułu - polecam jego lekturę. Przytoczę tylko kilka aspektów, które bezpośrednio dotyczą moich prac. Poniższe punkty maja formę trybu rozkazującego, bo zwraca…

Dla początkujących: jak zautomatyzować wysyłanie informacji na Twittera

Posłużmy sie przykładem.

Problem:
Używam Twittera i Google Buzz. Ponieważ powiązałem obie usługi w taki sposób, że tweety są automatycznie publikowane (duplikowane) w Buzzie, nie ma sensu duplikować wpisów z Buzza na Twittera - zresztą sami zauważcie, jak to dziwnie brzmi :-) Wpadlibyśmy w nieskończoną pętlę i najprawdopodobniej zyskalibyśmy hm... dezaprobatę społeczności. Jak więc dawać znać użytkownikom Twittera o swojej aktywności na Buzzie?

Rozwiązanie (typu "jedno z...")
Można na przykład napisać sobie prosty program/skrypt, którego jedynym zadaniem będzie wysyłanie komunikatu na Twittera z linkiem do naszego Buzza i krótkim opisem, o co nam chodzi. Następnie można wykorzystać cron (w Linuksie; inne systemy również posiadają aplikacje/usługi pozwalające na uruchamianie programu w wyznaczonym czasie) i kazać mu uruchamiać nasz program/skrypt np. codziennie o 21:00.
Jedyne, o czym należy pamiętać, to rejestracja naszego programu w serwisie Twitter.

Oto przykładowy kod, realizu…