Text

Ternary operator in PHP for Perler

codyum:

One “nice” feature of ternary operator in PHP is associativity. For Perler, this kind expression:

    echo 1 == 2 ? 'a' : 1 == 1 ? 'b' : 1 == 4 ? 'c' : 'd';

returns ‘b’. But for PHP programmer there is ‘c' :)

For Perl, this expression should be read as:

    echo 1 == 2 ? 'a' : (1 == 1 ? 'b' : (1 == 4 ? 'c' : 'd'));

For PHP it is:

    echo ((1 == 2 ? 'a' : 1 == 1) ? 'b' : 1 == 4) ? 'c' : 'd';

More info: http://pl1.php.net/manual/en/language.operators.precedence.php

Tags: php perl
Text

self-signed certs and Chrome on mac

Short tutorial:

Open Terminal, then type:

openssl s_client -showcerts -connect ADDR:443

Replace ADDR with your address (without “http://” ;) ). Then press CTRL-C and next copy to clipboard part from ‘-----BEGIN CERTIFICATE-----' to '-----END CERTIFICATE-----' (including them). Place it in some file, for example:

pbpaste > ~/cert.pem

And “run” that file: doubleclick it from Finder or enter in terminal:

open ~/cert.pem

In popup click ‘Always Trust’, enter your password, and voila :)

Tags: osx chrome
Text

apt-add-repository

After release of git 1.9, I want to update it in my environments. On mac, it’s easy: brew update && brew upgrade git. For Ubuntu, there is short manual: https://launchpad.net/~git-core/+archive/ppa.

So… should be easy, yeah?

I have few virtual machines (vagrant rocks!), on most of them I should install python-software-properties, and then:

sudo apt-add-repository ppa:git-core/ppa

That’s all. But one of my VM’s, after installing python-software-properties, still lacks of apt-add-repository :/ Strange…

Long story short: the solution is to install also software-properties-common. After that, we can now use apt-add-repository.

Tags: ubuntu apt-get
Text

PDF in Safari

If you use Safari on mac (I don’t usually), and when reading PDFs documents show garbled text (PDF file content), it may be Adobe Reader fault.

Go to /Library/Internet Plug-ins, and rename/remove files:

AdobePDFViewer.plugin
AdobePDFViewerNPAPI.plugin

After that, restart Safari and enjoy…

Tags: mac safari pdf
Text

vagrant and running provision

I spent 2 hours today to find why my provisioning doesn’t start with vagrant up or vagrant reload :/ In documentation is that it should be run, but it’s past.

Now, provisioning is run once, at first vagrant up. Every next reload or up will not run it. To run provisioning at startup or reload, you must explicit show it:

vagrant reload --provision
vagrant up --provision

or explicit rub provisioning:

vagrant provision
Tags: vagrant
Link
Tags: mac chrome
Text

Panie premierze: co robić, jak żyć? :(

Przez lata bardzo intensywnie wykorzystywałem SVN. Znam mocne, znam słabe jego strony. Przez lata nim zarządzałem, wdrażałem ludzi do pracy na nim, nauczyłem zarówno siebie, jak i innych jak obchodzić problemy jakie rodzą się przy intensywnej pracy z tym narzędziem, czego unikać. Znajomi dziwnie się patrzą, jak mówię że pracowałem na tym VCS na kilkunastu branchach równocześnie, a w historii poprzedniej firmy - na kilkuset.

Od kilku lat, a szczególnie intensywnie od kilku miesiący (niecały rok), używam Gita. W większości przypadków używam go nie jak DVCS - zazwyczaj jest jeden serwer (github/bitbucket), tam trzeba zrobić pusha, stamtąd zrobić pulla i tyle.

Przez ostatnie miesiące (4-5) nie używałem praktycznie SVNa - w nowej firmie nie jest w użyciu, a swoje rzeczy dawno już przerzuciłem na Gita. Ostatnio jednak muszę znów pracować trochę na SVN…
 
I obym szybko przestał musieć. 2 rzeczy powodują, że mam alergię na Subversion, mam uraz, nie chcę go widzieć na oczy ;)

