wtorek, 10 lutego 2015

Rubymine - JDK7 + optymalizacje GC

RubyMine czasami działa potwornie wolno, experymentując z aplikacją serwującą miliony requestów dziennie znalazłem lepsze ustawienia GC które powodują więcej lekkich GC i praktyczny brak FullGC. Dodatkowo aby wymusić działanie Rubymine pod JDK 1.7 trzeba w pliku /Applications/RubyMine.app/Contents/Info.plist, zmienić JVMVersion z 1.6* do 1.7* :
 <key>JVMVersion</key>  
 <string>1.7*</string>  
RubyMine.app/bin/idea.vmoptions:
-Xms128m -Xmx512m -XX:MaxPermSize=250m -XX:+UseCompressedOops
dodałem extra:
-XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+ParallelRefProcEnabled"

środa, 7 stycznia 2015

MacBook Pro jumpstart

Nowy rok i nowa maszyna, ilość ramu oraz miejsce na dysku w poprzedniej przestały być wystarczające, tym razem wybór padl na 1,5kg Apple MacBook Pro 13,3" (MGX82PL/A/P1/R1) Retina

To już moje drugie zetknięcie z OSX, mógłbym oczywiście zmigrować stary system na nowy ale chciałem postawić wszystko od nowa unikając poprzednich błędów, i tak:

  • http://iterm2.com/ - absolutny must have do pracy z terminalem
  • http://brew.sh/ - instalacja homebrew poprzez przeklejenie linka do terminala
  • https://github.com/robbyrussell/oh-my-zsh - czyli ładny terminal z obsługą git i rvm
  • http://jumpcut.sourceforge.net/ - helperek pozwalający zapamiętać w schowku do kilkudziesięciu zawartości
  • https://rvm.io/rvm/install - manager różnych wersji rubiego
  • https://www.jetbrains.com/ruby/download/ - perfekcyjny IDE
  • https://code.google.com/p/tunnelblick/ - czyli vpn pod kontrolą
  • http://www.sequelpro.com/download - najładniejszy klient mysql
  • http://robomongo.org/ - najładniejszy klient mongo
  • https://github.com/zimbatm/direnv - czyli zmienne środowiskowe per katalog

co ciekawe na Yosemite bundle install w moich projektach działa bez większych problemów, postgresql i mysql wymagały instalacji paczki z brew, na razie żadnych problemów z kompilacją extension-ów jeszcze nie było (odpukać)

UPDATE 2016-03-25:

Nowy Macbook pro 2015, po podłączeniu zewnętrznego monitora zmknięcie klapy nie powoduje sleep, mac dalej działą przełączając obraz na drugi monitor. Fajne, szkoda że nie dali opcji jak to wyłączyć, przynajmniej takiej human friendly. No ale zawsze sposób się znajdzie (wykonać bez podłączonego monitora + restart po komendzie):

sudo nvram boot-args=niog=1

piątek, 28 listopada 2014

Przyprawa24.pl - sklep internetowy w kilka godzin

powinienem to już dawno opisać ale czas ciągle gdzieś uciekał, teraz przymusowo mam kilka dni wolnego to mogę uzupełnić takie zaległości.

Na początku lutego 2013 miałem uruchomić sklep z przyprawami RoyalBrand, ponieważ był to projekt lowcostowy nie było mowy o jakimkolwiek rozwiązaniu które wymagało by z mojej strony dużo pracy, z kilku kandydatów typu oscommerce, magento itp wybór padł na PrestaShop.

Na początek muszę przyznać że pozytywnie mnie to oprogramowanie zaskoczyło, na start dostajemy:
- lekki nowoczesny design a po kilku godzinach lekkich customizacji dostajemy gotowy front dla sklepu.
- dość rozbudowany panel admina, cms, zarządzanie zamówieniami, mejlingi

Jest również dostępne wiele rozszerzeń, np:
- bramka płatności transferuj.pl
- integracja z porównywarkami Pricewars (utrzymywana i rozwijana jako opensource przez seigi-ego)

