Dla programistów: M+ MN Type-1

Cóż pora­bia w dzi­siej­szych cza­sach pro­gra­mi­sta? pyta­cie mnie w roz­licz­nych listach, jakie nie­ustan­nie docie­rają na adres redak­cji. Wydaje się, że naj­wier­niej­szymi fanami są pan Urząd Skar­bowy oraz pan Zakład Ubez­pie­czeń Spo­łecz­nych. Dro­dzy Urzę­dzie i Zakła­dzie, szu­ka­łem fontów.

Czcio­nek! — wyczu­wam obu­rze­nie rodzące się w gło­wie pana w dru­gim rzę­dzie, który po chwili jed­nak pąso­wieje, przy­po­mi­na­jąc sobie, że czcionką nazy­wamy fizyczny nośnik kroju. Taką, par­don, meta­lową wer­sję połówki ziem­niaka — zupeł­nie nie­in­for­ma­tyczny temat, nieprawdaż?

Fon­tów szu­ka­łem w celach bar­dziej nauko­wych, niż arty­stycz­nych czy użyt­ko­wych, jed­nak poszu­ki­wa­nia te przy­nio­sły dość nie­ocze­ki­wany rezul­tat. Posta­no­wi­łem mia­no­wi­cie odświe­żyć swoją zna­jo­mość z rodziną M+, którą zapewne wszy­scy dosko­nale znacie.

Tu nastę­puje dra­ma­tyczna pauza, dzięki któ­rej wszy­scy sły­szą, kto w pośpie­chu nad­ra­bia zaległości…

Teraz już wszy­scy zde­cy­do­wa­nie kiwa­cie głową, dys­kret­nie zer­ka­jąc, czy kole­żanka przy biurku po pra­wej domy­śla się prawdy, a ja wpra­wiam was w więk­sze jesz­cze zakło­po­ta­nie, przy­po­mi­na­jąc, że cho­dzi o pro­gra­mi­stów. Posta­no­wi­łem mia­no­wi­cie tytu­ło­wego M+ MN Type-1 użyć w cha­rak­te­rze sys­te­mo­wej czcionki o sta­łej sze­ro­ko­ści. Efekt? Pierw­sze objawy uzależnienia.

Zobacz­cie zresztą sami (pio­nowa linia wyzna­cza gra­nicę 80 kolumn):

Dla porów­na­nia Droid Sans Mono:

Toż to wygląda, jak moje pierw­sze ATARI zakrzykną na widok dru­giego obrazka ci bar­dziej spo­strze­gaw­czy, a słusz­no­ści ich sło­wom odmó­wić nie spo­sób. Idź­cie przeto i krzew­cie dobrą nowinę pośród ludu swego. Czyż nie zostało bowiem powie­dziane poznasz pro­gra­mi­stę złego po roz­la­złym fon­cie jego?

Styczniowe zmiany w Centrum Faktur

CentrumFaktur - Faktury i oferty. Lepiej.

Dzi­siaj — dokład­nie mie­siąc po ostat­niej aktu­ali­za­cji — udo­stęp­ni­li­śmy kolejną aktu­ali­za­cję Cen­trum­Fak­tur. Mię­dzy innymi poja­wiły się fak­tury zalicz­kowe, o które część z was prosiła.

Wię­cej infor­ma­cji na blogu Miru­mee. A teraz, jako że nadal nie jestem wła­ści­cie­lem Cen­trum­Fak­tur, czas usiąść do kolej­nego projektu.

Cmentarnie: GRUBGRUB2

Wczo­raj, za namową qwiata, zro­bi­łem kolejną przy­miarkę do dru­giego wcie­le­nia GRUBa. Tym razem zako­cha­łem się nie­mal i nie chcę za nic wracać.

