sobota, 26 listopada 2011

Jak pomagać?

Każdy, naprawdę każdy, może przyczynić się do rozwoju Wolnego Oprogramowania. Nie trzeba być od razu zawodowym programistą by włożyć swoją cegiełkę w rozwój programu. Poniżej znajduje się kilka przykładów, pierwszych, które przyszły mi na myśl.

Rozbudowa dokumentacji

Dokumentacja programu nie powinna być tworzona wyłącznie przez jego twórców (programistów). Potrzebny jest ktoś patrzący z perspektywy użytkownika. Ktoś, kto poznawał program od podstaw, zna problemy które mogą spotkać początkującego użytkownika.

Inna sprawa, że nie warto tracić czasu programistów na tworzenie podręczników/tutoriali dla "zielonych". Niech zrobią to ci, którzy chwilę wcześniej byli "zieloni".

 

Tłumaczenia

Dostępne są narzędzia umożliwiające łatwe tworzenie tłumaczeń (np. Crowdin). Nie potrzebne jest grzebanie w plikach źródłowych, wystarczy tylko wiedza i zmysł językowy.

Odpowiedzi na forum

Niemal na każdym forum codziennie zadawane są pytania dotyczące podstawowych funkcji programu. Warto poświęcić chwilę na odpisanie, tak by banały nie zaprzątały głowy programistom. Polecam darowanie sobie odpowiedzi: "poszukaj w Google", znacznie sensowniejsze (jeśli odpowiedź już była na forum) jest napisanie np.: "problem wynika zapewne z xxxxxxxx, więcej dowiesz się używając funkcji Szukaj". Jeśli nie mamy chęci na napisanie jednozdaniowej, ale pomocnej odpowiedzi, lepiej nie pisać jej wcale.

 

Propozycje zmian w programie

Propozycje są niemal zawsze dobrze widziane, pod warunkiem, że nie są roszczeniowe. Idealnym podejściem jest: "Chciałbym dodać funkcję ZZZZZ do programu, ale nie wiem jak zrobić YYYYY, czy możecie mi trochę pomóc?"
W przypadku kontrowersyjnych zmian (np. wygląd) najlepiej zbudować własnego forka programu. Nie ma sensu niczego wymuszać na twórcach pierwotnego programu. Jeśli fork będzie lepszy od bazy, to stanie się on popularniejszy lub zostanie zjednoczony z głównym drzewem.

 

Testowanie

Jeśli zawodowo wykorzystujesz podobne do wybranego projekt FLOSS oprogramowanie, jesteś idealnym człowiekiem do prowadzenia testów. Jeśli uda Ci się stworzyć poważny projekt w danym programie, to nie dość, że udowodnisz jego przydatność, to jeszcze będziesz mógł przekazać sporo uwag developerom.

 

Skrypty, makra, szablony

Wydaje się, że trudno jest od razu zacząć implementować nowe funkcje w programach pokroju GIMP-a czy Libreoffice. Tysiące, bądź miliony linii C/C++ nie wyglądają przystępnie.
Na szczęście takie programy mogą być rozbudowywane za pomocą skryptów pisanych w językach wysokiego poziomu.Gdy czegoś  brakuje, spróbuj to dopisać z wykorzystaniem takiego skryptu. Potem podziel się nim, skomentuj, utwórz stronę dokumentacji z której inni będą mogli się czegoś nauczyć.

Prezenty dla twórców sterowników (trudne do wykonania)

Jeśli znasz kogoś piszącego sterowniki, zapytaj go, czy nie przyda mu się twoja stara karta graficzna/dźwiękowa/muzyczna. Może dzięki tobie, ktoś będzie się cieszył działającym sprzętem pod Linuksem czy BSD.

Paczki, repozytoria

Oficjalne paczki mniej znanych programów są często nieaktualne lub wręcz ich nie ma. Stworzenie alternatywnego repozytorium (PPA w Ubuntu) będzie miłym gestem w stronę początkujących użytkowników. Na pewno wolą dodać repozytorium, niż kompilować ze źródeł.

Nie tylko oprogramowanie

