Hands free python setup on windows

Windows does not have package manager. Not sure why is that since Windows Marketplace is here since 2004… but that’s another story. So for silent/unattended python install you have to stick to scripting a little bit, but thanks to Powershell it’s quite simple.

(new-object System.Net.WebClient).DownloadFile("https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi", "$pwdpython-2.7.6.msi"); msiexec /i python-2.7.6.msi TARGETDIR=C:Python27 /qn ALLUSERS=1
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:Python27;C:Python27Scripts", "User")
(new-object System.Net.WebClient).DownloadFile("https://raw.github.com/pypa/pip/master/contrib/get-pip.py", "$pwdget-pip.py"); C:Python27python.exe get-pip.py virtualenv

Remove /qn ALLUSERS=1 to show installer UI.

(new-object System.Net.WebClient).DownloadFile("https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi", "$pwdpython-2.7.6.msi"); msiexec /i python-2.7.6.msi TARGETDIR=C:Python27
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:Python27;C:Python27Scripts", "User")
(new-object System.Net.WebClient).DownloadFile("https://raw.github.com/pypa/pip/master/contrib/get-pip.py", "$pwdget-pip.py"); C:Python27python.exe get-pip.py virtualenv

Debugging Jinja2 templates in Google App Engine

Jinja2 needs some python modules that are forbidden in the python sandbox provided by Google App Engine. Fortunately its fairly easy to white list them in the SDK local development server — currently there is no workaround for production.

PRODUCTION = not os.environ.get('SERVER_SOFTWARE', '').startswith('Dev')
if not PRODUCTION:
    # enable jinja2 debugging info in GAE SDK
    from google.appengine.tools.devappserver2.python import sandbox
    sandbox._WHITE_LIST_C_MODULES += ['_ctypes', 'gestalt']

The original workaround is not working on the new development server aka devappserver2.

Popup z informacją o ciasteczkach

Nowelizacja ustawy z dnia 16 lipca 2004 r. Prawo telekomunikacyjne w art. 173 wprowadza obowiązek informowania o przechowywaniu informacji na “urządzeniu końcowym” użytkownika, o ile nie jest to wymagane do świadczenia usług.

IMO trzeba jeszcze poczekać na pierwsze wyroki by np. czy o Google Analytics już trzeba informować, czy można je uznać za ciasteczka techniczne. Niemniej jednak jeśli chcemy dmuchać na zimne to można stosunkowo łatwo wrzucić taki mało inwazyjny popup.

Zapraszam do grzebania i dostosowania do własnych potrzeb:
http://jsfiddle.net/WDmqR/

…a poniżej art. który jest powodem zamieszania.

1. Przechowywanie informacji lub uzyskiwanie dostępu do informacji już przechowywanej w telekomunikacyjnym urządzeniu końcowym abonenta lub użytkownika końcowego jest dozwolone, pod warunkiem że:

1) abonent lub użytkownik końcowy zostanie uprzednio bezpośrednio poinformowany w sposób jednoznaczny, łatwy i zrozumiały, o:

a) celu przechowywania i uzyskiwania dostępu do tej informacji,
b) możliwości określenia przez niego warunków przechowywania lub uzyskiwania dostępu do tej informacji za pomocą ustawień oprogramowania zainstalowanego w wykorzystywanym przez niego telekomunikacyjnym urządzeniu końcowym lub konfiguracji usługi;

2) abonent lub użytkownik końcowy, po otrzymaniu informacji, o których mowa w pkt 1, wyrazi na to zgodę;
3) przechowywana informacja lub uzyskiwanie do niej dostępu nie powoduje zmian konfiguracyjnych w telekomunikacyjnym urządzeniu końcowym abonenta lub użytkownika końcowego i oprogramowaniu zainstalowanym w tym urządzeniu.

2. Abonent lub użytkownik końcowy może wyrazić zgodę, o której mowa w ust. 1 pkt 2, za pomocą ustawień oprogramowania zainstalowanego w wykorzystywanym przez niego telekomunikacyjnym urządzeniu końcowym lub konfiguracji usługi.

3. Warunków, o których mowa w ust. 1, nie stosuje się, jeżeli przechowywanie lub uzyskanie dostępu do informacji, o której mowa w ust. 1, jest konieczne do:

1) wykonania transmisji komunikatu za pośrednictwem publicznej sieci telekomunikacyjnej;
2) dostarczania usługi telekomunikacyjnej lub usługi świadczonej drogą elektroniczną, żądanej przez abonenta lub użytkownika końcowego.

4. Podmioty świadczące usługi telekomunikacyjne lub usługi drogą elektroniczną mogą instalować oprogramowanie w telekomunikacyjnym urządzeniu końcowym abonenta lub użytkownika końcowego przeznaczonym do korzystania z tych usług lub korzystać z tego oprogramowania, pod warunkiem że abonent lub użytkownik końcowy:

1) przed instalacją oprogramowania zostanie poinformowany bezpośrednio, w sposób jednoznaczny, łatwy i zrozumiały, o celu, w jakim zostanie zainstalowane oprogramowanie, oraz sposobach korzystania przez podmiot świadczący usługi z tego oprogramowania;
2) zostanie poinformowany bezpośrednio, w sposób jednoznaczny, łatwy i zrozumiały, o sposobie usunięcia oprogramowania z telekomunikacyjnego urządzenia końcowego użytkownika lub abonenta;
3) przed instalacją oprogramowania wyrazi zgodę na jego instalację i używanie.

