TechLife devBlog

11 bitów wojny

misc pon 17 listopad 2014 | Tagi: #internet

Byłem w weekend na Hall of Games gdzie miałem okazję zobaczyć prelekcję Marka Ziemaka - Wojna, wojna się zmienia. Nawet nagrałem całe wystąpienie, IMHO nie było super porywające ale jak kogoś by interesowało to mogę wrzucić na YouTube. Ale nie o tym...

Dzisiaj 11 bitowcy znaleźli się na ustach gamerów z całego świata a to za sprawą jednego komentarza dodanego na The Pirate Bay.

Komentarz Karola

Czyżby 11 bitowcy zaatakowali pozycję CD Projekt RED, tak cenionych przez gamerów? W każdym razie giełda ich wynagrodziła :-)

3 dni: +61.12%

Warto też zwrócić uwagę na odzew:

komentarz: goldbr

komentarz: Mooe

Ludzie kupili grę nie dlatego, że jest ciekawa (chociaż jest), ale dlatego, że ktoś pozwolił im świadomie wybrać. I takie postawy warto promować.

Przy okazji gameplay:

A teraz przeciwwaga, jak to się robi w ministerstwie: Ripowanie na własny użytek powoduje straty - oto stanowisko ministerstwa! AWI

Mój kraj jest taki piękny

Dziękuję, dobranoc.

Pelican - generator statycznych stron

misc wto 11 listopad 2014 | Tagi: #python

Opuszczając dawno wymarły Jogger, zastanawiałem się gdzie przerzucić mojego bloga. Niestety drugiego takiego miejsca nie ma i pewnie już nie będzie :'-( IMHO Jogger zaczął umierać w momencie kiedy Sparrow, nie zgodził się na uwolnienie kodu o co prosiła społeczność.

Anyway, do wyboru jest bardzo niewiele. Dodatkowo chciałem:

  • zaimportować dotychczasowe treści
  • nie przekazywać nikomu prawa do dysponowania generowanymi przeze mnie treściami (Facebook, Google Plus)
  • nie być ograniczonym różnymi płatnymi usługami jak np. płatne podpięcie domeny (WordPress.com)
  • mieć do dyspozycji składnię w której można ładnie prezentować kod, i nie męczyć się z HTML-em (bez TinyMCE ani pochodnych).

W końcu wpadłem na notkę 10 Open Source Blogging Platforms for Developers i zaskoczyło mnie bardzo elastyczne zastosowanie dla Pelicana - generatora statycznych stron.

Z grubsza Pelican jest prostą aplikacją napisaną w Pythonie, która potrafi z plików .md (Markdown), .rst (reStructuredText) i .html wygenerować cały blog, tak jak to robią inne systemy dynamicznie generujące treść. Różnica jest tylko taka, że Pelican robi to tylko raz, wtedy kiedy dodawana jest nowa treść. Zalety są takie, że wygenerowana strona to zwykłe pliki HTML + JS, więc od jej hostowania wystarczy najprostszy serwer www, nie musi nawet posiadać obsługi PHP czy innego Pythona. Nie potrzeba też żądnej bazy danych.

Wystarczy nam nawet typowy hosting z lat '90 z dostępem przez FTP. Oczywiście są też Pelican wspiera również czasy współczesne, czyli SSH, Amazonowy S3, Dropbox-a, GitHub-a czy rackspace.

Instalacja i konfiguracja

Instalacja jest banalnie prosta, najlepiej zrobić sobie wirtualne środowisko i w nim zainstalować wymagane pakiety.

$ pip install pelican markdown

Później odpalamy prosty konfigurator:

$ pelican-quickstart

Całą resztę załatwiamy przez edycji pliku pelicanconf.py. Pełną listę opcji znajdziecie w dokumentacji - a jest ich tam dość sporo.

Używanie

Generalna zasada jest taka, w katalogu content umieszczamy właściwe treści, z których później wygenerowana zostanie strona, której pliki znajdziemy w katalogu output. Oczywiście nazwy katalogów można również skonfigurować.

Obojętnie który z formatów wybierzemy (.md, .rst czy .html) musi on zawierać metadane. Np. tytuł, data, kategoria, tagi, slug, autorzy. Żeby jednak było łatwiej to jedynym wymaganym do wygenerowania strony atrybutem jest tytuł.