Auto­ma­tyka wykry­wa­jąca kon­fi­gu­ra­cję PLD działa zna­ko­mi­cie, a po napo­tka­nych daw­niej błę­dach w oko­li­cach obsługi LVM nie pozo­stał nawet ślad. Na popar­cie swo­jego sta­no­wi­ska wspo­mnę tylko, że dziś rano, pierw­szy raz od lat, pozby­łem się par­ty­cji /boot. Dotąd musia­łem trzy­mać osobną, 30-megabajtową par­ty­cję na ext2, gdyż pierw­sze wcie­le­nie GRUBa nie radziło sobie ani z xfs, ani z LVM.

Howto

Insta­la­cja:

# grub-install /dev/sda
# grub-setup '(hd0)'
# update-grub

Po zmia­nie jądra:

# update-grub

Ten ostatni krok już nie­długo sta­nie się zbędny.

Jeśli ktoś jesz­cze zwleka, to naprawdę nie ma na co cze­kać. Oczy­wi­ście, są jesz­cze użyt­kow­nicy LILO, ale ich sza­nu­jemy. Jeśli pozo­stałe pro­jekty GNU będą roz­wi­jać się tak pręż­nie, to są szanse na uży­walną wer­sję HURD jesz­cze zanim prze­pełni się 32-bitowy znacz­nik czasu ;)

Życzenia na nowy rok

Jak wszy­scy, to ja też. Tylko nieco bar­dziej przy­ziem­nie. Nie życzę sobie nowych star­tu­pów, chru­pią­cych pod­kła­dek i web3.0.

Chciał­bym przede wszyst­kim, żeby nasze wspa­niałe prawo zaczęło nadą­żać za realiami, a nie tylko szu­kać nowych sta­no­wisk pracy dla urzęd­ni­ków. Żeby pra­wo­dawcy obu­dzili się jutro z potęż­nym kacem i w chwili reflek­sji pomię­dzy Ibu­pro­mem a sede­sem zadali sobie jedno zaje­bi­ście ważne pyta­nie: po jaką cholerę?

  • Dla­czego fak­tura elek­tro­niczna wymaga pod­pisu kwa­li­fi­ko­wa­nego, gdy na papie­ro­wej nie potrzeba nawet pieczątki?

  • I po co nam insty­tu­cja fak­tury elek­tro­nicz­nej, wszak istotę fak­tury VAT sta­nowi jej zawar­tość, nie forma. Czy powin­ni­śmy spo­dzie­wać się oddziel­nej regu­la­cji fak­tury na różo­wym papie­rze z logo firmy w pra­wym gór­nym rogu?

  • Po co nam imienny cer­ty­fi­kat przy skła­da­niu podań? Prze­cież to sprzę­towy odpo­wied­nik pod­pisu potwier­dzo­nego nota­rial­nie (choć ustawa jest innego zda­nia, bo nota­riu­sze z cze­goś żyć muszą), a wyma­gamy go w miej­scach, które tra­dy­cyj­nie para­fuje się roz­ma­za­nymi bazgrołami.

  • Dla­czego jed­nostki pań­stwowe i pod­le­głe resor­tom pań­stwa demo­kra­tycz­nego, finan­so­wa­nego z moich pie­nię­dzy, mogą legal­nie zamó­wić opro­gra­mo­wa­nie z wyłącz­nym pra­wem użytku (co powo­duje, że dwa resorty płacą dwa razy za to samo)?

  • Dla­czego w ogóle wolno im zamó­wić wyko­na­nie opro­gra­mo­wa­nia od pod­staw w taki spo­sób, że pań­stwo (nawet sama insty­tu­cja rządu, nie wspo­mi­na­jąc o oby­wa­te­lach) nie posiada żadnych praw do dys­po­no­wa­nia powsta­łym w ten spo­sób kodem? Czy da się ich usta­wowo zmu­sić do uży­cia jed­nej z licen­cji zaak­cep­to­wa­nych przez OSI?

  • Czemu każdy urząd — nawet w wer­sji elek­tro­nicz­nej — wymaga ode mnie poda­nia wszel­kich danych oso­bo­wych do poko­le­nia wstecz, pod­czas gdy jedna z pierw­szych rubryk to PESEL? Czy w dobie szcze­gól­nej ochrony danych oso­bo­wych każdy urzęd­nik musi wie­dzieć, gdzie miesz­kam i jak ma na dru­gie imię mój ojciec? I czemu zaraz obok pola na PESEL muszę podać datę urodzenia?

