Sumowanie warunkowe w LibreOffice.

No prosz, myślałem, że nic mnie nie zaskoczy już w takim stopniu, aż tu nagle wtem.

Problem: w pierwszej kolumnie [np. A1:A100] mamy wartości, w drugiej [B1:B100] jakiekolwiek znaczniki [przyjmijmy znak „x”] określające, czy wartość po lewej stronie z kolumny A ma być sumowana. Komórka wynikowa ma zwracać sumę tych komórek z kolumny A, dla których odpowiadające im komórki w kolumnie B posiadają znacznik. SUMA.JEŻELI() w pierwszej chwili odmówiła współpracy, szukając rozwiązania znalazłem coś takiego:

=suma((A1:A100)*(B1:B100="x")). Dowcip polega na zatwierdzeniu całości nie Enterem, ale poprzez Ctrl-Shift-Enter, co powoduje włączenie formuł wektorowych. Prosto, łatwo, elegancko i inspirująco. Pomysł wzięty stąd.

Cesarzowi, co cesarskie – Xerox wyjaśniony.

Sprawa, o której mało parlamentarnie wypowiedziałem się byłem w poprzedniej notce, znalazła swój finał jeszcze na drugi dzień.

Urządzenie działa wreszcie, jak powinno. Człowiek z outsourcingu [eo.pl], w przeciwieństwie do poprzedniej iteracji [osoby podpisującej się jako kseroksowej per se] – wykazał się zainteresowaniem i dociekliwością, przesyłając kompleksowe rozwiązanie zarówno każdorazowego dopytywania się o prawa administratora, jak i problemów pomniejszych. Rozwiązanie szczerze mówiąc dziwne – zadziałał MS Application Compatibility Toolkit; sprawa o tyle dziwna, że samodzielne dodawanie w rejestrze RUNASINVOKER pomogło… ale tylko na koncie administratora [a litrówki we wpisie rejestru sprawdzałem kilkakrotnie]. Na pozostałych kontach nie przyniosło to efektu, a uruchomienie wspomnianej aplikacji – i owszem. No ale mniejsza z tym; ważne, że sprzęt finalnie działa, jak się od niego oczekuje.

Uczucia co do całości – mieszane. W końcu prawidłowa i szybka reakcja wspomnianego outsourcingu, no i najważniejsze – problem rozwiązany. Niesmak co do głuchych telefonów i internetowego lekceważenia klienta w mateczniku kseroksowym – pozostał. Ułożenie zdań we właściwy sposób [„prawidłowa reakcja (…) ale niesmak pozostał” vs. „niesmak pozostał, ale (…) reakcja prawidłowa”] pozostawiam ocenie zainteresowanych.

Note to self.

Aby skonfigurować wpa_supplicant do pracy z sieciami szyfrowanymi WPA2-TKIP, należy w wpa_supplicant.conf skorzystać z opcji pairwise=TKIP. Intuicyjne, rzekłbym. Aby skonfigurować wpa_supplicant do pracy z sieciami szyfrowanymi WPA2-AES, należy w wpa_supplicant.conf skorzystać z opcji pairwise=CCMP. Jeszcze intuicyjniejsze, rzekłbym.

Psiamać, znów straciłem kwadrans mojego życia.

Instalacja i drukowanie HP LaserJet 1005P – Ubuntu 9.10.

Minitutorial dla bardzo początkujących, pisany z pamięci. Oryginał znaleziony na ubuntuforums.

  1. Sprawdzamy , czy mamy zainstalowane pakiety hplip*, jeśli nie, instalujemy je. Zapamiętujemy numer wersji pakietu.
  2. Ze strony http://www.linuxprinting.org/download/printdriver/auxfiles/HP/plugins pobieramy 2 pliki: hp_laserjet_1005_series.plugin oraz hplip_NR_WERSJI-plugin.run, gdzie NR_WERSJI to oczywiście numer zapamiętany z poprzedniego punktu. Zakładam, że zapisaliśmy je w katalogu hp_drv
  3. Instalujemy sterownik, uruchamiając konsolę i wpisując następujące komendy:
    cd hp_drv
    chmod 755 hplip_NR_WERSJI-plugin.run
    sudo ./hplip_NR_WERSJI-plugin.run
    i zatwierdzamy kolejne okienka – szczerze mówiąc nie jestem pewien, czy instalacja musi odbywać się z wykorzystaniem sudo, ale pomińmy to milczeniem 😉
  4. pozostając w konsoli, wpisujemy komendę hp-setup, wykonując podane na ekranie polecenia.