Nie obędzie się jednak bez wad:
- nie wszystko da się z menu wyklikać, czasami trzeba dłubać w PHP, a nie jest to ładny php. To że modelem nazwiemy klasę Produkt i wrzucimy tam 8k lini kodu nie czyni rozwiązania przejrzystym.
- testy, buhahaha! to dla mięczaków lub jakiś zwyrodnialców, nie ma jak zmiana pliku, upload ftp na produkcje i reload
- wiele rozszerzeń jest płatnych, za byle bzdure wątpliwej jakości nieraz widać cenę $50
- brak powiązania sposobu wysyłki z sposobem płatności (akurat do zrobienia ale patrz pkt1 - na forach są dostępne "pacze" słownomuzyczne postaći "w tej lini zmień to na to")

Niemniej jednak po prawie 2 latach jestem z tego rozwiązania zadowolony, na tyle że do określonych celów poleciłem je znajomemu

poniedziałek, 29 lipca 2013

gem install iconv memcached on OSX with Homebrew

$ gem install iconv -v '1.0.3' -- --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
2014-03-17:
$ env ARCHFLAGS="-arch i386" gem install -r -V memcached --no-rdoc --no-ri

poniedziałek, 8 października 2012

MacBook Air OSX Jumpstart

Trochę czasu minęło od zakupu do napisania tego posta, za to zdążyłem zweryfikować moje stanowisko i dzisiejszy wpis nie podlega już pod hype nowości.

Przez wiele lat pracowałem na wysłużonym HP 6280s, DTR 17". Już przy zakupie nie był to demon prędkości, parametrami lekko odstawał ale za to miałem 17" jako drugi monitor. Wtedy wydawało mi się to super pomysłem aby mieć dodatkowy jak największy ekran. Po niespełna kilku miesiącach udało mi się zupgrejdować dysk 5400RPM i 2GB ram do dysku 7200RPM i 4GB ram. Nareszczie maszyna nabrała skrzydeł, jak na laptopa w 2008r miała całkiem niezłe parametry. Niestety wracając do wagi to pierwotny zamysł że będę miał komputer przenośny upadł, przy 3kg wagi tylko kilka razy chciało mi się to taskać spowrotem do domu, kilka razy byłem z nim na wyjeździe na różnych konferencjach. Co do moblności w biurze to też kiepsko bo DTR był przywiązany do biurka masą różnych kabelków: mysz usb, klawiatura usb, ethernet, vga, zasilacz, słuchawki - każdorazowe podłączanie skutecznie niwelowało chęci aby go gdzieś zabrać. Ok 2010r doczekałem się lekkiego upgrejdu, dostałem dysk SSD 40GB, maszyna znowu odżyła. Wtedy też powoli zaczynały pojawiać się Macbooki AIR z możliwością upgrejdu ramu do 4GB, ten setup wzbudził moje zainteresowanie.

Na początku 2012 nareszcie otrzemałem mój dream setup - Macbook Air z 4GB ram, SSD128 i Core i5. Tu historia się rozpoczyna: pierwszy pomysł miał polegać na tym że jak OSX nie przypadnie mi do gustu zainstaluje tu ubunciaka. Naszczęście tak sie nie stało. Tu jeszcze nawiąże do sterty akcesoriów którą kiedyś podłączałęm, klawiatura Logitech UltraX przestała być potrzebna bo domyślna klawiatura jest równie dobra, mysz Logitech też poszła w odstawkę, gładzik apple jest rewelacyjny, w niczym to nie przypomina krnąbrnych małych płytek z della, hp czy innych "markowych" sprzętów. Jedyne czego mi brakuje to bezprzewodowe słuchawki i monitor bezprzewodowy, ale może kiedyś... Co do samego softu to jako wierny fan Ubuntu ciężko było mi się odnaleźć w świecie OSX, sporo pomógł mi poniższy tutorial:

https://gist.github.com/1110217

Homebrew - czyli manager pakietów jako alternatywa do systemu portsów jest rewelacyjny, nie zastąpi co prawda apt-get ale chociaż w niewielkim stopniu potrafi umilić codzienne życie byłym userom linuksów.

TunnelBlick czyli manager do polaczeń VPN zapewni nam łączność, próbowałem walczyć z jakimś skryptem shellowym który by to robił ala /etc/init.d/openvpn ale sromotnie poległem. Na osx część rzeczy musi mieć ładny interfejs i nie ma co z tym walczyć.

Czy OSX daje rade jako środowisko do developmentu ? Raczej tak, ale OSX nigdy nie zastąpi mi ubuntu, ciągle je posidam w wersji server zamknięte w virtualboxie - niestety soft który piszę nie jest standardowy, wymaga masy libów debianowych których próżno szukać w osx, nawet z homebrew.

poniedziałek, 30 kwietnia 2012

eDeklaracje PIT, drukowanie PDF w CUPS

na początku chciałbym pochwalić Ministerstwo Finansów za stworzenie naprawde fajnego oprogramowania na wszystkie platformy. Rok temu rozliczałem pity na Ubuntu Linuxie, w tym roku na OSX i dzięki Adobe AIR wszędzie wygląda to tak samo. Co do sposobu weryfikacji danej osoby to podanie kwoty z zeszłorocznej deklaracji na tyle uprościło proces że przeciętny Kowalski czy Wróblewski jest w stanie sam to wysłać bez ponoszenia dodatkowych nakładów finansowych. W porównianiu do potworka zwanego Płatnik gdzie trzeba podpisywac się kluczem prywatnym na karcie, działającego tylko pod Windowsem z tajnym protokołem transmisji gdzie Prokom ma prawo pozywać każdego kto z tego protokołu chce skorzystać Ministerstwo Finansów dostarczyło nową jakość, gdzie z radością patrze na co moje podatki zostały wydane. Tu jednak nie wszystko w tym roku poszło OK, na początek mój PIT po wysłaniu zostawał odrzucany z powodu błędu 414. Szybki skok na strony MF i mam wyjaśnienie:
Popełniłeś błąd w danych identyfikacyjnych przenoszonych do sekcji danych autoryzujących w zeznaniu W danych autoryzujących wpisałeś błędną kwotę przychodu z zeznania lub rocznego obliczenia podatku za rok podatkowy o dwa lata wcześniejszy niż rok, w którym jest składany dokument elektroniczny
Po 10 próbach odpusciłem sobie, trzeba to wydrukować i udać się na pocztę lub do US. Wszystko fajnie tylko nie mam drukarki..., ale jak zapisze w PDF to będe mógł to wydrukować wszędzie. Niestety próżno szukać takiej opcji w tym programie. Następnie chciałem korzystając z drukarki CUPS-PDF wydrukować go do PDF. Przynajmniej tak mi sie wydawało bo Formularz PDF jest zabezpieczony przed zapisywaniem go do PDF, pytam sie po co ? Analizująć logi cups pdf natrafiłem na taki fragment:
Mon Apr 30 13:07:17 2012 [DEBUG] output filename created (/var/spool/cups-pdf/lowang/job_8-PIT-37_17__v1-0E_pdf.pdf) Mon Apr 30 13:07:17 2012 [DEBUG] ghostscript commandline built (/usr/bin/pstopdf -o /var/spool/cups-pdf/lowang/job_8-PIT-37_17__v1-0E_pdf.pdf /var/spool/cups-pdf/SPOOL/cups2pdf-59950) Mon Apr 30 13:07:17 2012 [DEBUG] output file unlinked (/var/spool/cups-pdf/lowang/job_8-PIT-37_17__v1-0E_pdf.pdf) Mon Apr 30 13:07:17 2012 [DEBUG] TMPDIR set for GhostScript (/tmp) Mon Apr 30 13:07:17 2012 [DEBUG] entering child process Mon Apr 30 13:07:17 2012 [DEBUG] GID set for current user Mon Apr 30 13:07:17 2012 [DEBUG] UID set for current user (lowang) Mon Apr 30 13:07:17 2012 [DEBUG] ghostscript has finished (59392) Mon Apr 30 13:07:17 2012 [DEBUG] no postprocessing Mon Apr 30 13:07:17 2012 [DEBUG] waiting for child to exit Mon Apr 30 13:07:17 2012 [DEBUG] spoolfile unlinked (/var/spool/cups-pdf/SPOOL/cups2pdf-59950)
Gdybym miał plik cups2pdf-59950 to mógłbym sprawdzić co się stało przy konwersji, tu w drugiej zakładce terminala uruchomiłem while true; do cp ... i za chwile miałem plik PostScriptu. próba uruchomienia konwersji pokazała błąd:
This PostScript file was created from an encrypted PDF file. Redistilling encrypted PDF is not permitted.
Szybkie sprawdzenie na necie i okazuje się że te pliki PostScript mają deklaracje która to powoduje wyglądającą tak:
%ADOBeginClientInjection: DocumentSetup Start "No Re-Distill" %% Removing the following eleven lines is illegal, subject to the Digital Copyright Act of 1998. mark currentfile eexec 54dc5232e897cbaaa7584b7da7c23a6c59e7451851159cdbf40334cc2600 30036a856fabb196b3ddab71514d79106c969797b119ae4379c5ac9b7318 33471fc81a8e4b87bac59f7003cddaebea2a741c4e80818b4b136660994b 18a85d6b60e3c6b57cc0815fe834bc82704ac2caf0b6e228ce1b2218c8c7 67e87aef6db14cd38dda844c855b4e9c46d510cab8fdaa521d67cbb83ee1 af966cc79653b9aca2a5f91f908bbd3f06ecc0c940097ec77e210e6184dc 2f5777aacfc6907d43f1edb490a2a89c9af5b90ff126c0c3c5da9ae99f59 d47040be1c0336205bf3c6169b1b01cd78f922ec384cd0fcab955c0c20de 000000000000000000000000000000000000000000000000000000000000 cleartomark %ADOEndClientInjection: DocumentSetup Start "No Re-Distill"
Przynajmniej napisali odrazu co zrobić ;-) po wycięciu tego badziewia ps2pdf zadziałał bez zarzutu.