Wstęp do kultury: nie drzyj mordy

Jest sobie mie­lonka i jest mie­lonka. Rzadko tra­fia mi się spam tak bez­czelny, jak ten, który otrzy­ma­łem już po raz drugi w ciągu ośmiu godzin. W pierw­szym zda­niu czytam:

PROSZĘ O PRZEKAZANIE NINIEJSZEGO LISTU OSOBIE DECYDUJĄCEJ W PAŃSTWA FIRMIE O SPOSOBACH POZYSKIWANIA KLIENTÓW DLA WASZEJ AGENCJI

To ci nowa kul­tura — nawet dziwka powie dzień dobry zanim wypnie dupę. To, że jestem osobą pry­watną i żadnej dzia­łal­no­ści, tra­dy­cyj­nie nikomu nie prze­szka­dza. Patrzę tedy, któż mi takie ścierwo pod­rzuca. I co widzę?

Marian Tuleja, puł­kow­nik… wróć! Sybilla Malina Wąsow­ska, copyw­ri­ter. O r’lyeh? Tak oto wygląda bowiem reszta owo­ców pracy zawo­do­wego kopy­raj­tera (z zacho­wa­niem pisowni i składu):

Sza­nowni Pań­stwo, jestem w posia­da­niu inte­re­su­ją­cych moim zda­niem baz danych (wyspe­cy­fi­ko­wane poni­żej). Na początku listy wypi­sane są bazy, któ­rymi z pew­no­ścią powinni być Pań­stwo zainteresowani:)

Naj­więk­sze kon­cerny w Pol­sce, 1029 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 1029
far­ma­ceu­tyczne kon­cerny, 339 rekor­dów, imię i nazwi­sko osoby decy­zyj­nej, adres email bez­po­średni do niej i nazwa firmy 339
kon­cerny i firmy (głów­nie żywno­ściowe), 3217 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 3217
pro­du­cenci i dys­try­bu­to­rzy ener­gii 6414
spółki akcyjne 1172 rekordy, tylko adres email 1172
pro­du­cenci pro­duk­tów dla kobiet 3710 rekor­dów, tylko adres email 3710
media i wydaw­nic­twa 1266 rekor­dów, tylko adres email 1266
urzędy miast i gmin 528 rekor­dów, tylko adres email 528

dru­kar­nie nie­miec­kie 2641
dru­kar­nie pol­skie 13168
dru­kar­nie szwedz­kie 2910

adwo­kaci, 230 rekor­dów, tylko adres email 230
biura podat­kowe, 6117 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 6117
dewe­lo­pe­rzy 822 rekordy, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 822
elek­tro­in­sta­la­to­rzy 4282 rekordy, dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 4282
firmy mazo­wiec­kie i z woje­wódz­twa śląskiego, 9672 rekordy, tylko nazwa firmy i adres email 9672
hotele 2377 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 2377
hur­tow­nie elek­tro­in­sta­la­cyjne 1407 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 1407
insta­la­to­rzy 1592 rekordy, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 1592
kul­tura agen­cje arty­styczne i even­towe 4673 rekor­dów, tylko adres email 4673
nie­skla­sy­fi­ko­wane 16932 rekordy, tylko adres email 16932
poli­tyka sprawy spo­łeczne 750 rekor­dów, tylko adres email 750
Pro­du­cenci tablic 266 rekor­dów, pełne dane tele­adre­sowe ale bez nazwisk osób decy­zyj­nych 266
Pro­jek­tanci 6571 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 6571
Spół­dziel­nie miesz­ka­niowe 1486 rekor­dów, pełne dane tele­adre­sowe 1400
Sta­cje obsługi 3257 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 3257
szkoły wyż­sze 514 rekor­dów, tylko adres email 514
webma­stre­rzy i agen­cje inte­rak­tywne 779 rekor­dów, tylko adres email 779
Wodo­ciągi 2010 rekor­dów, pełne dane tele­adre­sowe wraz z imie­niem i nazwi­skiem osoby decy­zyj­nej 2010
archi­tekci 3223
biura pro­jek­towe 10616
drewno klienci koń­cowi 719
drewno maszyny do obróbki przed­sta­wi­ciele 259
metal klienci koń­cowi 968
metal maszyny do obróbki przed­sta­wi­ciele 267
two­rzywa sztuczne maszyny przed­sta­wi­ciele 186
zachod­nio­po­mor­skie kom­pu­tery 705