Przykład z dokumentacji dla Markdown-a:

Title: My super title
Date: 2010-12-03 10:20
Modified: 2010-12-05 19:30
Category: Python
Tags: pelican, publishing
Slug: my-super-post
Authors: Alexis Metaireau, Conan Doyle
Summary: Short version for index and feeds

This is the content of my super blog post.

Po stworzeniu pliku wystarczy nam komenda

pelican content

i już w katalogu output powinna czekać na nas gotowa do przeglądania strona.

Oczywiście każdy lubi na bieżąco oglądać swoje postępy dlatego, żeby nie generować co chwilę całej strony powstał server developerski - develop_server.sh. Wystarczy go odpalić:

$ ./develop_server.sh start

i od tech wili będzie on śledził wszystkie zmiany w katalogu content i automatycznie generował pliki związany z treścią, która uległa zmianie a całość podglądać możemy wstukując w przeglądarce adres: 127.0.0.1:8001.

Publikacja treści

Przed wypchnięciem treści na właściwy serwer należy skonfigurować jeszcze dwa pliki. W pliku publishconf.py możemy przeciążyć zmienne z pelicanconf.py np. podać właściwy adres url strony (zmienna SITEURL). Drugim plikiem jest Makefile gdzie ustawiamy dostępy do naszego serwera (FTP, SSH czy coś innego).

Przykład konfiguracji dla FTP:

FTP_HOST=localhost
FTP_USER=anonymous
FTP_TARGET_DIR=/

Po skonfigurowaniu obu plików wydajemy komendę odpowiadającą sposobowi transportu naszych plików na serwer. Czyli np.

$ make ssh_upload

Czy przy wrzucaniu plików przez FTP:

$ make ftp_upload

I to wszystko, gotowa strona ląduje w odpowiednim miejscu gotowa do oglądania.

Podsumowanie

Jak widać za pomocą Palicana udało mi się niemal identycznie odtworzyć Joggera pomimo, że są to zwykłe pliki HTML + JS. Wszystko dzięki bardzo elastycznemu systemowi szablonów (Jinja) oraz systemowi pluginów, który dokłada nam dodatkowe możliwości tj. generowanie mapy strony, dodawanie systemu komentarzy czy dodawanie galerii. Całość jest bardzo konfigurowalna, udało mi się nawet odtworzyć strukturę url-i jaką miałem na Joggerze, dzięki czemu linki do wpisów, które znaleźć można przez Googla nadal pozostaną aktualne.

Całą stronę można trzymać w repozytorium, np. na GitHubie, dzięki czemu backup i historię mamy załatwioną. Swoją drogą ciekawy byłby serwis generowany przez Pelicana, gdzie własne autorzy artykuły zgłaszaliby przez pull requesta :-)

Linki do pooglądania:

Anno Domini 2014

misc wto 11 listopad 2014 | Tagi: #inne

Nie wiem ile osób śledzi jeszcze mój kanał RSS, ale z pewności nie widział on nowych wpisów od dwóch i pół roku i najwyższy czas go przepchać. Wiele się u mnie zmieniło przez te dwa lata. Przeprowadziłem się do Wrocławia, kupiłem mieszkanie, zmiełem pracę a od września jestem szczęśliwym właścicielem córki, sztuk 1. Co ciekawe pracuję teraz piętro wyżej niż Mirumee, ale Patrysa w życiu jeszcze nie spotkałem.

Są też rzeczy, które się nie zmieniły - nadal zajmuję się tworzeniem aplikacji internetowych a w domu nadal używam tego samego laptopa (to już ponad 7 lat) na którym stoi ten sam ArchLinux.

Przez te dwa lata grzebałem nie tylko w komputerze. Ponad rok czasu bezpośrednio (pośrednio o wiele dłużej) współtworzyłem Niezależną Telewizję (NTV), swoją drogą ciekawe czy ktokolwiek o niej słyszał :D Nieco później razem z częścią ekipy, która prowadziła NTV założyliśmy nowy projekt, ale oparty o zupełnie inne zasady. TAGEN.TV ma być z założenia telewizją tworzącą przez internautów ale jednocześnie nie bojącą się tematów alternatywnych. Zresztą naszą filozofię każdy może poczytać sobie na podstronie O nas. Być może także wśród Was znajdą się osoby, które potrafią zrobić użytek z kamery. Zapraszamy do współpracy, da się zarobić, ja już dwie relacje nakręciłem :-)

