Wypowiedzi
-
Jeżeli chcemy 'jak google' to można szybko uruchomić sobie serwer openid z gotowca:
* http://wiki.openid.net/w/page/12995226/Run%20your%20ow...
w aplikacjach autoryzację wykonać na podstawie tego serwera openid (też są gotowe rozwiązania).
Akcje wylogowania też powinny prowadzić do akcji w serwerze openid, która dodatkowo wykona wylogowania na wszystkich podpiętych do niej aplikacji (iframe lub seria redirectów, itp), żeby np nie zalogować się równocześnie jaki kilku użytkowników do kilku aplikacji (chyba, że to pożądany efekt).
-
W postgresie można spokojnie użytkownikowi dać uprawnienia do kilku baz. Lub
można użyć schematów do oddzielenia tabel w osobne przestrzenie nazw:
* http://www.postgresql.org/docs/8.4/static/ddl-schemas....
-
Tomasz K.:
Rafał Nowak:
Nieźle wygląda ta makieta. W jakim sofcie została zrobiona?
Makietę i grafiki nie da się robić równolegle, bo grafikę tworzy się właśnie na podstawie makiety. Przykładowa makieta:
Ze swojej strony mogę polecić:
* http://wireframesketcher.com/
ma fajny eksport ekranów lub całego story do pdf'a i przy pomocy linków na elementach można przeklikać projekt, sprawdzając poprawność flow.
-
Piotr L.:
>>
Marek Wywiał:
Do prywatnych projektów używam Boostrapa i sprawuje się świetnie jak dla mnie :)Trzeba by zrobić mały cleanup i tak nagle przyszło mi do głowy:
* czy dla css można zrobić testy, które by sprawdzały czy po refaktoryzacji kodu css, elementy strony wyglądają/znajdują się w stanie sprzed refaktoryzacji?
Ja to robię ręcznie, przy czym staram się tworzyć front end tak, żeby maksymalnie wykorzystać zalety "kaskadowości". Ponadto tworzę HTMLa w sposób "modułowy" (tak, żeby w razie dodawania nowych stron nie trzeba było tworzyć nadmiarowego kodu HTML i CSS) a do CSS wdrożyłem idę "programowania obiektowego" (coś podobnego co proponuje Bootstrap od Twittera)
Selenium może sprawdzić strukturę, ale chyba nie wygląd. Dla FF jest wtyczka pixelperfect i można by sprawdzić jak wygląda screenshot sprzed refaktoryzacji nałożony na aktualną stronę, ale to ręczna praca i wymagany dobry wzrok.
Wygląd olej, jeżeli różnice są pikselowe - ważne, żeby działało, jeden czy dwa piksele różnicy nikomu nie zaszkodzą...
Generalnie też trzymam się tej zasady :) choć czasem klienci wymagają
dość dokładnej grafiki, gdy jest zatwierdzana przez sztab ludzi (np bankujesz kupujesz, itp)
Znalazłem coś takiego, ale jeszcze nie sprawdzałem w działaniu:
* http://needle.readthedocs.org/en/latest/
kilka innych projektów skupiało się na sprawdzaniu czy selektory CSS są używane, itp.
* https://github.com/gagarine/CSSunit
* http://www.cleancss.com/
-
Piotr L.:
Marek Wywiał:
Z ciekawości sprawdziłem jeden z projektów e-commerce:
* 468K w 19 plikach
kopilowane z saas'a:
* 280K w 27 plikach
Ale to webdeveloperzy tym zarządzają, mi został python.
Też nieźle :D pół mega kodu CSS to już jakaś masakra - ciekawe czy naprawdę jest go tyle potrzebne czy ktoś po prostu pisał osobne style do każdej możliwej strony/podstrony :D
Jest kilka typów stron używajacych dedykowanych plików CSS.
Elementy wspólne (w miarę możliwości) są w mixinach (poprzez saas) i w trakcie generowania dla typów kod CSS zostaje zduplikowany w wyjściowych plikach, co widać po różnicy rozmiarów w saas, a w wyjściowym CSS.
Specyfikacja graficzna oczywiście się rozwija, więc teraz pewnie nawet w saas są zbędne powtórzenia.
Trzeba by zrobić mały cleanup i tak nagle przyszło mi do głowy:
* czy dla css można zrobić testy, które by sprawdzały czy po refaktoryzacji kodu css, elementy strony wyglądają/znajdują się w stanie sprzed refaktoryzacji?
Selenium może sprawdzić strukturę, ale chyba nie wygląd. Dla FF jest wtyczka pixelperfect i można by sprawdzić jak wygląda screenshot sprzed refaktoryzacji nałożony na aktualną stronę, ale to ręczna praca i wymagany dobry wzrok.
poszukam :)
-
Piotr L.:
Michał Wachowski:
Piotr L.:
A tak przy okazji: z jakim największym kodem się spotkałeś? Ja miałem "przyjemność" doklejać swój kod do CSSa o długości ponad 60KB :D (ale ja tam zostawiałem tylko kilkanaście linijek)
Wychodzę na prowadzenie: 201KB :)
Nie żebym sam go napisał - ale teraz to ja muszę z nim pracować.
Łomatko 200kilo kodu CSS to już jest kobyła niezła :D Jeden plik czy porozrzucane?
Z ciekawości sprawdziłem jeden z projektów e-commerce:
* 468K w 19 plikach
kopilowane z saas'a:
* 280K w 27 plikach
Ale to webdeveloperzy tym zarządzają, mi został python.
-
-
Paweł Nowosielski:
Witam Pythonowych wyjadaczy :)
Mam dziwny problem, do site-packages dodaję strukturę katalogów:
katalog A / w nim: plik __init__.py oraz katalog B / w B plik __init__.py.
W Pythonie 2.7 to już spokojnie wystarczało aby A było pakietem oraz B "podpakietem" A. Czyli instrukcja "import A.B" działa :)
W Pythonie 3.2 (ActiveState) pakiet A jest widoczny, natomiast B - nie. Powyższy "import A.B" kończy się błędem:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import A.B
ImportError: No module named B
w przypadku ubuntu i python 3.2.2 (cpython) zadziałało ok:
*
-
Jan Janiak:
Marek Wywiał:
Jest to pewien pomysł. Pytania:
Wszystkie aplikacje (sklep, portal, e-learning) muszą używać wspólnego systemu autoryzacji użytkowników. Potrzebujesz aplikacji (osobnej lub może to być jedna z już istniejących, np portal), która obsługuje akcje:
* zarejestruj
* zaloguj
* wyloguj
* zmień hasło
* przypomnij hasło1. Jak bardzo, Twoim zdaniem, złożona jest implementacja OpenID w przypadku PHP?
gotowe serwery openid:
* http://wiki.openid.net/w/page/12995226/Run%20your%20ow...
2. Implementacja Single Sign On / OpenID leży tylko po stronie programistycznej czy wymaga pewnych zabiegów po stronie administratora serwera / sieci?
programista, ew. instalacja certyfikatu SSL gdy jest wymagany)
3. Które z znanych Ci systemów CMS, LMS, e-commerce obsługują Single Sign On / OpenID?
Trzeba poszukać na stronach danego produktu, lub generalnie google dla produktów, które to mają :)
4. Co zaś z pozostałymi funkcjonalnościami klocków / elementów OpenSource i jak zrobić, aby całość ze sobą współpracowała? Przykład: użytkownik kupuje w sklepie dostęp do kursu, ale kurs znajduje się w systemie LMS.
Dodać do sklepu produkty odpowiadające kursom,
osoba zatwierdzająca zapłacone zamówienie może wtedy dodać dostęp do kursu.
Ewentualnie całość zautomatyzować - osobny skrypt towarujący sklep,
i plugin do sklepu tworzący kurs po zapłaceniu zamówienia
5. W jaki sposób w portalu pokazać historię zamówień, która znajduje się w sklepie? Stworzyć własny fragment kodu, potraktować portal jako nakładkę, centralny element serwisu i wyciągać dane z tabel sklepu czy wczytać (tylko jak?) fragment sklepu i wyświetlić listę zawierającą historię zamówień?
Wszystkie powyższe, albo wyciągasz dane z drugiej bazy,
albo w iframe wyświetlasz widok ze sklepu z okrojonym layoutem,
lub wersja pro, tworzysz akcję API (np. rest) do pobrania listy zamówień i wyświetlasz/replikujesz
gdzie potrzebujesz
-
Jan Janiak:
1. Jak te elementy spiąć razem ze sobą?
słowo klucz Single Sign On / OpenID (http://en.wikipedia.org/wiki/Single_sign-on)
Wszystkie aplikacje (sklep, portal, e-learning) muszą używać wspólnego systemu autoryzacji użytkowników. Potrzebujesz aplikacji (osobnej lub może to być jedna z już istniejących, np portal), która obsługuje akcje:
* zarejestruj
* zaloguj
* wyloguj
* zmień hasło
* przypomnij hasło
Pozostałe aplikacje w/w akcje powinny nie obsługiwać same, ale przekierowywać do aplikacji, która będzie się zajmować użytkownikami.
Akcje bardziej złożone to:
* zaloguj
* wyloguj
gdyż muszą poinformować aplikację wywołującą je (lub najlepiej wszystkie aplikacje w pakiecie), że stan użytkownika się zmienił (czyli jest zalogowany lub wylogowany).
Do zalogowania można użyć OpenID, lub można napisać własny system.
W chwili logowania/wylogowania dobrze też jest poinformować pozostałe aplikacje (zależnie od potrzeb/mozliwości przez openid, własne API, czy iframe do akcji np /logout)
Czyli każda aplikacja dzięki OpenID otrzyma własny wpis o uzytkowniku z conajmniej podstawowymi danymi: login, email, imie nazwisko. Pozostałymi danymi specyficznymi dla danej aplikacji (czyli profilem usera w aplikacji) zarządza sama (ew. można jak najwięcej danych umieścić w aplikacji zarządzającej danymi użytkownikami).
W przypadku wybrania OpenID lub jakiegoś podobnego standardu można wybrać aplikacje, które już obsługują taką integrację (łącznie z providerem OpenID) i będzie trochę roboty z głowy.
2. Czy może wykonać taki serwis od podstaw pisząc go w frameworku PHP? Trzeba byłoby tylko stworzyć funkcjonalność, która w podanych wyżej klockach OpenSource już istnieje i jest bezpłatna, gotowa do użycia.
To już jest Twoje wyliczenie kosztów/czasu pracy/możliwości/wiedzy/zasobów i podjęcie decyzji. W tej kwestii niestety nie jestem w stanie pomóc.
Edit:
* http://wiki.openid.net/w/page/12995226/Run%20your%20ow...Marek Wywiał edytował(a) ten post dnia 28.03.12 o godzinie 14:57
-
Jan Puczkarski:
No kolega Marek też dał dobry pomysł, jednak w tym wariancie proszę mi podać wg której kolumny odbywałoby się sortowanie od najświeższych artykułów bo wg slug'ów to nie bardzo to widzę. Tak czy owak kolumna id musi być jeżeli planujemy wykorzystać sortowanie chornologiczne.
w wątku już pojawiły się odpowiedzi.
Jeżeli potrzebujemy sortować w/g daty, np. dodania lub częściej publikacji - która jest całkiem różna od daty dodania rekordu, wtedy sortujemy właśnie w/g dedykowanego temu celowi pola.
Sortowanie w/g id lub w/g slug'a może być potrzebne gdy potrzebujemy posortować slugi alfabetycznie lub id w bazie kolejno, ale nie ma to związku z sortowanie w/g odpowiedniej daty.
Edit: "Tak czy owak kolumna id musi być jeżeli planujemy wykorzystać sortowanie chornologiczne."
id służy tylko i wyłącznie jednoznacznemu identyfikowaniu elementu w bazie.
'ID' może być pojedynczym polem liczbowym z autoincrementem, ale równie dobrze może to być 'slug'
jeżeli jest niepowtarzalny dla wszystkich rekordów (czasem można dopuszczać powtarzanie slug'a w powiązaniu np z kategorią, itp. Zależy to od architektury jaką sobie założyliśmy na potrzeby naszego projektu).
więc ID w jakiejś postaci jest wymagane, ale nie możemy opierać na nim sortowania w/g innych kryteriów (chyba, że naszym id (primary key) jest data utworzenia i system pilnuje by na pewno dodać elementy w różnym czasie, np kolejkując równoczesne zapisy) - się rozpisałem ;)Marek Wywiał edytował(a) ten post dnia 26.03.12 o godzinie 12:58
-
Proponuje skonwertowany ciąg znaków (slug), tworzyć podczas tworzenia elementu w bazie (np artykułu).
Czyli do tabeli dodać pole 'slug' (uniq), i w chwili tworzenia wpisu tworzyć także slug.
Będziesz wtedy mógł go po prostu użyć podczas tworzenia url'a, a zarazem znaleźć element w bazie.
W formatce edycyjnej pole slug można tworzyć automatycznie jeżeli użytkownik go nie podał ( z tytułu), a zarazem można pozwolić na ręczne jego podanie. Można wtedy podać krótszy slug niż tytuł (np tytuł z 200ma znakami) lub bardziej ludzki by ciąg znaków nie wyglądał jak szyfr :)
-
500 Internal Server Error (http://svn.xxxx.pl)
z tego co widzę do uploadu używacie protokołu http. Sprawdź (lub ktoś to ma dostęp) w logach serwera www hostującego repozytoria jaki jest komunikat błędu (np, timeout czy cokolwiek innego).
-
1. pyramid/django
2. Symfony
3. W symfony konfiguracja w .yml i jej 'generowanie' modele w .yml ich generowanie oraz same ograniczenia php czyli mała w porównaniu z python ilość modułów dodatkowych oraz sposób hostowania. Php nie był stworzony z myślą o długo działających procesach i średnio się w tym sprawdza (da się, trzeba pilnować wycieków np memmon'em itp, ale po co się męczyć jak trzeba oddać projekt :))
-
Rafał Lisowski:
ou, ładny status line. Własny czy jakis plugin?
Również polecam. Ten zestaw kolorów jest zajebisty!
Jak komuś się nie chce samemu kombinować to jest gotowy plugin do vima.
ja używam http://github.com/millermedeiros/vim-statline
-
-
Takie coś to chyba każdy choć raz zrobił :) (a może nie?).
Podczas pracy w PST, kolega restartuje swój komputer, terminal, reboot, enter, czekamy ...
i nic, komunikat, że zostałeś odłączony od sesji :)
Zrestartował serwer testowy, do którego był podpięty. No to czekamy aż wstanie .... nic ...
telefon do serwerowni, skąd się dowiadujemy, że jak restartujemy testowy (Red Hat), to trzeba dzwonić,
by ktoś do niego podszedł i kontynuował init ręcznie :D
-
-
kiedyś na swoje uczelniane konto na HP-Uxie zalogowałem się z terminala z win NT
i wykonałem rm *~ i enter. Tyle, że windows wpisuje tyldę dopiero jak się wciśnie potem jakiś kolejny znak ;)
takie szybkie czyszczenie 2MB konta :) od tamtej pory zawsze mam alias:
* drop_back='find . -name '\''*~'\''|xargs rm -f'
-
Krzysztof Kiju Żyliński:
Dawid Rogaczewski:
Arkadiusz Z.:
Marek Wywiał:
Prawie jak Neo ;)
Wersja dla prawdziwych hackerów ;)
W TV zawsze jak jest mowa o jakichkolwiek "Hackierach" to zawsze jest pokazany kawałek kodu HTML z pokolorowaniem i formatowaniem znaczników HTML :P
Oj, lepsze są amerykańskie filmy. Jeśli czarny charakter niecnie kasuje nam dysk (w tym pliki które mamy otwarte - sic!), albo mamy jakiegoś zjadliwego wirusa, to obraz na monitorze się zaczyna rozmywać, digitalizować, powoli znika... Dla mnie to zawsze była wielka radocha :)
albo widać stronę logowanie (full screen, inputy dla user'a i hasła), i gość robi włam waląc w klawiaturę jak opętany ... i w końcu do 'czegoś' dochodzi i jest sukces ;)
jedyny film gdzie praca z komputerem wyglądała normalnie to bodajże Anti Trust
Edit: http://filmaster.pl/film/antitrust/Marek Wywiał edytował(a) ten post dnia 31.01.12 o godzinie 12:13