niedziela, 31 marca 2013, 21:53
czwartek, 29 listopada 2012, 07:06
boski ubój
Jako inteligentny ssak i współczujący ateista najchętniej zdelegalizowałbym nie tylko rytualny ubój, ale i wszystkie religie odnoszące się z pogardą do zwierząt, a szczególnie reszty ssaków. Natomiast jako obywatel biednego zacofanego kraju cieszę się, że w ogóle coś eksportujemy (i jeszcze na tym zarabiamy). Niezwykle zasłużona dla humanizacji uboju Temple Grandin ma też sporo cennych uwag dotyczących uboju rytualnego — można się u niej pocieszyć tym, że idealnie poderżnięte zwierzę nawet tego nie zauważa ("It appears that the animal is not aware that its throat has been cut"). No dobra, eksportujmy więc.
Kończąc swój tryptyk rolniczy chciałbym go jakoś optymistycznie podsumować. Jednoczesne zakazywanie upraw GMO i legalizacje uboju rytualnego uważam za objawy zapaści cywilizacyjnej. Tym bardziej przygnębiającej, jeśli dotowanej obficie w ramach WPR (u nas na razie nie, tymczasowo dostajemy dopłaty do hektara, bez związku z efektami). Idąc tą drogą Europa stanie się smętnym zadupiem, a my zadupiem tego zadupia. Do czego od dawna jesteśmy świetnie przygotowani.
wtorek, 27 listopada 2012, 20:03
parcie na wsparcie
W największym skrócie "Zdaniem kontrolerów UE należy ponownie rozważyć zasady rozdziału wsparcia dochodów dla rolników w nowych państwach członkowskich". Proszę przeczytać jak unijne pieniądze trafiają do najbardziej potrzebujących rolników:
Podobnie jak w przypadku SPJ, Trybunał zidentyfikował również beneficjentów pomocy z systemu JPO, którzy prowadzili działalność rolniczą jedynie w wymiarze marginalnym. Przypadki te dotyczą przedsiębiorstw handlu nieruchomościami, lotnisk (Polska i Rumunia), przedsiębiorstw leśniczych, stowarzyszeń łowieckich, klubów rybackich lub klubów narciarskich (Węgry, Polska i Słowacja). Komisja i skontrolowane państwa członkowskie nie dysponują szczegółowymi informacjami dotyczącymi dokładnej liczby takich przypadków i ich skutków finansowych. Na przykład w Polsce Trybunał stwierdził, że 1345 stowarzyszeń łowieckich otrzymało zgodnie z prawem pomoc z systemu JPO za rok 2010 w kwocie 2,54 mln euro w związku z 19 000 ha gruntów rolnych.
Tak więc tylko w 2010 nasze kółka łowieckie (czy jak to się nazywa) dostały ponad 10 mln zł na swoje uprawy. Zgodnie z prawem, a więc słusznie. Myśliwi muszą przecież mieć czym dokarmiać zwierzątka zimą. A zimy bywają u nas srogie.
gmonie
Do Amflory można się uczciwie przyczepić chyba tylko o jedno. Jak większość roślin modyfikowanych genetycznie zawiera bakteryjny gen oporności na kanamycynę (nptII), powszechnie używany w procesie otrzymywania takich roślin i później już zbędny. Ale jest i teoretycznie może wskoczyć do bakterii, dając im odporność na kanamycynę i parę innych antybiotyków aminoglikozydowych (też bez większego znaczenia terapeutycznego, ale zawsze). Praktycznie niemożliwe w warunkach polowych, pewnie nieco bardziej prawdopodobne w jelitach świń mających jednocześnie kłopoty z trawieniem DNA i szprycowanych odpowiednimi antybiotykami. Oczywiście jeszcze się nie zdarzyło i pewnie nie zdarzy, ale wykluczyć przecież nie można. Szczególnie w Polsce, gdzie od zawsze regularnie dzieją się różne cuda. Człowiek nadzwyczaj ostrożny powinien to wziąć pod uwagę.
No cóż, poczekam aż Unia zalegalizuje uprawę jakiejś rośliny modyfikowanej do której nie da się przyczepić absolutnie o nic, poza tym że modyfikowana. Wtedy nie będzie cienia wątpliwości skąd ten naturalny opór przed pożytecznymi wynalazkami.
czwartek, 22 listopada 2012, 21:37
web scraping dla ubogich
1. zainstalować interpretator Lua, najbezpieczniej 5.15. Tak żeby jak się napisze lua w lini poleceń wyskakiwało:
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
2. zainstalować luarocks i potem luacurl (luarocks install luacurl). Można też samo luacurl, chodzi o dostęp z lua do biblioteki curla (każdy porządny człowiek powinien go już mieć na swoim pececie).
3. ustalić na webofostories zakres interesujących stron, od pierwszej do ostatniej. Upewnić się że idą po kolei, bez dziur (nie zawsze tak jest i wtedy trzeba na raty), skoczyć na koniec załączonego skryptu i tam wpisać. Na początek warto sprawdzić na kilku czy w ogóle działa. U mnie zwykle działa. Żeby ściągnąć polskie transkrypcje (są np. przy Edelmanie i Wajdzie) trzeba zamienić transcript%-en na transcript%-pl
4. jeśli działa to puścić skrypt zapisując wszystko na dysku (lua skrypt.lua > plik.html)
-- poniżej ukradłem stąd: https://github.com/mkottman/wdm
pcall(require, 'luacurl')
assert(curl, "curl library not found (luacurl)")
function log(...)
if verbose then
print(...)
end
end
-- HTTP Downloading
do
local c=curl.new and curl.new() or curl.easy_init()
local filters = {}
function addFilter(f) table.insert(filters, f) end
function clearFilters() filters = {} end
do
local f = io.open('cache/TEST.txt', 'w')
if not f then
os.execute('mkdir cache')
else
f:close()
os.remove('cache/TEST.txt')
end
end
local function open(fn, mode)
return bz2 and bz2.open(fn, mode, 9) or io.open(fn, mode)
end
local function getlocal(url)
local path = url:gsub('[^%a%d]', '_')
local f, e = open('cache/'..path)
if f then
local ret = f:read('*a')
f:close()
return ret
end
end
local function writelocal(url, s)
local path = url:gsub('[^%a%d]', '_')
local f = assert(open('cache/'..path, 'wb'))
f:write(s)
f:close()
end
function get(url)
log('[http]', 'get', url)
local cache = getlocal(url)
if cache then return cache end
c:setopt(curl.OPT_URL,url)
local t = {}
c:setopt(curl.OPT_WRITEFUNCTION, function (a, b)
local s
-- luacurl and Lua-cURL friendly
if type(a) == "string" then s = a else s = b end
table.insert(t, s)
return #s
end)
assert(c:perform())
local ret = table.concat(t)
for _,f in ipairs(filters) do
ret = f(ret)
end
writelocal(url, ret)
return ret
end
end
-- koniec ukradzionego
local strona = 'http://www.webofstories.com/play/'
print ('<!DOCTYPE html>')
-- organoleptycznie ustalone zakresy wybranych pogadanek
-- np. Brenner: 13214-13355 52393-52486
-- Klug: 16940-17059
-- Mitchison: 13765-13843 52542-52582
-- poniżej ustawione na ściągnięcie trzech pierwszych kawałków Kluga
for i = 16940, 16942, 1 do -- tu ustaw ręcznie zakres
nr = string.format("%01d",i) -- tu ewentualnie zera przed
local src = get(strona .. nr)
_, _, transc, _ = string.match(src, '(<div id="transcript%-en" class="transcriptText">)(%s+)(.-)(</div>)')
print(transc)
end
DODANE: z pojedynczej strony wyłuskać transkrypt można jednym poleceniem, od tego pewnie warto zacząć, wystarczy tylko curl i lua połączone rurką, np.:
curl http://www.webofstories.com/play/sydney.brenner/161|lua -e '_,_,x,_=string.match(io.read("*all"),[[(<div id="transcript%-en" class="transcriptText">)(%s+)(.-)(</div>)]]) print(x)'
czyli (to samo z zawinięciem linii, bo nie wszystkie przeglądarki zawijają):
curl http://www.webofstories.com/play/sydney.brenner/161|lua -e '_,_,x,_=string.match(io.read("*all"),[[(<div id="transcript%-en" class="transcriptText">)(%s+)(.-)(</div>)]]) print(x)'
Nie wiem dlaczego na Windows w czarnym okienku CMD to nie działa, ale jakoś mnie to nie dziwi, jak ktoś musi na Windows to jest np. bash od Git i pewnie jeszcze wiele innych, których nie sprawdzałem.
DODANE (2018): Jeśli ktoś naprawdę musi na Windows (7/8/10), to polecam MSYS2. W Windows 10 jest też Subsystem for Linux.