To z grubasza tyle. Jak widać wyniosłem się już z Joggera, ale o tym później.

Bootstrap - HTML-owe klocki Lego

Przeniesione z jogger.pl pon 16 kwiecień 2012 | Tagi: #Kodowanie, #Techblog

W lipcu narzekałem, że webdeveloperom brakuje klocków/struktur z których mogliby łatwo budować aplikacje, podobnie jak buduje się desktopowe interfejsy graficzne korzystając z różnych bibliotek zawierających zdefiniowane elementy i kontrolki. Dzisiaj spokojnie mogę powiedzieć, że HTML również doczekał tych wspaniałych czasów.

Bootstrap - przykład

Od kilku miesięcy obserwowałem rozwój projektu Bootstrap (od Twittera). Bootstrap to ogromny zbiór najczęściej stosowanych HTML-owych struktur, które zostały w bardzo estetyczny sposób ostylowane oraz dodano JavaScript do sterowania interaktywnymi elementami tj. okna modalne, taby, rozwijane menu, dymki z podpowiedziami, komunikaty i wiele innych.

Początkowo dostarczanych elementów było względnie mało. Do tego zastosowanie Bootstrapa było bardzo inwazyjne, ponieważ automatycznie stylował nam różne elementy, które niekoniecznie chcieliśmy mieć ostylowane w ten sposób. Jednak przez te kilka miesięcy odwalono kawał dobrej roboty. Liczba elementów urosła już do takiej ilości, że pozwala spokojnie budować bardzo zaawansowane aplikacje bez konieczności tworzenia własnych struktur. Zmieniła się również polityka stylowania i teraz większości elementów trzeba nadać klasę (np. tabeli należy nadać klasę table) aby skorzystać ze styli Bootstrapa.

Komponenty

Jak przystało na porządne pudełko z narzędziami, w Boostrapie znajdziemy też 12 kolumnowy CSS grid (stały lub płynny), oraz zestaw styli CSS3 służący do ładnego wyświetlania całości na różnej wielkości ekranach (Responsive design).

Grid

Korzystałem już z Bootstrapa w kilku aplikacjach i okazał się bardzo wygodny w użyciu. Bez problemu mogłem się skupić na mechanizmach zamiast na warstwie prezentacyjnej a mimo to wynikowa aplikacja była bardzo estetyczna i odznaczała się wysokim współczynnikiem eye candy. Do tego wszystkiego można dodać, że Bootstrap umożliwia wygenerowanie sobie spersonalizowanej paczki, zawierającej tylko potrzebne nam elementy a nawet przebudowany na nasze potrzeby CSS, ponieważ Boostrap generuje go korzystając z dobrodziejstw LESS.

Generator

Używa się tego tak dobrze, że całkiem prawdopodobne jest, że niedługo internet zostanie zalany podobnie wyglądającymi stronami i aplikacjami. Prosty przykład:

Przykładowa strona

Na stronie builtwithbootstrap.com można zobaczyć już całą gamę stron zbudowanych z pomocą Bootstrapa. Jest jednak światełko w tunelu. Powstała strona bootswatch.com oferująca różnorodne skórki dla elementów Bootstrapa.

Przykład skórki
Przykład skórki

Oczywiście Bootstrap to nie jedyny projekt tego typu. Warto przyjrzeć się również HTML KickStart.

Kick Start

Czasy gdy programiści tworzyli sraczkowate interfejsy oparte na tabelkach rodem z lat '90 oficjalnie uważam za zamknięte. Miłego kodowania!

Komentarze z jogger.pl

pecet 2012-04-16 22:22

Ja tam lubiłem tabelki i ramki, szkoda że się z nich rezygnuje.

trójkąt 2012-04-16 22:26

Ramki są znowu w modzie - YouTube, Facebook :-)

OpenGrid 2012-04-17 02:17

Twitterowy bootsrap jest dostępny w paczce HTML5 boilerplate. Warto korzystać z tej mikstury na początku każdego projektu. Warto rownież zauważyć, że bootstrap-responsive fantastycznie pomaga w przygotowaniu wersji mobilnych serwisów. Stanowczo polecam kombinację z bootsrapem nawet w przypadku stron, których projekt graficzny w żaden sposób nie przypomina wersji bazowej - wiele wiele zaoszczędzonych godzin.