1. Commity lokalne, a później push
2. git add -p / git checkout -p

Szczególnie ten drugi motyw - czyli możliwość pracy nad różnymi częściami kodu, a później commitowanie po kawałku… Jak można było bez tego żyć? :/ Przecież nie da się inaczej. Masakra.

Przez to że SVN nie ma tej drugiej featury, puszczam jakieś masakrycznie duże commity z dziesiątkami zmian. Zamiast małych, konkretnych commiciątek, trzeba napier* z grubej rury, albo tracić godziny na ręczną zabawę z tym… Ech :(

Broniłem się przed używaniem git-svn, ale chyba nie będzie wyjścia…

Tags: git svn vcs dvcs
Text

Python 2 and 3 - scope difference

I like Perl’s scoping: you have block, you have new scope. With explicit variable declarations, it’s both: simple and brilliant.

In Python, i’ve always been surprised that code:

i = ‘q’
lst = [1, 2, 3]
for i in lst:
    pass
print(i)

Displays ‘3’ instead of ‘q’. It’s strange, it’s not obvious, it’s not for humans ;)

The same issue is with comprehensions:

i = ‘q’
lst = [1, 2, 3]
m = [i*2 for i in lst]
print(i)

In Python 2.x, this also displays ‘3’. But it’s now better in Python 3.x: the result is ‘q’.

I missed this one from Python’s changelogs :)

Tags: python
Text

Rootowanie Samsung Galaxy S4 (GT-i9505)

Rootowałem z drobnymi przygodami. Zapisuję jako notatnik dla siebie…

Ogólnie posługiwałem się stroną: http://galaxys4root.com/ , a konkretnie: http://galaxys4root.com/galaxy-s4-root/how-to-root-galaxy-s4-using-twrp-method/

Modyfikacją jest to, że użyłem Heimdalla zamiast Odina. Na pierwszy rzut dostałem komunikat błędu:

libusbx: error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access

Okazało się że kiedyś instalowałem KIES-a, ale nawet go odinstalowałem… ale to cwaniak, nie dał się łatwo. Gnojek zostawił drivera :/

Za stronką:

http://www.jrtstudio.com/iSyncr/UninstallKies

go wywaliłem:

cd /System/Library/Extensions
sudo kextunload ssuddrv.kext
sudo mv ssuddrv.kext ~/.Trash

I teraz restart. Tym razem poszło lepiej. Dostałem komunikat:

Downloading device’s PIT file…
PIT file download successful.
ERROR: Partition “recovery” does not exist in the specified PIT.

Ech… wielkość znaków ma znaczenie ;)

Błędna komenda:

heimdall flash —recovery recovery.img

Poprawna komenda:

heimdall flash —RECOVERY recovery.img

No i teraz już poszło… e… zaraz. Idę do recovery console, a tam zamiast TWRP jest zwykła, samsungowa… :/

No nie ma lekko. Wyjaśnienie jest na http://galaxys4root.com/galaxy-s4-root/how-to-root-galaxy-s4-using-twrp-method/ - samsung nadpisuje recovery :/ Po ponownym sflashowaniu trzeba dość szybko wyjąć baterię, co też wykonałem. Zadziałało ;) Mam TWRP ;)

Text

[OSX] Display hidden elements in Finder or dialog

I have always problem with it. How to show hidden files or folders in file selector on Mac? Nearly every resource on Google tell us:

enter “defaults write com.apple.Finder AppleShowAllFiles YES” in terminal and restart Finder

Blah. 

If you have opened “Select file” dialog, press:

Cmd + Shift + . (period)

This will reveal hidden elements in dialog. Press it again to hide. Easy and simple.

Tags: mac finder