Po wykonaniu powyższego, podpięciu i włączeniu drukarki, nasze Ubuntu powinno wykryć ją bezproblemowo w opcji System -> Administracja -> Drukowanie. Z przyczyn mi nieznanych testowa strona nie zadziałała mi przy instalacji, ale później wszystko działa [od dwóch godzin] bez zarzutu.

Drobiażdżki do klawiatury.

Jeśli jesteście akurat właścicielami klawiatury bezprzewodowej, prawdopodobnie nie posiada ona wskaźników informujących o stanie NumLocka, ScrollLocka i CapsLocka. Rozwiązanie tej denerwującej przypadłości nazywa się lock-keys-applet [piszę o tym, bo dzisiaj szukałem tego pół minuty za długo] i wyświetli wskaźniki stanu tych klawiszy na dowolnie wybranym pasku. A parę minut wcześniej matthew napisał o zawsze włączonym NumLocku, linkuję przy okazji.

Ubuntu Intrepid, dzielenie drukarki i drukowanie sieciowe dla komputerów z Windows XP.

Przy okazji „note to self” zrobiłem na kolanie tłumaczenie https://help.ubuntu.com/community/NetworkPrintingFromWinXP, a nuż widelec komuś [poza mną] się przyda – stąd zresztą keywordy w tytule 🙂 Pod koniec wzbogaciłem to o własne komentarze, gdyby ktoś ich potrzebował tak, żeby było to w miarę kompletnym HOWTO dotyczącym udostępniania drukarki podpiętej do komputera z Ubuntu dla komputerów w sieci, korzystających z Windows. Proszę o komentarze, jeśli komuś pomógł ten niusolds albo jeśli znajdziecie jakiś błąd.

Ten sposób, o ile dobrze pamiętam, działał również w starszych wersjach Ubuntu, więc poza ew. rozmieszczeniem opcji w interfejsie system-config-printer wszystko powinno wyglądać i działać tak samo.

Na komputerze z Ubuntu, do którego podłączona jest drukarka:

  1. Upewnij się, że drukarka została zainstalowana lokalnie.
  2. Otwórz okno Drukowanie [System - Administracja - Drukowanie].
  3. Wybierz opcję Serwer -> Ustawienia z menu.
  4. Zaznacz opcję Publikowanie współdzielonych drukarek podłączonych do tego systemu i naciśnij OK.
  5. Na liście drukarek, kliknij prawym przyciskiem myszy na drukarkę, którą chcesz udostępnić, i wybierz Właściwości.
  6. Wybierz Polityki i upewnij się, że wszystkie 3 opcje [Włączona, Akceptowanie zadań i Współdzielona] są zaznaczone.
  7. Naciśnij „OK” w prawym dolnym rogu okienka.

Na komputerze z Windows, który chcemy podłączyć do udostępnionej drukarki:

  1. Użyj opcji „Dodaj drukarkę” [hmmm… Ustawienia -> Panel sterowania -> Drukarki]
  2. Podłącz drukarkę sieciową i wybierz drukarkę w sieci domowej lub biurowej [ostatnia opcja]
  3. W polu tekstowym wpisz http://<hostname&gt;:631/printers/<printername>

W ostatnim punkcie zamiast <hostname> należy wpisać adres IP komputera udostępniającego drukarkę [można go sprawdzić, wpisując w terminalu ifconfig], a zamiast <printername> – nazwę drukarki w komputerze linuksowym. Można ją sprawdzić, wpisując w przeglądarce komputera linuksowego http://127.0.0.1:631/printers i wybierając drukarkę w pokazującym się oknie. printername to nazwa drukarki po ostatnim „/”, a przed parametrami, czyli „?”. U mnie jest to hp-5550.

Jeśli podamy błędny adres i otrzymamy komunikat o niemożności podłączenia drukarki, lepiej nie próbować wpisywać go raz jeszcze – choć oczywiście może się udać – tylko od razu zrestartować Windows, chyba że ktoś uważa takie wyjście za mało ambitne 😉

Po podaniu tych informacji Windows poprosi o wskazanie drukarki albo o sterowniki do niej. Można ją albo wybrać z listy dostępnych, albo wskazać lokalizację sterowników ręcznie, np. na CD.

Po wykonaniu tych czynności cieszymy się możliwością drukowania z komputera okiennego na komputer z Ubuntu 🙂

RoR – zapiski dyletanta.

Po dłuuugiej przerwie [no, bądźmy szczerzy – po dłuuugiej przerwie od rozpoczęcia grzebania w, nie po dłuuugiej przerwie od normalnego użytkowania] zajrzałem do railsów. Dobrze jest pouczyć się czegoś nowego, starać się mieć rękę na pulsie, poszerzać horyzonty i takie tam.