mt3o 2012-04-17 10:19

To ja może uzupełnię, że firma Sencha udostępniła podobne rozwiązanie, ale w całości oparte na js (czyli nie piszemy HTMLa), a na dodatek do tego narzędzie wysiwyg bazujące na ichnim frameworku, ext.js służący do budowania interfejsu aplikacji tak, jak to się robi klikając w powiedzmy visual studio. Kosztuje toto niemało, ale zwalnia z zerkania co chwilę do referencji. Przy pierwszym projekcie intensywnie używającym kontrolek, powinno się szybko zwrócić z nawiązką. Ewentualnie można ten sam kod js pisać z palca, równiez nie płacąc.
Tracimy trochę kontroli nad tym co się dzieje w HTMLu, ale z drugiej strony mamy automatyzację datasource'ów i abstrakcję. Czy warto - niech każdy oceni sam.

d4rky 2012-04-19 09:47

Używanie Bootstrapa jako narzędzia na wszystkie bolączki webdesignu-który-nie-jest-zadesignowany (tylko napisany przez programistów) nie jest ani dobre, ani nie jest rozwiązaniem. Jedyne co tworzy to kompletnie nudne, niewyróżniające się niczym strony internetowe sklepane na jedno kopyto. O ile do takich rzeczy jak panel administracyjny czy wszelkiego rodzaju konstrukcje, w których design nie trafia do wszystkich ludzi, a tylko do zamkniętej grupy odbiorców to faktycznie ma sens, bo bardzo często nie warto marnować manpower na projektowanie czegoś, z czego użytek będzie raz na kilka tygodni, a czasem miesięcy, to bazowanie całości lub nawet większej części strony internetowej na takim gotowcu to typowy, bolesny strzał w stopę, który się jeszcze wielokrotnie zemści. Mark my words.

Osobiście nie uważam Bootstrapa za narzędzie diabła, a nawet nie sądzę, żeby wykorzystanie jego dobrych elementów w designie było nieprofesjonalne (a słyszałem taką opinię, oczywiście od ludzi zawodowo trudniących się zarabianiem na chleb pisaniem HTML/CSS ;)) to owcze ładowanie klas bez żadnych własnych modyfikacji w CSS, bez ręcznego dostylowania części elementów, bez przemyślanego wkomponowania pyszności od Twittera do własnego szablonu jest po prostu złe, bo daje kolejnym pokoleniom "gimnazjalistów z zlecenia.przez.net" możliwość psucia rynku i zaniżania i tak już gównianych cen na rynku, o psuciu klientów ("no bo mogę mieć taniej to rób pan za grosze albo spierdalaj") nawet nie wspominając.

To, z czego osobiście najczęściej korzystam z ich zestawu to:

  • fluid grid
  • tabelki (bardzo często mocno zmodyfikowane do własnych potrzeb, nie tylko kolorystycznie :P)

oraz do panelu administracyjnego:

  • formularze (bo scaffolder)
  • przyciski
  • ikonki
  • pagination
  • alertsy

Resztę lepiej zbudować samemu ;)

---

A skoro już i tak walę elaborat: fluid grid nie ma zaimplementowanego offset (jest tylko dla fixed grid), raczej im się nie śpieszy z naprawą tego biorąc pod uwagę, że issue na githubie leży już od dłuższego czasu , hackiem na to (chociaż nieładnym, bo derp puste divy) jest używanie spanX (gdzie X to oczywiście cyfra) przed danym elementem o wielkości takiej, jakiej odstęp chcemy uzyskać. Tyle, że pustego diva bez nadanych wymiarów ani treści przeglądarka nie wyrenderuje. Wystarczy prosty hack:

.row-fluid [class*="span"]
{
    min-height: 1px;
}

Dla jednych może to oczywiste, ale może zaoszczędzę komuś odrobinę czasu ;)

OpenGrid 2012-04-19 10:40

@d4rky z całym szacunkiem ale to:

bo daje kolejnym pokoleniom
"gimnazjalistów z zlecenia.przez.net"
możliwość psucia rynku i zaniżania i
tak już gównianych cen na rynku, o
psuciu klientów ("no bo mogę mieć
taniej to rób pan za grosze albo
spierdalaj") nawet nie wspominająspierdalaj") nawet nie wspominają

brzmi trochę jak retoryka zawodowych taksówkarzy, którym przewóz osób naciska na odcisk. Dla twórców zawsze będą zaniżone, a dla klientów zawyżone, ale to reguluje rynek. Jeżeli czujesz się zagrożony przez gimnazjalistów to dobrze, bo często to są bardzo zdolni ludzie, którzy też pragną wejść na rynek pracy i w tym celu muszą się podkładać cenono, żeby walczyć o klienta z wyjadaczami. Z punktu widzenia pracodawcy to też lepiej. Niby dlaczego tworzy się centra kompetencyjne dużych korporacji w takich krajach jak Polska, czy Indie...?

To klient decyduje jaki współczynnik ceny do jakości mu pasuje. Możnaby przecież to doprowadzić do absurdu, kiedy to strona na temat kolekcji znaczków musiałaby być zamawiana w Prokomie. Natomiast osoba z doświadczeniem raczej nie ma problemu z uzyskaniem satysfakcjonującego wynagrodzenia. Nie znam nikogo z mojego otoczenia kto by narzekał na brak sensownych klientów z powodu ZPN.

Jeśli chodzi o samego Bootstrapa, nikt nie każe pozostawać przy domyślnym CSS. Być może układ się nudzi, ale też dla wielu ludzi znajomy układ i wygląd daje poczucie bezpieczeństwa, zaufania itp. Dlatego nie mierzełbym wszystkich swoją miarką.
Poza tym nie ma co wyważać otwartych drzwi.

trójkąt 2012-04-19 12:55

@d4rky: mi bardziej chodziło o budowanie aplikacji a nie stron, bo te jak wiadomo najlepiej kiedy są unikalne. Swoją drogą za pomocą skórek, do których linkowałem oraz tych, które na pewno jeszcze powstaną można będzie również budować całkiem zróżnicowane interfejsy. Zawsze mamy również otwartą drogę do ostylowania tego samemu, bo skoro są już zdefiniowane struktury to można je ozdobić na tysiące sposobów (coś jak Zen Garden).

Co do gimnazjalistów to myślę, że właśnie między innymi po to te frameworki powstają, żeby budowanie stron stawało się coraz łatwiejsze a przez to coraz tańsze i łatwiej dostępne. Nie można wiecznie wymagać, że strona/aplikacja będzie kosztowała 3k a wykonać ją będzie mogła jedynie osoba z 5 letnim doświadczeniem i po studiach informatycznych.

d4rky 2012-04-19 14:44

brzmi trochę jak retoryka zawodowych taksówkarzy, którym przewóz osób naciska na odcisk.

Jest delikatna różnica pomiędzy programowaniem, a prowadzeniem samochodu polegająca na tym, że w tym pierwszym przypadku jeśli chodzi o jakość to różnica może dotyczyć co najwyżej czasu przewiezienia danej osoby przez miasto i komfortu jazdy i/lub samochodu. To jest usługa jednorazowa, wsiadasz, płacisz, wysiadasz i zapominasz o całej sprawie, więc można się skupić na tym, żeby kosztowała jak najmniej.

Tworząc projekt internetowy możesz go za przeproszeniem spierdolić od góry do dołu, pociąć na tabelkach, napisać kod, którego nie będzie się dało potem modyfikować, męczyć to przez miesiąc lub dwa i zażyczyć sobie za to 250 zł.

W obu tych sytuacjach jest wspólny mianownik, na który zwróciłeś uwagę pomijając całą resztę (niesłusznie): cena. W obu przypadkach potencjalny klient będzie szukał w większości przypadków oferty jak najtańszej, więc mając do wyboru stronę internetową, za którą zapłaci 1000 czy 2000 zł, a stronę, za którą zapłaci 250 lub 500, nie będzie się długo zastanawiał.

Dla twórców zawsze będą zaniżone, a dla klientów zawyżone, ale to reguluje rynek. Jeżeli czujesz się zagrożony przez gimnazjalistów to dobrze, bo często to są bardzo zdolni ludzie, którzy też pragną wejść na rynek pracy i w tym celu muszą się podkładać cenono, żeby walczyć o klienta z wyjadaczami.