środa, 29 lutego 2012

Text 2 AsciiArt

Kazdy nowy projekt który wystawia coś po http opisujemy stroną startową z informacjami co to jest i co mozna z tym zrobic.
Aby fajnie wygladalo na takiej stronie zamieszczamy tytul projektu wygenerowany w ascii-art,
dla takich potrzeb znalazłem fajny generator ascii art z podanego tekstu: http://patorjk.com/software/taag/

wynik:

                                                                          
___ ___
,--.'|_ ,--.'|_ ,---,
| | :,' | | :,' __ ,-.,---.'|
.--.--. : : ' : : : ' : .--.--. ,' ,'/ /|| | :
/ / '.;__,' / ,--.--. .;__,' / / / ' ' | |' |: : :
| : /`./| | | / \ | | | | : /`./ | | ,': |,-.
| : ;_ :__,'| : .--. .-. |:__,'| : | : ;_ ' : / | : ' |
\ \ `. ' : |__ \__\/: . . ' : |__ \ \ `. | | ' | | / :
`----. \| | '.'| ," .--.; | | | '.'| `----. \; : | ' : |: |
/ /`--' /; : ;/ / ,. | ; : ;/ /`--' /| , ; | | '/ :
'--'. / | , /; : .' \ | , /'--'. / ---' | : |
`--'---' ---`-' | , .-./ ---`-' `--'---' / \ /
`--`---' `-'----'
(Font Name: 3D Diagonal)