Optymalizacja AdWords

2013-02-07 11-06-24

W AdWords płacisz za kliknięcie w reklamę, cenę tego kliknięcia ustalasz Ty — administrator kampanii reklamowej AdWords. Ustalając cenę kliknięcia bierzesz udział w aukcji dotyczącej wyświetlenia reklamy dla wybranego słowa kluczowego.

Dlatego ustalenie niskiej ceny za kliknięcie gwarantuje, że zapłacisz mało jednak nie gwarantuje, że Google wyświetli Twoją reklamę, bo być może inny administrator ustalił wyższą cenę kliknięcia i tym samym Ciebie przelicytuje.

To są podstawy konfiguracji kampanii AdWords.

Zwiększanie szansy na wygraną w licytacji bez podnoszenia ceny

Google podczas wybierania zwycięzcy aukcji na słowie kluczowym, prócz ceny, kieruje się także jakością strony docelowej i jej dopasowania do słowa kluczowego. Okazuje się, że optymalizacja pod kątem wyszukiwarek (SEO) przyczynia się także do zmniejszenia kosztów reklam. Dzięki temu możemy wygrać licytację na słowie kluczowym nawet oferując mniejszą cenę za kliknięcie niż inne stosunkowo gorsze strony.

2 grosze za kliknięcie

Prowadzę edziennik i bez wykorzystania pozycjonowania oferowanego przez rożnego rodzaju usługodawców (które większości jest black hat) udało mi się zejść z ceną za kliknięcie do 2 groszy.

Gdy dużo ruchu przychodzącego generuje AdWords to warto optymalizować swoją stronę bo dzięki temu bez ponoszenia dodatkowych kosztów w tym samym budżecie reklamowym możemy mieć większy ruch. Oczywiste, prawda?

Optymalizujemy!

Podstawy, w skrócie:

  • Strona musi być związana z tym czego dotyczą słowa kluczowe.
  • Musi być czytelna.
  • Musi być atrakcyjna.
  • Powinna mieć linki przychodzące (najlepiej o treści słów kluczowych lub zbliżonych)
  • ze stron, które same dotyczącą słów kluczowych.
  • Twój serwis powinien mieć w treści linki wewnętrzne, które pozwolą na łatwe poruszanie się odwiedzającym.
  • Tytuły stron powinny być czytelne i nie zawierać śmieci.

Optymalizację można to zrobić samemu, można korzystając z profesjonalnych usług. Jednak przy wykorzystaniu usług firm zewnętrznych należy się pytać jak zamierzają pozycjonować Twoją stronę.

Kupujemy usługi

W przy przypadku SEO trudno wciskać kit, ale pozycjonowanie zwykle jest obłożone „tajemnicą zawodową”, a pod przykrywką tajemnicy ci „profesjonaliści” zwyczajnie spamują. Takie pozycjonowanie nie jest trwałe, bo spam blogi i farmy linków mogą zostać usunięte lub oflagowane przez Google. Dlatego musimy ciągle płacić za takie pozycjonowanie (jeśli przestaniemy to nasz usługodawca skasuje spamblog/farmę linków) i ryzykujemy, że Google nas ukarze za niedozwolone praktyki, usuwając w wyników wyszukiwania w ogóle.

Jak kupujemy usługi domagajmy się kompleksowych raportów co zostało zrobione i gwarancji, że nasza pozycja w wyszukiwarce nie spadnie gwałtownie po tym jak przestaniemy płacić za usługi. Pozycjonowanie nie jest czymś co trzeba robić „ciągle”. Pozycję w wyszukiwarkach się buduje, a potem trzeba ją tylko nieznacznie pielęgnować — nie uzasadnia to płacenia po kilkaset złotych miesięcznie za to, że jesteśmy już na pierwszej stronie wyników Google.

Samodzielnie

Poczytaj o SEO i zoptymalizuj swój serwis, a następnie dbaj o to by inne poważne serwisy coś o Tobie napisały oczywiśćie linkując do Twoich stron :)

Default tuple values

In python you can assign values to a number of variables using tuple unpacking:

foo, bar, baz = some_3_values_tuple

But if the tuple does not have an exact number of values the assignment will fail with ValueError:

>>> some_tuple = 1,2
>>> foo, bar, baz = some_tuple
Traceback (most recent call last):
File "", line 1, in
ValueError: need more than 2 values to unpack

In that case fill up missing values with None:

>>> foo, bar, baz = some_tuple + (None,) * (3 - len(some_tuple))

PS: I like one-liners that can supplement otherwise needed if-elif-else logic :)

Muffiny z malinami i białą czekoladą

Muffinki z malinami i białą czekoladą
Autor (źródełko): Ainsley Harriott
Kategoria: Ciasta.
Składniki:
300 gram mąki pszennej
2 łyżeczki proszku do pieczenia
150 gram ciemnego cukru
1 jajko
zapach waniliowy
225 ml mleka
50 gram stopionego masła
100 gram malin (świeżych, ale ja dałam mrożone prosto z zamrażalnika)
75 gram białej czekolady w kawałkach

mąka+proszek+cukier–wymieszać.
jajko+zapach+mleko+masło–wymieszać.
Składniki suche i mokre połączyć, dodać maliny i czekoladę, delikatnie
wymieszać.
Piec k. 30 minut w 200 st.

http://forum.gazeta.pl/forum/72,2.html?f=77&w=17228206&a=17438292