Problem w tym, że taki gimnazjalista mieszka z mamą, nie płaci podatków i chodzi do szkoły, więc jemu to nie przeszkadza, że projekt wymęczy przez miesiąc, bo będzie miał swoje 250 zł na browarka, podczas gdy osoba zajmująca się projektowaniem stron musi zapłacić jeszcze za czynsz, rachunki, swoje jedzenie itd.

W przypadku takiego gimnazjalisty ukrytym kosztem, o którym klient nie wie (bo po prostu nie ma skąd wiedzieć) jest czas wykonania zlecenia, który w pierwszym przypadku zawsze będzie dłuższy, czasem wielokrotnie, a także końcowa jakość produktu (o której klient też często nie ma pojęcia, przynajmniej dopóki nie będzie chciał czegoś w swojej stronie zmienić).

Jasne, możesz tłumaczyć, że skoro klientowi się strona podoba to znaczy, że została wykonana dobrze i poprawnie, więc czym tu się przejmować, ale klient nie jest jedyną osobą, która z tej strony korzystać będzie, to raz, a dwa, że on nie jest specjalistą, nie musi się znać i nie musi wiedzieć, że jego strona mogła być zrobiona lepiej.

To klient decyduje jaki współczynnik ceny do jakości mu pasuje. Możnaby przecież to doprowadzić do absurdu, kiedy to strona na temat kolekcji znaczków musiałaby być zamawiana w Prokomie. Natomiast osoba z doświadczeniem raczej nie ma problemu z uzyskaniem satysfakcjonującego wynagrodzenia. Nie znam nikogo z mojego otoczenia kto by narzekał na brak sensownych klientów z powodu ZPN.

Zasadniczy problem nie tkwi w tym, że ludzie kupują g...no. Zasadniczy problem polega na tym, że nie wiedząc, że oferuje im się gówno zakładają, że osoba za 1500/2000 zł zrobi im "prawie to samo" co osoba za 500 zł. Z tego powodu pojawia się postawa roszczeniowa: "zrób mi pan, to, tamto, sramto i owamto, albo pójdę do kogoś kto mi zrobi taniej". I to cholernie psuje rynek, co wiedzą ludzie, którzy mają styczność z klientami biznesowymi, brali kiedykolwiek udział w przetargach lub po prostu robili stronę osobie, która nie przyszła do nich sama jako klient.

Chociaż przyznaję, od kiedy współpracuję z normalnymi agencjami interaktywnymi i nie muszę polować na klientów osobiście nie mam już tego problemu. Zamiast tego koledzy podrzucają mi wesołe historyjki o tym jakie klienci potrafią stawiać nierealistyczne wymagania i terminy przy naprawdę śmiesznych cenach (np. pocięcie, ostylowanie i oskryptowanie w JS, bodajże z paroma animacjami 12 podstron projektu za 500zł)

Niby dlaczego tworzy się centra kompetencyjne dużych korporacji w takich krajach jak Polska, czy Indie...?

Nie znam statystyk, więc nie powiem ci czy Polska lub Indie są w jakikolwiek sposób bardziej brane pod uwagę przy tworzeniu takich centr. Wiem tylko, że zarówno w Polsce jak i Indiach płaci się ludziom mniej za taką samą pracę niż ludziom np. w Stanach. Ty mówisz "konkurowanie cenowo", a ja po prostu powiem tylko tyle: specjalista potrafi się cenić.

---

@trójkąt: Trochę się rozpisałem, więc teraz krócej :)

Co do gimnazjalistów to myślę, że właśnie między innymi po to te frameworki powstają, żeby budowanie stron stawało się coraz łatwiejsze a przez to coraz tańsze i łatwiej dostępne.

I tutaj się trochę mylisz. Frameworki powstają nie po to, żeby budowanie stron było łatwiejsze tylko szybsze, słowem, żeby można było obsłużyć więcej klientów (lub utworzyć więcej funkcjonalności w jednym projekcie) w mniejszym czasie pracy za te same pieniądze. Wątpię, żeby w czyimś interesie było wykopanie siebie samego z rynku, raczej maksymalizacja zysków przy jak najmniejszej pracy. Ot, postęp.

