Soft jest darmowy, bo płaci ktoś inny…
22 Styczeń 2010
Przyzwyczailiśmy się do tego, że oprogramowanie darmowe nic nie kosztuje. Ściągamy, instalujemy i korzystamy z darmowego oprogramowania za darmo. Tu nie ma ukrytych kosztów, małej czcionki, rachunków czy abonamentów.
Byśmy mogli korzystać z darmowego oprogramowania, ktoś je musi wcześniej zaprojektować, napisać i przetestować. Chwała tym, którzy robią to za darmo. Ale jak się okazuje, tych chwalebnych jest całkiem mało.
Na odbywającej się właśnie konferencji linux.conf.au (18-23/01/2010) w Wellington, Nowa Zelandia, Jonathan Corbet, założyciel lwn.net i programista jądra Linuxa przedstawił statystyki dotyczące źródeł powstawania jądra.
Okazuje się, że 18% programistów pracujących nad jądrami w wersjach od 2.6.28 do 2.6.32 nie robiło tego dla żadnej firmy. 7% programistów nie odpowiedziało na ankietę, natomiast aż 75% pisało kod, ponieważ było im za to płacone. Z tej grupy programiści Red Hat stanowili 12%, za programistami z Intela (8%), IBM i Novell (6% każdy) i Oracle (3%).
Każda z tych firm ma swój własny interes w rozwoju Linuxa. Na własne sposoby potrafią wykorzystać darmowe oprogramowanie z otwartym kodem do generowania przychodów.I dzięki temu, że potrafią na Linuxie zarobić mogą dalej rozwijać ten system.
Zaryzykuję twierdzenie, że bez firm takich jak Red Hat, Oracle, IBM, Intel czy Novell, Linux nie byłby tak szybko rozwijany jak dzisiaj. Innymi słowy, bez pieniędzy nie można tworzyć i rozwijać darmowego oprogramowania.
Do uzasadnienia tej tezy wykorzystam przykład z polskiego podwórka. Od 2007 roku dostępna jest pełna dokumentacja protokołu KSI do przekazywania danych do Zakładu Ubezpieczeń Społecznych. O upublicznienie dokumentacji walczył w sądzie Sergiusz Pawłowicz. Udało się. Ostateczne uzasadnienie wyroku i upublicznienie protokołu KSI miało miejsce w 2007 roku. Otworzyło to drogę do napisania alternatyw do preferowanego przez ZUS oprogramowania Płatnik, który jest dostępny tylko na system Microsoft Windows.
Od 2007 nie stało się nic. Żadna firma, żaden programista nie opublikował w pełni działającej, “produkcyjnej” wersji alternatywy dla ZUS’owskiego Płatnika. Kurzy się, rozwijany od 1999 roku, projekt Janosik. Strona janosik.net nie miała żadnych zmian do 2007 roku. Wiki Janosika ma artykuły “w opracowaniu”.
Walka środowiska wspierającego ruch wolnego oprogramowania poszła w gwizdek, bo nie było nikogo, kto zainwestowałby czas, a przede wszystkim pieniądze w rozwój alternatyw. Akcja jak najbardziej potrzebna, podkreślająca konieczność otwartych protokołów i technologii w administracji nie ma wsparcia biznesu. Przez to zostaje na łasce hobbystów i wieczornych, domowych programistów. A Ci, mają inne plany niż rozwijanie takich projektów jak Janosik.
Można mówić o straconym potencjale i szansie, której nikt nie wykorzystał. Ale jednocześnie można też mówić o problemie, z którym boryka się wolne oprogramowanie: brak wsparcia biznesu, brak źródła finansowania, co z kolei zabija rozwój.
Programowanie aplikacji na platformy mobilne
17 Styczeń 2010
Napisałbyś aplikację na komórkę? Jeśli tak, to na jaką platformę?
Aplikacje na komórki z roku na rok stają się coraz bardziej popularne. Wraz z większą dostępnością telefonów takich jak iPhone, Blackberry, czy tych opartych na Google Android i Windows Mobile rośnie popyt i dostępność aplikacji pisanych pod te platformy.
Patrząc kiedyś na ilość i różnorodność komórek w moim domu zacząłem się zastanawiać nad ich wykorzystaniem do czegoś nowego – programowania aplikacji mobilnych. Na chwilę obecną u mnie w domu mam dostępne następujące platformy:
- Symbian 9.1 – Nokia E65
- iPhone OS 3.1.2 – Apple iPhone 3Gs
- Windows Mobile 6.1 – HTC TyTN II
- Android 1.6 (Donut) – HTC Magic
- Blackberry OS 4.6 – Blackberry Bold 9000
- Blackberry OS 4.5 – Blackberry Curve 8320
- ?? – Motorola RAZR V3xx
Zasięgnąwszy trochę literatury odkryłem, że byłbym w stanie (w rozumieniu: osiągalne z technicznego punktu widzenia) pisać aplikacje na 4 z wymienionych powyżej platform. A to z racji posiadania odpowiednich narzędzi by:
- aplikację napisać i przetestować dzięki udostępnionym SDK
- aplikację dystrybuować dzięki wsparciu producentów komórek
Sklepów, czy też miejsc gdzie użytkownicy komórek mogą zaopatrzyć się w nowe aplikacje, jest kilka. Są to także miejsca, gdzie programiści mogą sprzedawać swoje programy.
- Android Market – Google, 20 tyś aplikacji, 1 milion potencjalnych klientów (dane na czerwiec 2009)
- App Store – Apple, 115 tyś aplikacji, 50 milionów potencjalnych klientów (dane na wrzesień 2009)
- App World – RIM, 2 tyś aplikacji, 8 milionów klientów (dane na marzec 2007)
- Windows Marketplace for Mobile – Microsoft, 376 aplikacji, niewiadoma ilość potencjalnych klientów
Jednak, aby skorzystać z dobrodziejstw bycia autorem popularnych aplikacji często trzeba ponieść dość spore koszty:
- Android Market – 25$; Google zatrzymuje sobie 30% przychodów z aplikacji; Android SDK za darmo
- App Store – 99$/rok; SDK za darmo dostępne tylko na Mac OS X; Apple zatrzymuje sobie 30% przychodów z aplikacji
- App World – 200$; RIM zatrzymuje sobie 20% przychodów z aplikacji; Blackberry SDK za darmo
- Windows Marketplace for Mobile – 99$/rok, później $99/aplikację po pierwszym roku (studenci nie płacą); Windows Mobile SDK za darmo, Visual Studio płatne
Jeśli każda z platform wydaje się mieć wady i zalety. Która zatem wg. Ciebie platforma jest najlepsza dla Twojej aplikacji i Twojego sukcesu?
Przygoda z Android rozpoczęta
27 Listopad 2009
Dostałem dzisiaj paczkę z kupionym na eBay HTC Magic. Telefon ten działa pod systemem Android. Jest to obok iPhone mój drugi telefon (nie wliczam HTC TyTN II, jako że ten kurzy się w piwnicy), który posiada dotykowy ekran, klienta email i przeglądarkę.