Się zna­mie­nita copyw­ri­terka napra­co­wała, prawda? Nomi­na­cja do Pulit­zera to tylko kwe­stia czasu, kiedy spam dotrze do komi­sji. Na koniec zaś próba udo­wod­nie­nia, że powyż­sze nie sta­nowi oferty:

Czy chcie­liby Pań­stwo otrzy­mać ofertę cenową na zakup powyż­szej bazy?

Wiesz co? Odpo­wiem kolej­nym cyta­tem z Ciała: idź przy­pu­dro­wać nos.

Dla odmiany religijnie

Cóż, czło­wie­kowi różne rze­czy przy­cho­dzą do głowy. Ostat­nio przy­śnił mi się dyna­miczny sound­track do kom­pu­tera. Dziś co prawda nie cho­dzi o sen, ale powrót z zaku­pów przy­niósł nie­ocze­ki­wa­nie pyta­nie natury religijnej.

Tra­dy­cyjna zasadzka na wie­rzą­cych: czy teo­re­tycz­nie roz­wa­żana wszech­mo­gąca istota byłaby w sta­nie stwo­rzyć kamień, któ­rego nie będzie w sta­nie pod­nieść? Stare i sku­teczne, prawda?

A czy root jest w sta­nie stwo­rzyć plik, któ­rego nie będzie w sta­nie prze­czy­tać? Oczy­wi­ście. Może też prawo czy­ta­nia owego pliku sobie przy­wró­cić. Taką ładną pułapkę logiczną sobie popsułem.

PS: Ci, któ­rzy spo­dzie­wali się notki infor­ma­tycz­nej, mogą w zastęp­stwie poczy­tać sobie o uży­wa­niu bpy­thona z Django.

Logika rozmyta, czyli o godnym przyjmowaniu krytyki

Disc­la­imer: Na wstę­pie chcia­łem ostrzec, że tekst doty­czy moich kon­tak­tów z InFak­tem, który to ser­wis z racji umowy wią­żą­cej mnie z Miru­mee nie­któ­rzy mogą uznać za moją konkurencję.

Cenimy InFakt (i mówiąc my nie mam na myśli ja, wła­ści­ciel Cen­trum­Fak­tur, do czego jesz­cze doj­dziemy). Mamy rów­nież pełną świa­do­mość tego, że sporo firm wła­śnie ich wybrało do wysta­wia­nia fak­tur. Uda­wa­nie, że jest ina­czej, mija­łoby się z celem. Tyle tytu­łem wstępu.

Poja­wili się pierwsi użyt­kow­nicy Cen­trum­Fak­tur i razem z nimi pierw­sze życze­nia. Zupeł­nie nie byli­śmy zdzi­wieni, kiedy ktoś wska­zał na API InFaktu, pro­sząc o doda­nie moż­li­wo­ści importu danych. Dosta­łem link do doku­men­ta­cji, dosta­łem dane dostę­powe do konta, zabra­łem się do pracy.