Nie można wiecznie wymagać, że strona/aplikacja będzie kosztowała 3k a wykonać ją będzie mogła jedynie osoba z 5 letnim doświadczeniem i po studiach informatycznych.

Biorąc pod uwagę, że mówimy o złotówkach to biorąc pod uwagę inflację, wzrost cen, a także koszt czasu poświęconego na to, żeby nauczyć się takowe strony robić i robić je dobrze to i tak często są głodowe stawki. Może na naszym rynku to robi wrażenie, ale ja wolę patrzeć w stronę krajów nadających kierunek, a nie będących sto lat za murzynami w kwestii rozwoju technologicznego.

A co do studiów informatycznych (przynajmniej w kontekście webdev) to proszę, może lepiej nie kontynuujmy tematu i spuśćmy zasłonę milczenia.

trójkąt 2012-04-20 00:00

[...] Zasadniczy problem nie tkwi w tym, że ludzie kupują g...no. Zasadniczy problem polega na tym, że nie wiedząc, że oferuje im się gówno [...]

Tak, to niestety problem dość znany i chyba dotykający nie tylko branży IT. Jak nie osoby robiące śmieci za 250 zł to znowu różnego rodzaju darmowe kreatory www (np. ten od home.pl), gdzie każdy może wyklikać sobie stronę. Ale na to nic nie poradzimy. Są ludzie kupujący elektronikę na bazarze i tacy, który chodzą po nią wyłącznie do markowych sklepów.

Wydaje mi się jednak, że klienct porównujący portfolio gościa żyjącego z www i gimnazjalisty raczej nie będzie miał problemów z wyborem. Jedyny problem to taki, żeby ewentualny klient znalazł te oba portfolia i porównał je ze sobą a nie trafił jedynie na gimnazjalistę.

Niemniej jednak będąc na bieżąco z technologią zawsze powinniśmy być krok przed gimnazjalistami. W końcu raczej nie będą oni w stanie zbudować wysoko wydajnej aplikacji mobilnej, bo nie będą wiedzieli np. co to Node.JS czy nierelacyjne bazy danych.

d4rky 2012-04-20 14:05

Jedyny problem to taki, żeby ewentualny klient znalazł te oba portfolia i porównał je ze sobą a nie trafił jedynie na gimnazjalistę.

I generalnie do tego najbardziej piję i tutaj widzę największy problem. Dochodzi tutaj jeszcze moja popieprzona ideologia, zgodnie z którą chciałbym, żeby internet był dostępny, strony wygodne i używalne, a korzystanie nowych technologii na polskim rynku nieutrudnione przez "programistuf" z powodu których na serwerach nadal odpalone jest PHP 5.2 i starsze "żeby się skrypt nie wywalił" (o dostępie do Railsów, Django czy node.js to się nawet nie wypowiadam, bo tutaj jak wygląda sytuacja wszyscy wiemy, a małe firmy raczej nie mają ochoty wykupować droższych, porządnych serwerów, na których można by takie coś odpalić)

Niemniej jednak będąc na bieżąco z technologią zawsze powinniśmy być krok przed gimnazjalistami. W końcu raczej nie będą oni w stanie zbudować wysoko wydajnej aplikacji mobilnej, bo nie będą wiedzieli np. co to Node.JS czy nierelacyjne bazy danych.

To fakt, z tym że zapotrzebowanie na tego typu konkretne usługi zdarza się niestety dość rzadko ;)

A z node.js czy NoSQL w kontekście "wysoko wydajnej aplikacji mobilnej" to się akurat nie zgodzę, ale to temat na znacznie szerszą i dłuższą dyskusję, której ten wpis nie obejmuje ;)

(zalinkuję tylko do pytania na stackoverflow i wspomnę, że mam wrażenie, że cały ten ruch NoSQL powstał głównie dlatego, że rozwiązania typu ActiveRecord zrezygnowały z zaawansowanych funkcji RDBMS dla przenośności pomiędzy wersjami przez co faktyczna wydajność takowych baz, która mogłaby być osiągnięta przy zastosowaniu unikatowych-dla-danego-systemu rozwiązań jest zaniżona; z drugiej strony NoSQL świetnie się nadaje do dużych danych tekstowych typu wiki, strony typu db->html itp; jeśli chcesz masz ochotę ciągnąć wątek to lepiej napisz o tym wpis i puść trackback, a tutaj skończmy ten cały offtopic :P)