Open Source, w szerszym znaczeniu, to nie tylko oprogramowanie. Kilka przykładów, gdzie również można pomóc:
 

    Po co pomagać?

    Wielu z nas siedzi długo przed komputerem. Szkoda, że również bezproduktywnie. Za bezproduktywne uważam nie tylko przeglądnie głupich stron z obrazkami, ale także prowadzenie blogów "o niczym"1. Poświęćmy choć ułamek czasu spędzonego przed komputerem na pomoc Wolnemu Oprogramowaniu. Korzyścią jest nie tylko satysfakcja, ale także nowe umiejętności wynikające z rozwiązywania problemów. Te umiejętności kiedyś się przydadzą. Nie mam ku temu żadnych wątpliwości.

    1 - czyt. plotkowanie, pisanie o tym jak zły jest Apple/Facebook/Google/Microsoft, rzucanie niemerytorycznymi argumentami o wyższości jednego smartfonu nad drugim i przede wszystkim narzekanie jaka to społeczność Wolnego Oprogramowania (lub Linuksa) jest zła, wredna i beznadziejna.

    wtorek, 22 listopada 2011

    Croteam o nas zapomniało. Szkoda. [Update: OpenGL na horyzoncie]

    Croteam wydało pod Linuksa gry Serious Sam: TFE (2001), SS: TSE (2002 - oba za sprawą Ryana C. Gordona) i SS 2 (2005). Zadanie ułatwiło użycie renderera OpenGL w wersjach pod Windows:
    • jako jedynego w SS: TFE,
    • jako domyślnego (D3D jako dodatkowy) w SS: TFE i TSE,
    • jako dodatkowy (obok domyślnego D3D) w SS 2.
    Co napędza SS 3: BFE? Nie wiem. Zapewne jest to D3D9.
    Tak czy inaczej wersji pod Linuksa nie ma i pewnie nie będzie. A szkoda, bo niektórych nie bawią "współczesne"* FPS-y.

    Pierwsze opinie o BFE nie wyglądają najgorzej:
    Sweet jeebus, there’s a lot of options here. Red, Green, Hippie and ‘Kids’ blood modes are back, too. About 5000 video options, and on launch it asked if I wanted the regular or ‘moddable’ version of the game. PC game to the core, this one.

    This is old-school. This is what Duke Forever wished it could be.

    Dobra, to ile kosztuje najtańszy Windows?

    *współczesne, czyli:
    • z regeneracją zdrowia przez odpoczywanie,
    • systemem wykorzystywania osłon,
    • ograniczeniem ilości noszonej broni,
    • strzałką "gdzie iść",
    • itp. 
    Ważny edit: Serious Sam 3 posiada wstępną obsługę OpenGL. Informację można znaleźć w logu:
    07:48:48 LOG: Loaded "c:\program files (x86)\steam\steamapps\common\serious sam 3\Bin\GfxOGL.dll".
    07:48:48 LOG: Loaded "OpenGL32.dll".
    07:48:49 WRN: CDS: 120 Hz refresh rate is not supported.
    07:48:49 LOG:
    07:48:49 LOG: * OpenGL context created.
    07:48:50 INF:
    07:48:50 INF: Gfx API: OpenGL
    07:48:50 INF: Resolution: 1920 x 1080


    Pozostaje mieć nadzieję, że pełna, umożliwiająca granie, obsługa OGL zostanie dodana wraz z którymś patchem.


    Edit: Metacritic 23:41 22.11.2011 - 5 opinii użytkowników, same "dziesiątki". What da..?!

    Edit 2: Na razie można mówić o doskonałym przyjęciu gry. Na Metacritic średnia ocena od 53 użytkowników to 9,3 (18:38 24.11.2011). Idę malować transparent "Chcę Serious Sama: BFE (Bumfuck Egypt?) na Linuksa!"

    Edit 3: Końcowa kwestia miażdży:



    Edit 4 (mam nadzieję, że ostatni): Fork Parker wygłosił ciekawy pogląd w temacie gier i piractwa:
    Piractwo jest problemem i nie ma co do tego wątpliwości, ale sukces takich gier, jak Skyrim, czy naszego Serious Sam 3: BFE na PC pokazuje, że istnieje rynek, na którym gracze są skłonni zapłacić za produkcje komputerowe. Najważniejszą rzeczą, która należy do developerów i wydawców, to wydanie na nim czegoś, na co warto wydać pieniądze.
     Swoją drogą, Fork Parker jest ma nieźle pokręcone poczucie humoru jak na siwą głowę.

    Co do powyższych tytułów, obrazek z MC:

    Edit 5 (ostatni, poważnie): pierwsza polska recenzja.

    niedziela, 20 listopada 2011

    Shapesmith - webowy CAD 3D oparty o WebGL i OpenCASCADE

    Shapesmith jest kolejnym otwartym projektem programu CAD wykorzystującego jądro OpenCASCADE. Cechą szczególną Shapeshmith jest to, że część kliencka pracuje w przeglądarce internetowej, bez użycia pluginów, wykorzystując WebGL i SceneJS.

    Możliwe jest uruchomienie Shapesmith bezpośrednio ze strony modeller.shapesmith.net, lub pobranie źródeł z GIT-a i uruchomienie na własnej maszynie.

    Więcej można przeczytać w notce:
    www.1011ltd.com/web/blog/post/im_building_a_webgl_tool


    Sneak Peek: WebGL modelling tool for 3D printing from Benjamin Nortier on Vimeo.

    Przy okazji warto wspomnieć o sukcesie projektu Tinkercad. Ten ostatni miał nawet swoje 5 minut na Google I/O 2011.

    wtorek, 15 listopada 2011

    FreeCAD: lepszy eksport DXF

    Jeden z deweloperów, Dan Falck, zajął się implementacją nowego algorytmu tworzenia widoków 2D i eksportowania ich do pliku DXF. By zobaczyć efekt wystarczy zaznaczyć model 3D w oknie programu FreeCAD,


    i w linii interpretera Pythona wpisać prosty skrypt:

    import Part,Drawing,FreeCADGui,FreeCAD
    from FreeCAD import Base
    filename = "/home/adi/widokxy.dxf"
    FILE = open(filename,"w")
    sel = FreeCADGui.Selection.getSelection()
    sel = sel[0]
    shape = sel.Shape
    dxf_output = Drawing.projectToDXF(shape,Base.Vector(0,0,1))
    FILE.write(dxf_output)
    FILE.close()


    Płaszczyznę rzutowania można zmieniać przez Base.Vector, (0,0,1) to XY, (0,1,0) to ZX, (1,0,0) to YZ.
    Plik wynikowy można otworzyć w DraftSight lub LibreCAD-zie.


    Ponieważ linie, okręgi i łuki są całkowicie prawidłowo zapisywane, nie ma problemu ze zwymiarowaniem takiego rysunku.

    Źródło:) pastebin.com/LvVfLsts

    niedziela, 13 listopada 2011

    CAD: Bryły z *.fcstd (FreeCAD) w *.dwg

    Przeniesienie modelu bryłowego 3D zaprojektowanego w programie FreeCAD do używanego przez AutoCAD-a i jego klony pliku DWG wymaga odrobinę zachodu. Poniżej znajduje kilkuetapowa instrukcja dla takiej konwersji pod kontrolą systemu GNU/Linux. Testowy model z-motor-mount.fcstd został wykonany w programie FreeCAD na podobieństwo jednego z elementów drukarki 3D Prusa Mendel. Pliki użyte w poniższej próbie można pobrać stąd.

    Krok 1: eksport do formatu STEP

    Otwieramy z-motor-mount.fcstd we FreeCAD-zie (wymagana relatywnie aktualna wersja SVN lub PPA). Następnie w w drzewie Tree view wybieramy interesującą nas bryłę. W tym przypadku będzie to Pocket005. Ostatecznie eksportujemy plik STEP wybierając menu File-Export i zapisując go jako z-motor-mount.step.

    Krok 2: konwersja do pliku kernela ACIS (SAT)

    Za modele 3D w programach Autodesku jest odpowiedzialny kernel ACIS. Do konwersji użyjemy darmowego programu CAD Exchanger. Pomimo, iż jest to program dla Windows, nic nie stoi na przeszkodzie by uruchomić go pod WINE. Po ściągnięciu i zainstalowaniu ze standardową ścieżką, wystarczy w Terminalu wpisać:
    wine .wine/drive_c/Program\ Files/CAD\ Exchanger/bin/Exchanger.exe
    W oknie programu należy wybrać Create a new document a następnie Import a CAD file into the document. Podgląd 3D może nie wyświetlać się prawidłowo, ale nie przeszkadza to w prawidłowym przebiegu konwersji. Klikamy Export i zapisujemy plik jako z-motor-mount.sat



    Krok 3: umieszczenie pliku SAT w DWG

    W typ etapie użyjemy programu Bricscad V11 Pro (PL) (pod Windows równie dobrze może być to AutoCAD). 30-dniowa, w pełni funkcjonalna wersja jest dostępna na stronach producenta.
    Cała operacja polega na wybraniu z menu Wstaw-Acis Do..., co spowoduje wstawienie bryły do aktualnego pliku DWG. Można go teraz zapisać Plik-Zapisz jako... pod nazwą z-motor-mount.dwg.


    Testy, testy...

    Jako próbę poprawności zapisu można otworzyć z-motor-mount.dwg w innym programie np. w darmowym DraftSight. Jak widać DraftSight, pomimo, że jest dedykowane dokumentacji płaskiej, potrafi wyświetlać również bryły.



    Ciekawostki


    • Twórca programu CAD Exchanger jest także piszącym bloga o kernelu CAD OpenCASCADE opencascade.blogspot.com
    • Zarówno FreeCAD jak i CAD Exchanger obsługują import i eksport wielu typów plików. Czemu został wybrany STEP a nie IGES czy STL? STEP nadaje się do opisu brył pełnych (solids), podczas gdy w przypadku IGES dostaniemy tylko powierzchnię. Jeszcze gorzej jest w przypadku STL, gdzie wszystko opisane jest za pomocą wielokątów. To uniemożliwia dokładne odwzorowanie bryły np. zamiast walca będzie to graniastosłup.  

    sobota, 12 listopada 2011

    Direct Modeling w Bricscad V12 Pro (Linux)

    Jak podaje Linux Aided Design betatesterzy mają już w rękach linuksową wersję Bricscada V12.

    Bricscad występuje w trzech wersjach:
    • Classic (Linux, Windows),
    • Pro (Linux, Windows),
    • Platinum (tylko Windows).
    Pełne porównanie poziomu funkcjonalności można znaleźć tutaj. Jeśli spojrzeć na V11 Pro dla Linuksa widać, że funkcje: Direct modeling, Geometric 3D constraints, Design intent, Section planes, Powerful rendering engine, Visual styles mają status do zaimplementowania, więc powinny być dostępne w V12.

    Jak działa Direct Modeling można zobaczyć na poniższym wideo (V12 Windows):



    PS Polacy również wydali swój klon AutoCAD-a. Z rzeczy pozytywnych o ++CAD można powiedzieć tylko: jest. Sprzedanie programu za 350 zł o poziomie funkcjonalności znacznie niższym niż darmowy DraftSight może być trudne.

    środa, 2 listopada 2011

    Tańsze komputery "stanęły" w miejscu

    Ile razy będzie szybszy nowy komputer z dolnej półki od swojego cenowego odpowiednika sprzed dwóch lat?

    Wg jednej z odmian prawa Moore'a:
    "moc obliczeniowa komputerów podwaja się co 24 miesiące"
    Tymczasem spójrzmy na dwa zestawy proponowane przez PurePC.pl:
    Różnice to głównie:
    • Athlon II 250 zamiast 240 (prawie ta sama wydajność),
    • zintegrowana grafika AMD 880G (Radeon 4250) zamiast 785G (Radeon 4200) (niemal ten sam układ, zbliżona wydajność),
    • dysk 640 GB zamiast 500 GB.
    W drugim przypadku mamy do czynienia z niemal tym samym komputerem, tylko o dwa lata młodszym i prawie o 200 zł droższym (sic!).