Zaczęło się od doku­men­ta­cji, czy może raczej doku­men­ta­cji. Plik PDF ma bowiem 3,5 strony i przed­sta­wia cały inter­fejs w pię­ciu pro­stych punk­tach. Akcent na słowo pro­stych pada celowo, gdyż auto­rowi udało się pomi­nąć wiele jakże nud­nych kwe­stii tech­nicz­nych, sku­pia­jąc się na szli­fo­wa­niu swego kunsztu literackiego.

Chcia­łem niniej­szym nomi­no­wać API InFaktu do nastę­pu­ją­cych wyróżnień:

  • Pierw­sza doku­men­ta­cja API w XML, która nie zawiera ani jed­nego znaku < — to zadzi­wia­jące, ale auto­rowi udało się opi­sać apli­ka­cję XML bez choćby wspo­mi­na­nia jej schematu.
  • Pierw­sza doku­men­ta­cja API, gdzie struk­turę XML zapi­sano w postaci tablicy mie­sza­ją­cej PHP Rubiego — to rów­nież nie żart, spo­dzie­wam się, że wer­sja 0.7 w ramach dywer­sy­fi­ka­cji wpro­wa­dzi rów­nież JSONYAML.
  • Jedyna doku­men­ta­cja API, gdzie pra­wie wszyst­kie nazwy ele­men­tów zostały podane błęd­nie — autor, choć zapo­mniał o udo­ku­men­to­wa­niu struk­tury, przy­ta­cza nazwy ele­men­tów w rodzaju <nazwa_firmy/>, zupeł­nie nie prze­szka­dza mu fakt, że w rze­czy­wi­sto­ści ele­ment ten to <nazwa-firmy/>.
  • Jedyne API, które do dostępu wymaga, oprócz klu­cza, poda­nia loginu i hasła — czemu nie chcemy uży­wać loginu i hasła w dostę­pie do API? Aby w razie czego łatwo i bez ryzyka odciąć dany pro­gram. Zatem wpro­wadźmy klu­cze i wtedy wystar­czy zmie­nić klucz, a autor apli­ka­cji, nie zna­jąc loginu i hasła… wróć, o szit, o szit, o fak.

Zamiast sen­sow­nego opisu, mamy doku­men­ta­cję przez imple­men­ta­cję. Doku­men­ta­cję posta­no­wi­łem zatem w skró­cie nazy­wać doku. W skró­cie od do kurwy nędzy. Cóż, przy­naj­mniej nie użyli SOAP (któ­rego to pro­to­kołu nazwa słusz­nie suge­ruje roz­ko­sze koja­rzone ze schy­la­niem się pod prysz­ni­cem). Bywa i tak, damy radę. Rach-ciach-ciach i… dupa.

401 Unauthorized

No nie wie­rzę, że nie umiem w trzech linij­kach zro­bić Basic Auth.

Spraw­dzam ponow­nie, kod wygląda ok — podać login i hasło-sklejone-z-kluczem do modułu auto­ry­za­cji, wywo­łać GET, wydru­ko­wać wynik (a potem napi­sać sobie samemu doku­men­ta­cję sche­matu). Biorę przy­kład InFaktu, napi­sany w PHP (z wła­snym klien­tem HTTP, stwo­rzo­nym w tech­no­lo­gii Copiego-Paste’a, włącz­nie). Zmie­niam login, zmie­niam hasło, zmie­niam klucz. Uru­cha­miam, dupa. Mam już dwie dupy i wciąż ani jed­nego klienta, żyć nie umierać.

Pytam na Bli­pie, tu zaczęła się praw­dziwa przy­goda. Zaczęło się dość sympatycznie:

Tak to jest jak kon­ku­ren­cja czyta API:-) Powiedz co dokład­nie Ci nie działa

InFakt, Blip