Krzysztof Kucharski 2012-05-10 17:42

Aktualnie do jednego z moich własnych, prywatnych projektów używam połączenia Bootstrap + HTML5 Boilerplate. Świetnie nadaje się do tworzenia szybkich pół-prototypów, które potem mogą (ale nie muszą) przekształcić się w końcowe UI.

Mike 2013-08-02 13:41

Witam, mam problem z motywem wykorzystującym framework Bootstrap. Na jednej ze stron używam Collapse. Ale nie wydaje mi się, że dziwnie działa:
1) domyślnie 1. box jest otwarty (reszta zamknięte)
2) klikam np 2. lub 3.,4. i otwiera się, ale jednocześnie 1. się zamyka...!! Dlaczego zawsze 1. się zamyka? Muszę spowodować żeby ten pierwszy się nie zamykał. Pomożecie? dajcie znać na michalmałpapiekne-strony.pl

Django i shortcodes

Przeniesione z jogger.pl nie 05 luty 2012 | Tagi: #Django, #Kodowanie, #Techblog

Kilka miesięcy temu pytałem #django-wców na blipie o możliwość wstawiania do treści słów kluczowych, które później byłyby zamieniane na różne dziwne rzeczy. Nikt mi wtedy nie odpowiedział, więc pewnie sprawa nie jest jeszcze zbyt popularna. Ostatnio jednak znalazłem rozwiązanie mojego problemu. Słowo klucz - shortcodes.

Shortcodes to znane przede wszystkim z WordPress-a pseudo tagi, za pomocą których możemy wstawiać w dowolne miejsca w tekście różnego rodzaju obiekty. Np. wykorzystując taki kod:

[gallery id="123" size="medium"]

możemy osadzić galerię pomiędzy dwoma paragrafami tekstu. Odpowiednia aplikacja istnieje też dla Django - django-shortcodes. Instalacja jest bardzo prosta i sprowadza się do kilku kroków:


  1. do katalogu z naszym projektem kopiujemy folder shortcodes

  2. w settings.py dodajemy shortcodes do INSTALLED_APPS

  3. w szablonie, w którym chcemy użyć filtra dodajemy {% load shortcodes_filters %}

  4. do zmiennej, która zawiera nasze słowa kluczowe dodajemy filtr shortcodes np. {{ news.tresc|shortcodes|safe }}

Zmienna zawierająca słowa kluczowe nie musi być wyłącznie tekstem. Może być to HTML wyprodukowany przez jakiś edytor np. TinyMCE. Trzeba tylko pamiętać, żeby najpierw dokonać podmiany słów kluczowych a dopiero później wypluć HTML (kolejność filtrów).

Najważniejszą częścią aplikacji django-shortcodes są parsery znajdujące się w katalogu parsers (domyślnie tylko youtube)

parsers

To one zawierają definicje słów kluczowych, oraz ich parametry. Nazwa pliku parsera definiuje też nazwę słowa kluczowego.

Ok, czas na przykłady, np. YouTube (trochę zmodyfikowany):

YouTube - TinyMCE

Rezultat:

YouTube - podgląd

Napisałem też prosty parser do wstawiania mp3 z pomocą Googlowego odtwarzacza:

[mp3 adres=http://www.luzuj.com/pb/mp3/piwo.mp3]

Odtwarzacz mp3

czy parser osadzający galerię zdjęć:

[galeria numer=1]

Galeria zdjęć

Oczywiście łatwo można też modyfikować wstawiane treści za pomocą różnych parametrów np.

[youtube adres=http://youtu.be/d9NF2edxy-M szerokosc=600 wysokosc=400]

lub

[galeria numer=1 tytul=brak]

Naturalnie to tylko banalne przykłady. Jednak najważniejsze jest to, że każdy może je łatwo dostosować do swoich wymagań i wykorzystać do wstawiania ankiet, wykresów, plików, prezentacji, statystyk czy różnych innych treści, które w normalnych przypadkach wymagałyby użycia skomplikowanego (często generowanego) HTML-a, który byłby kłopotliwy dla różnych edytorów typu TinyMCE.

Strona 1 z 42 | Starsze »