Mam zamiar przyjrzeć się Androidowi z bliska i porównać go z iPhone. To będzie bardzo subiektywne porównanie, wsparte być może kilkoma zrzutami ekranu czy filmami na YouTube.
HTC nie jest moim podstawowym telefonem, dlatego będę mógł dość swobodnie modyfikować jego zawartość i oprogramowanie, na którym pracuje.
Z deweloperskiego punktu widzenia, prościej mi będzie (próbować) pisać soft na Android niż na iPhone, którego SDK wymaga MacOS.
Więcej o HTC Magic i o Android:
Uruchom sobie ChromeOS na maszynie wirtualnej
20 Listopad 2009
To proste. Wystarczy pobrać źródła i skompilować.
Aby skompilować ChromeOS, należy mieć jakąkolwiek wersję Linuxa, choć Google sugeruje Ubuntu. Ja kompilowałem właśnie na Ubuntu w wersji 9.10 (x86). Dodatkowo, trzeba spełnić kilka wymagań odnośnie zainstalowanego oprogramowania (posiadać gcc, bison, python i kilkanaście innych bibliotek).
Sama kompilacja jest bardzo prosta i nie długa. Google sugeruje stworzenie pliku VMDK by później uruchomić system na maszynie wirtualnej VMWare. Innym rozwiązaniem jest kompilacja na USB i uruchomienie systemu na jednej z sugerowanych platform sprzętowych: Acer Aspire One, ASUS Eee, HP Mini 5101, Lenovo Ideapad S10 czy Dell Mini 10V.
Miałem kilka problemów z dostępem do sieci na VMWare i ostatecznie skonwertowałem VMDK na VDI na Sun VirtualBox. A efekt jest następujący:
Serwerom WWW przeglądarka (bo nic innego na tym systemie nie ma) przedstawia się jako
Mozilla/5.0 (X11; U; CrOS i686 9.10.0;en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.253.0 Safari 532.5
Niestety nie dane jest mi zobaczyć panel z aplikacjami. Obecny build jest zablokowany na działanie z kontami w domenie @google.com, a ja nie mam za dużo czasu na ingerencję w kod.
Linki:
- Getting the Chromium OS Source Code
- Getting and Building a Chromium-Based OS
- System Requirements to build Chromium
- Build instructions
- Developer Hardware
Dla leniwych zostaje np. bittorrent, gdzie od wczoraj krążą gotowe dyski dla VMWare.
Dla pragnących poznać system trochę bardziej sugeruję następujący skrót klawiszowy: Ctrl-Alt-T. Otwiera on konsolę systemu.
Firefox i skanowanie ściągniętych plików
30 Wrzesień 2009
Po zainstalowaniu Firefoxa w wersji 3, czyli już spory kawałek temu, po raz pierwszy zobaczyłem nową funkcjonalność przeglądarki, jaką było skanowanie nowo ściągniętych plików przez program antywirusowy. Zacząłem się wtedy zastanawiać czy Mozilla podrzuciła w F3.0 jakiś skaner, czy też sama zacząła zajmować się produktami AV. Od tamtego czasu nie miałem okazji i czasu by głębiej przyjrzeć się tematowi. Do dzisiaj.
Zasada działania skanowania w Firefox jest bardzo prosta. Jeśli użytkownik systemu Windows ma zainstalowany program antywirusowy, Firefox (a konkretniej Download Manager) użyje tego programu by przeskanować ściągnięty plik. Jeśli takowego programu nie ma, skanowania, opóźnienia w ściąganiu i zapisywaniu pliku nie będzie. Dodatkowo, w Windows XP SP2 i Windows Vista (i Windows 7) przeskanowany program nie aktywuje alertu bezpieczeństwa systemu.
Funkcjonalność ta pojawiła się w Firefoxie w wersji 3.0b3 na początku 2008 i zdążyła wywołać niemało problemów.
Pierwszym problemem, który został zaobserwowany przez dużą część użytkowników przeglądarki to problem w ściąganiu plików, a konkretniej w ich zapisaniu na dysku. Jednak nie jest to problem samej przeglądarki, ale programu antywirusowego, który może nieprawidłowo rozpoznać ściągnięty plik jako zagrożenie (false positive). Wykrycie jakiejkolwiek postaci malware uniemożliwia w rezultacie zapisanie pliku na dysku.
Drugim problemem, a raczej niedogodnością było opóźnienie związane z czynnością skanowania ściąganych plików, tym większe im większy jest plik. Opóźnienie to zależy też od szybkości działania programu antywirusowego.
Jak można się domyśleć, to co robi Download Manager jest tak naprawdę niepotrzebne, ponieważ nowo tworzone, zmieniane i otwierane pliki i tak są skanowane przez programy antywirusowe (w ustawieniach domyślnych). Dlatego też ja nie znajduję mocnych merytorycznych podstaw uzasadniających potrzebę dodania tej funkcjonalności do przeglądarki.
Skanowanie to można wyłączyć ustawiając zmienną browser.download.manager.scanWhenDone na false w ustawieniach przeglądarki (about:config, a poźniej Toggle na wartości).
Więcej:
W przerwach miedzy liniami kodu C#…
31 Sierpień 2009
Ostatnie dni sierpnia schodzą mi bardzo pracowicie nad projektem, jaki tworzę w C#. Jest to projekt aplikacji opartej na koncepcji distributed systems, czyli za polską Wikipedią system “obliczeń rozproszonych” (choć bardziej sensownie byłoby to chyba nazwą system rozproszony). Aplikację, jak i dokumentację tworzę w całości po angielsku, więc proszę mi wybaczyć nieścisłości w języku polskim.
W skrócie jest to projekt, którego owocem będzie system, w którym zadania są rozdzielane pomiędzy pulę komputerów, a wyniki zwracane na serwer. W całości pisany na platformie Microsoftu z wykorzystaniem Windows Communication Foundation, C#, Visual Studio 2008 i SQL Server 2008 (przy małym wsparciu wirtualizacji na potrzeby debugowania i testów). Na podobnej zasadzie działa BOINC (Seti@Home), z tym wyjątkiem, że mój projekt nie będzie aż tak skalowalny i będzie znacznie szybszy.
Na ten projekt poświęcę osobną notkę innym czasem, bo to nie o tym chciałem dzisiaj napisać.
Zatem, w przerwach między liniami kodu C# czytam wiadomości i nowinki ze świata, a co za tym idzie, także z podwórka IT. Gdzieś zupełnie przez przypadek przeczytałem o pewnej usłudze nazwanej Swiss Post Box Home oferowanej przez pocztę w Szwajcarii. Usługa ta polega na dostarczaniu do klienta tradycyjnych listów pocztowych drogą elektroniczną. W praktyce wygląda to tak, że pan Kowalski czy też pan Smith przekierowuje swoją pocztę na adres szwajcarskiej poczty. Tam zaufani pracownicy poczty skanują kopertę, na podstawie której klient decyduje czy chcą by wiadomość została otwarta. Kowalski bądź Smith oglądają skan koperty w programie do obsługi poczty elektronicznej i decydują, czy koperta ma być otwarta bądź nie. Jeśli się zdecydują, zaufani pracownicy poczty skanują stronę za stroną, kartkę za kartką i wysyłają Kowalskiemu bądź Smithowi do przeczytania list via e-mail. Jeśli nie, przesyłka jest niszczona.
Usługa poczty w Szwajcarii jest czymś w rodzaju jednokierunkowej bramki pomiędzy tradycyjną, papierową pocztą a pocztą elektroniczną. Jednokierunkowej, bo poczta jedynie skanuje, a nie drukuje listy swoich klientów.
Natknąłem się na tą wiadomość i bardzo mnie zainteresowała, ponieważ jestem (znów) w sytuacji, kiedy będę zmieniał swój adres zamieszkania. Dla mnie, który zmieniał adres zamieszkania i adres korespondencyjny blisko 10 razy w ciągu ostatnich 10 lat, przenosząc się z miasta do miasta, a później także zmieniając kraj zamieszkania, usługa oferowana przez pocztę w Szwajcarii wydaje się być bardzo kusząca.
Szwajcaria poszła w ślad Stanów Zjednoczonych, gdzie podobną usługę z powodzeniem oferuje firma Earth Class Mail.
Pomimo istnienia takich usług, chciałoby się zapytać dlaczego wciąż na tak szeroką skalę stosuje się przesyłki papierowe i nie można ich zastąpić elektronicznymi? Ile jeszcze czasu musi upłynąć by mój bank nie musiał przysyłać mi stert zadrukowanych maczkiem kartek papieru będących moim wyciągiem bankowym?
Piszę te słowa otrzymawszy w ciągu ostatnich 6 tygodni ponad 20 papierowych przesyłek listowych od banków, ubezpieczycieli, warsztatu samochodowego, fundacji charytatywnych i urzędu skarbowego. Szkoda drzew, naprawdę szkoda drzew.
Przez Internet przetoczyła się fala krytyki z powodu działań Microsoftu w stosunku do przeglądarki Mozilla Firefox. Chodzi o dodatek, Microsoft .Net Framework Assistant 1.0, który dystrybuowany wraz z Microsoft .Net Framework 3.5 SP1 dodaje się automatycznie do listy dodatków przeglądarki Firefox.
Na ten temat napisano wiele komentarzy, oskarżających Microsoft o praktyki rodem z oprogramowania typu malware.
- Na wykop.pl artykuł opisujący jak ręcznie usunąć dodatek wykopano już 332 razy (na 20:37, 03/06/2009): Firefox celem nieuczciwych posunięć Microsoftu. (autor artykułu przyrównał dodatek do Firefoxa do WGA, co w mojej skromnej opinii wygląda na nieporozumienie)
- Dziennik Internautów opublikował artykuł Michała Dudy pt. “Microsoft zmodyfikuje Twojego Firefoksa”. Autor pisze tam m.in.: “Potajemne instalowanie czegokolwiek na naszych komputerach może spowodować stopniową utratę zaufania do Microsoftu. Część użytkowników zaczęła się zastanawiać czy jest jeszcze coś co gigant z Redmond instaluje na naszych komputerach bez naszej wiedzy.”
Czym jest ten dodatek, o który tak żarliwie wykłócają się zwolennicy Firefox?
Dodatek Microsoft .Net Framework Assistant ma na celu dodanie obsługi technologi ClickOnce, jaką ma IE7 & IE8, do przeglądarki Firefox.
ClickOnce jest technologią dystrybucji oprogramowania. Technologia ta pozwala na instalację aplikacji za pomocą przeglądarki internetowej wprost z Internetu, intranetu bądź z dysku sieciowego. Oprogramowanie instalowane za pomocą ClickOnce nie wymaga zgody administratora systemu, ponieważ jest izolowane tylko do tego użytkownika, który oprogramowanie instaluje. Ponadto, tego typu oprogramowanie nie ingeruje w system i jest odizolowane od pozostałych programów ClickOnce zainstalowanych na komputerze. Jest to typ dystrybuowania oprogramowania “na użytkownika”, a nie “na system”.
Oprogramowanie ClickOnce jest zazwyczaj podpisywane certyfikatem autentyczności (tzw. authenticode), który nie powoduje wyświetlenia ostrzeżenia o nieznanym pochodzeniu aplikacji (ciekawskim powiem, że jednym z moich zadań w pracy w Microsofcie jest monitorowanie systemu automatycznego podpisu cyfrowego, m.in. w technologi ClickOnce). Podobne praktyki są stosowane w tradycyjnie instalowanym oprogramowaniu, ale ClickOnce wykorzystuje inny certyfikat.
Wczoraj Microsoft zaktualizował artykuł w bazie wiedzy o numerze 963707 opisujący metodę automatycznego i ręcznego usunięcia dodatku do Firefoxa. Artykuł ten opisuje zalecaną metodę usunięcia dodatku. Artykuł dostępny jest pod adresem:
Artykuł ten sugeruje ściągnięcie aktualizacji do dodatku, który (w uproszczeniu) pozwoli dodatek odinstalować.
Visual Studio 2010 and .NET Framework 4 Beta 1
20 Maj 2009
Nowe VS 2010 beta jest publicznie dostępne do ściągnięcia ze stron MS. Nie miałem jeszcze okazji zapoznać się z nową wersją, ale coś z rodziny 2010 już znam. Office 2010 używam od dwóch dni na komputerze w pracy. Na razie bez niespodzianek, za to z dobrze przemyślaną funkcjonalnością GUI i wydajnością.
Visual Studio 2010 i .Net Framework 4 Beta do pobrania z poniższego adresu:
Więcej na Channel9.
Walidacja HTML – tylko dla masochistów?
6 Marzec 2009
Przeczytałem przed chwilą doskonały post na stronie Coding Horror – HTML Validation: Does It Matter? napisany przez Jeff’a Atwood’a.
Dość ciekawie podszedł to tematu zasadności walidacji kodu strony HTML czy XHTML. Polecam każdemu.
Aha, moja strona nie waliduje się poprawnie w robocie W3C. I tak pozostanie, bo błędy jakie są znajdywane w kodzie w ogóle mi nie przeszkadzają i nie zapobiegają poprawnemu wyświetlaniu strony w przeglądarkach.
Spotkanie z Microsoft Surface
26 Luty 2009
Miałem dzisiaj okazję zobaczyć w praktyce działanie urządzenia zwanego Microsoft Surface. Jest to rodzaj tabletu, w którym zamiast czułych na dotyk sensorów wykorzystuje się 5 kamer wychwytujących promieniowanie podczerwone.
Urządzenie skonstruowane jest na bazie zwykłego PC’ta z wbudowanym na górze 30-calowym monitorem i kamerami. Oprogramowanie działa na bazie Windows Vista.
Poniżej klip wideo z CES 2008.
Mieliśmy do dyspozycji kilka aplikacji, na których mogliśmy wypróbować w praktyce czym jest Surface. Jest to bardzo intuicyjne narzędzie, które zmienia sposób komunikowania się z użytkownikiem. Przesuwanie, powiększanie, czy obracanie przedmiotów (okien) wykonuje się po prostu palcami, przesuwając po matowej powierzchni tabletu. Graliśmy na fortepianie, malowaliśmy obrazy, układaliśmy puzzle, oglądaliśmy mapy z maps.Live.com.
Już po kilku minutach wiedziałbym do czego mógłbym używać Surface – do przeglądania, edycji i katalogowania zdjęć. Mam dość pokaźną bibliotekę zdjęć i co jakiś czas dorzucam nowe (próbki można zobaczyć na Flickr).
Urządzenie jest bardzo czułe na oświetlenie i wymaga kalibracji zanim się je użyje. Dlatego niewskazane jest używanie Surface w warunkach zmiennego oświetlenia.
W Dublinie w centrum developerskim Microsoftu mamy dwa takie urządzenia. Wiem, że w Stanach Surface używany jest przez sklepy AT&T, było wykorzystywane w celach prezentacji sondaży w ostatniej kampanii prezydenckiej w USA.
Dostępna jest prezentacja z PDC2008 o programowaniu pod surface. Z tego co mi jest wiadomo SDK dla Surface nie jest jeszcze dostępne publicznie [1].