Po chwili odbi­ja­nia piłeczki (nie lubimy nie­czy­stej gry) dowie­dzia­łem się, że jestem wła­ści­cie­lem Cen­trum­Fak­tur. Otóż nie jestem, jak­kol­wiek by się przy tym nie upie­rać, wła­ści­cie­lem Port­feo i Cen­trum­Fak­tur jest Miru­mee. Na pie­czątce, którą mam przed sobą, stoi Miru­mee Software, Miro­sław Men­cel. Ja naj­bli­żej literki M byłem, gdy nada­wano mi dru­gie imię Michał, któ­rego jed­nak nie używam.

Wszel­kie próby doga­da­nia się na szcze­blu tech­nicz­nym (ze wska­za­niem na fakt, że nie naru­szam regu­la­minu InFaktu włącz­nie) speł­zły na niczym. Dys­ku­sja na pozio­mie a my i tak wiemy lepiej, Bal­ce­ro­wicz musi odejść.

Wresz­cie roz­mowa prze­ra­dza się w rasowy flejm ze sto­sowną argu­men­ta­cją w komplecie:

Brawo!! Mamy pełny obraz :-) Przy­go­to­wu­je­cie kopię Infakt, nasy­ła­cie kole­gów do czar­nego pr i uwa­ża­cie że infakt jest be. Bomba

InFakt, Blip

Otóż wierz­cie mi Pań­stwo, że w obli­czu zasta­nego pro­fe­sjo­na­li­zmu, czarny PR roz­daję cał­kiem cha­ry­ta­tyw­nie. Tro­chę pokory, pano­wie. Fak­tycz­nie, InFakt mocno przy­czy­nił się do powsta­nia Cen­trum­Fak­tur. Byłem przy tym, to wiem. A skoro wiem, to opowiem.

Pra­co­wa­łem ci ja sobie spo­koj­nie nad Port­feo, kiedy to zaist­niała w eki­pie Port­feo potrzeba regu­lar­nego wysta­wia­nia fak­tur VAT. Wobec tego Mirek bez zasta­no­wie­nia (idąc za gło­sem reko­men­da­cji) zało­żył konto na InFak­cie (w jakże dosko­nale zaka­mu­flo­wa­nej dome­nie portfeo.infakt.pl, co dowo­dzi naszego prze­bie­głego szpie­go­stwa). Po paru pró­bach uży­cia oka­zało się, że ser­wis nie speł­nia jego ocze­ki­wań i zapro­po­no­wał mi kon­trakt na stwo­rze­nie alter­na­tywy. Dwa pod­pisy póź­niej konto na InFak­cie wyszło z użycia.

Ot i cała histo­ria inspi­ra­cji, jakiej dostar­czył nam InFakt. Histo­rie o kopio­wa­niu inter­fejsu czy moż­li­wo­ści pro­po­nuję wło­żyć mię­dzy bajki. Tro­chę pokory, do bajek wró­cimy, kiedy w przy­szłym roku InFakt udo­stępni moduł ofer­to­wa­nia. Co zaś się tyczy inspi­ra­cji, to wzo­ro­wa­li­śmy się na Bal­l­parku i nie wsty­dzimy się tego zupeł­nie — wszak jeśli się uczyć, to od lep­szych od siebie.

Koniec koń­ców zda­wało się, że wczo­raj sytu­acja się unor­mo­wała. API InFaktu zaczęło magicz­nie dzia­łać (bez zmian w kodzie z mojej strony), więc uzna­łem, że z admi­ni­stra­tora zeszło ciśnie­nie i nas odblo­ko­wał. Dziś jed­nak cyrk zaczął się na nowo, a do mnie wpa­dły (mię­dzy innymi) takie wiadomości:

Ujaw­ni­li­śmy publicz­nie Wasze nie­etyczne zacho­wa­nie. Pró­bu­je­cie wyko­rzy­stać nasze API do trans­feru Klien­tów. Żało­sne ale prawdziwe.

InFakt, Blip