Szfak. W swojej tępej naiwności byłem przekonany, że pod platformę było nie było dość popularną, jaką jest Ubuntu, pakiety preinstalowane będą jak spod igły. A guzik [żeby nie powiedzieć ostrzej]. Pakiety repozytoryjne wciąż hulają na mysql [najnowse railsy defaultują się na sqlite], no ale to kwestia paru naciśnięć klawiszy w plikach konfiguracyjnych i odprawienia alternatywnych inkatacji nad zainstalowaniem tego czegoś – o ile człowiek zdąży przed wściekłym sudo apt-get remove rails zorientować się, że coś nie bangla. Mniejsza. W tym kontekście wypominanie, że sterownik nazywa się sqlite3, a nie intuicyjnie sqlite, to już naprawdę godna pożałowania małostkowość, żeby nie rzec przypieprzanie się do drobiażdżków. Ale dwóch rzeczy developerom wybaczyć nie mogę.

W moim ciasnym światku wannabe-pedanta nie chce się za cholerę zmieścić fakt, że w OFICJALNEJ dokumentacji nie znalazło się miejsce na jej aktualizację z gałęzi 1.x na 2.x. A przynajmniej w części opisującej podstawy. Nic poza elegancką adnotacją, że te tutoriale nie są zaktualizowane do wersji 2.x. I już. Na oficjalnej stronie, w dokumentacji wersji, która w sieci jest już parę m-cy. Kasa zwraca pieniądze, jak kasjerka będzie chciała, a macane należy do macanta. Dowcip nr 2 polega bowiem na tym, że…

… framework nie jest kompatybilny w dół. I tu zaczyna się jazda, bo sądząc po netowym feedbacku sporo osób korzysta z literatury do wersji 1.x czy najzwyczajniej przenosi aplikacje do nowych wersji frameworku. A kompatybilność zaczyna się chędożyć na tak podstawowych rzeczach [dalej – uczciwie i bez bicia mówiąc – nie dotarłem], jak generate scaffold, czyli mniamuśne generowanie prościutkiego CRUDa na podstawie samej struktury tabeli, którą to mniamuśną generacją CRUDa zdaje się epatować na dzień dobry większa większość railsowych podręczników. Naiwna lama zaczyna klepać przykłady z książki… i zalewa ją krew, bo to po prostu NIE działa, a z przykładowego „Cookbooka” zaczyna robić się cockbook [w załączniku link do opinii rozentuzjazmowanych użytkowników, żeby nie było, żem osamotniony loser].

Widziałem w życiu wielu deweloperów, prowadzących projekty tak, jakby byli z pani wyjęci. Ale zawsze wydawało mi się, że takie faule są domeną małych firemek, dukających grosz do grosza na nowe zakupy dla żony pana prezesa, a nie projektów było nie było o zasięgu światowym, które na brak ludzi mających pojęcie o zarządzaniu projektami, architektów systemowych czy zwyczajnych ludzi z mózgiem nie powinny narzekać. Myliłem się. Ale za to trochę bardziej zrozumiałem takie ranty. Over & out.

Edit: właśnie przed momentem znalazłem dość fajny opis scaffoldów w wersji 2.x. Jak pisze sam Autor, There were quite a few changes in the 2.0 release, including the way that Rails generates scaffolding code. This change will probably cause trouble for people using tutorials written for previous versions of Rails. Yeah, probably. Ale przynajmniej plan na dzisiaj wczoraj wykonany, można iść spać w poczuciu dobrze spełnionego obowiązku.

Bezpieczne połączenie VNC via ssh z Windows na Ubuntu.

… czyli jak bezpiecznie z komputera Windows pracować zdalnie na swoim Ubuntu.

  1. Instalujemy metapakiet ssh, ssh w Ubuntu instalowane out-of-the-box nie zawiera serwera.
  2. System -> Preferencje -> Zdalny pulpit i ustawiamy wszystko, co trzeba.
  3. Oczywiście forwardujemy port 22 na routerze.
  4. Na winstacji instalujemy putty i jakiś pakiet VNC [TightVNC, RealVNC…].
  5. W putty tworzymy nową sesję ssh do IP routerowego, w Connection -> SSH -> Tunnels wpisujemy zamaskowane IP i port.
  6. Test: z putty łączymy się na serwer, a kiedy połączenie jest nawiązane, klientem VNC łączymy się na 127.0.0.1, podając ew. drugie hasło, które wpisaliśmy we właściwościach Ubuntu.

[Edit: nie chciałem tą notką zaśmiecać ogólnodostępnych poziomów, ale kiedy zerknąłem na GA i zobaczyłem, że poprzednie notki niezbędnika komuś jednak się przydają… voila. Oryginał gdzieś mi się zapodział.]