Infakt udo­step­nił API publicz­nie, nikomu nie blo­kuje dostępu, nawet Wam, tym któ­rzy szu­kają drogi na skróty w zdo­by­wa­niu Klientów

InFakt, Blip

Nie mam poję­cia, kto we wspo­mnia­nym wcze­śniej ser­wi­sie ope­ruje kon­tem ^infakt, ale z całą pew­no­ścią nie przy­słu­guje się wize­run­kowi firmy. Gdy­bym był zło­śliwy, to napi­sał­bym, że limit 160 zna­ków suge­ruje, że może to być autor doku­men­ta­cji. Ale nie jestem, prawda?

Drogi użyt­kow­niku ^infakt, spie­szę poin­for­mo­wać, że twoja logika nie trzyma się kupy. W jakiż to spo­sób Cen­trum­Fak­tur mia­łoby ukraść wam użyt­kow­ni­ków? Emak­sem przez send­mejla (potrójna ścianka ognia) zdo­być wszyst­kie loginy i hasła, wyge­ne­ro­wać klu­cze API i doko­nać migra­cji na siłę? No bo, pro­szę ja was, po mojemu to dane klien­tów i fak­tury są wła­sno­ścią firmy, a nie InFaktu i user ma prawo je sobie migro­wać gdzie chce.

Wer­sja dla opor­nych: użyt­kow­nicy muszą naj­pierw samo­dziel­nie zało­żyć konto w Cen­trum­Fak­tur, następ­nie wpi­sać z wła­snej nie­przy­mu­szo­nej woli dane do logo­wa­nia i naci­snąć przy­cisk Impor­tuj. Nikt tu nikogo pod pisto­le­tem nie trzyma. Kiedy skoń­czę pra­co­wać nad API Cen­trum­Fak­tur, będzie­cie mile widzia­nym jego konsumentem.

Ape­luję zatem: tro­chę dystansu. Cen­trum­Fak­tur z pew­no­ścią daleko jest do ide­ału, ale nie widzia­łem, żeby Mirek z tego powodu naska­ki­wał na kry­ty­ków. Wasze API aż prosi się o sen­sowną doku­men­ta­cję i pozby­cie się logi­nów i haseł (co na Bli­pie suge­ro­wa­łem rów­nie grzecz­nie, co bez­sku­tecz­nie). Mam rów­nież nadzieję, że pra­cow­nicy InFaktu będą łaskawi zejść wresz­cie z moich ple­ców, bo wierz­cie mi, że licy­ta­cję na tech­niczne nie­do­róbki można kon­ty­nu­ować, ale nie przyj­dzie to z zyskiem dla żadnej ze stron.

Nowy serwis: CentrumFaktur.pl

Faktury i oferty. Lepiej.

Jakiś czas temu pyta­łem na Bli­pie, czy ist­nieje ser­wis, który potrafi wysta­wiać fak­tury w obcej walu­cie w spo­sób zgodny z pra­wem. Na przy­kład InFakt wbrew prawu nie prze­li­cza wszyst­kich kwot VAT na złotówki.

Widać naj­le­piej zro­bić wszystko samemu. Odda­li­śmy się tedy pasjo­nu­ją­cej lek­tu­rze prze­pi­sów doty­czą­cych podatku VAT. Pole­cam szcze­rze tę formę roz­rywki, zwłasz­cza porów­ny­wa­nie poszcze­gól­nych prze­pi­sów z funk­cjami ofe­ro­wa­nymi przez poszcze­gólne ser­wisy do fakturowania.

Wczo­raj uru­cho­mi­li­śmy (a raczej Miru­mee uru­cho­miło) wła­sną apli­ka­cję do wysta­wia­nia i zarzą­dza­nia ofer­tami i fak­tu­rami: Cen­trum­Fak­tur. Myślę, że śmiało mogli­by­śmy rekla­mo­wać się hasłem, że jako jedni z nie­licz­nych znamy sto­sowne przepisy.

Przy oka­zji dorzu­ci­li­śmy pro­sty sys­tem skła­da­nia ofert, gdzie klient ma moż­li­wość wymiany komen­ta­rzy doty­czą­cych kosz­to­rysu i jego final­nej akcep­ta­cji. Nigdy wię­cej nie usły­szy­cie, że wasz ulu­biony klient — sym­pa­tyczny pan Kazi­mierz — pierw­szy raz na oczy widzi takie ceny.

Czy mogę napi­sać coś wię­cej? Nie będę opo­wia­dał o nie­sa­mo­wi­tym bez­pie­czeń­stwie, potrój­nych ścian­kach ognia i plat­for­mie tech­no­lo­gicz­nej tak zaawan­so­wa­nej, że kry­zys sam się cofa, a syner­gia je nam z ręki. Jeśli wła­śnie zakła­da­cie dzia­łal­ność albo nie jeste­ście zado­wo­leni z uży­wa­nego dotych­czas pro­gramu, to zapra­szamy do korzy­sta­nia z naszych usług.

PLD Linux: KMS

Jeśli każda próba uży­cia KMS koń­czy się czar­nym ekra­nem, praw­do­po­dob­nie potrze­bu­jesz tego samego, co ja.

Na począ­tek na warsz­tat bie­rzemy plik /etc/sysconfig/geninitrd. Tam istotne są dwa wiersze:

PREMODS="fbcon"
FBMODULE="nouveau"

Oczy­wi­ście, nouveau należy zastą­pić modu­łem ade­kwat­nym do posia­da­nego sprzętu.

Następ­nie two­rzymy plik /etc/modprobe.d/kms.conf o treści:

options nouveau modeset=1

Oczy­wi­ście, tu rów­nież pod­sta­wiamy sto­sowny moduł.

Na koniec gene­ru­jemy za pomocą geninitrd nowy obraz star­towy i uru­cha­miamy ponow­nie kom­pu­ter. Voilà!

Romantyczne danie dla dwojga: hot-dog à la cuda techniki

Niniej­szym pre­zen­tuję pierw­szy w histo­rii tego bloga prze­pis. Nie pani­kuj­cie jed­nak, jest to prze­pis godny informatyka.

Sprzęt i składniki

  • Mikro­fa­lówka z funk­cją grilla (opiekacz/funkcja crisp)
  • Bułki do hot-dogów (2–4 na głowę)
  • Parówki (np. Ber­linki z ostrym chili albo parówki sojowe)
  • Ser gouda
  • Pikle
  • Cebula
  • Sałata
  • Pra­żona cebulka (gotowa, w słoiczku)
  • Keczup
  • Musz­tarda

Przy­go­to­wa­nie

Czas przy­go­to­wa­nia: 5 minut na por­cję. Jed­no­cze­śnie mogą jeść 2 osoby.

Dwie bułki naciąć. Uło­żyć zamknięte na pod­stawce do opie­ka­nia, obok nich uło­żyć dwie parówki. Opie­kać przez 1–1,5 minuty. Następ­nie bułki odwró­cić i opie­kać ponow­nie przez 1–1,5 minuty.

Po wyję­ciu bułki otwo­rzyć i posma­ro­wać musz­tardą. Następ­nie umie­ścić w nich parówki i poło­żyć na nich po dwa pla­sterki sera. Wyłą­czyć w mikro­fa­lówce tryb gril­lo­wa­nia i całość pod­grze­wać przez około minutę, do sto­pie­nia sera.

Po wyję­ciu do środka wło­żyć liść sałaty, 1–2 pla­sterki cebuli i pikle. Całość polać keczu­pem i posy­pać pra­żoną cebulką.

Zeżreć hot-dogi, następ­nie wszyst­kie czyn­no­ści powtó­rzyć. Robie­nie więk­szej ilo­ści jed­no­cze­śnie mija się z celem, bo jedze­nie szybko stygnie.

Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Poland
This work by Patryk Zawadzki is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Poland.