Google optimizer. Bash script to recursive optimize all png and .jpg

First of all install:

sudo apt install jpegoptim

and

sudo apt install optipng

nesxt make script file in your website folder

touch ./optimizer.sh
chmod +x ./optimizer.sh

next paste the code to file

nano ./optimizer.sh
#!/bin/bash
# Script Google Optimizer
# Autor: Szymon Wójtowicz
# Site: http://artmetic.pl
# Blog:  http://blog.artmetic.pl

for f in $(find ./ -name '*.png' -or -name '*.jpg'); 
do 
if [[ $f == *.png ]] ;then
optipng -strip all -o5 "$f";
elif [[ $f == *.jpg ]] ; then
jpegoptim "$f" --strip-all; 
fi
done

and run with command

./optimizer.sh

 

next check speed of your site

Generowanie certyfikatu Jabber / XMPP

# openssl genrsa -out /etc/jabber/jabber.key 1024
# openssl req -new -x509 -days 365 -key /etc/jabber/jabber.key -out /etc/jabber/jabber.crt
# cat /etc/jabber/jabber.crt >> /etc/jabber/jabber.key
# mv /etc/jabber/jabber.key /etc/jabber/jabber.pem
# rm -f /etc/jabber/jabber.crt

Własny serwer jabbera - jak to poważnie brzmi. 
Postaram się w maksymalnym skrócie opisać (krok po kroku), jak zainstalować i skonfigurować 
eJabbera na PLD i dodać do niego parę transportów.

Zaczynamy.

1. Najważniejsza rzecz to oczywiście zainstalować serwer jabbera.


# poldek -ivh ejabberd

2. Konfiguracja (od razu weźmiemy pod uwagę, że chcemy mieć trzy transporty – GG, IRC i MSN).

Edytujemy naszym ulubionym edytorem: plik /etc/jabber/ejabberd.cfg
{acl, admin, {user, "admin"}}.
% user z prawami administratora, dowolny login
{acl, local, {user_regexp, ""}}.
{access, pubsub_createnode, [{allow, all}]}.
{access, configure, [{allow, admin}]}.
{access, register, [{deny, all}]}.
{welcome_message,
 {"Welcome!",
  "Welcome to Jabber.",
  "For information about Jabber visit http://jabber.org"}}.
{registration_watchers, ["user@localhost"]}.
% user, który będzie powiadamiany o rejestracjach do serwera jabbera
{access, announce, [{allow, admin}]}.
{access, c2s, [{deny, blocked},
               {allow, all}]}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{access, c2s_shaper, [{none, admin},
                      {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{access, local, [{allow, local}]}.
{auth_method, internal}.
{hosts, ["localhost", "jabber.nasza_domena.pl"]}.
% nasze hosty, które będziemy używać (zewnętrzne domeny muszą istnieć)
{max_user_sessions, 10}.
{language, "en"}.
{listen,
 [{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper},
                            {max_stanza_size, 65536},
                            starttls, {certfile, "/etc/jabber/jabber.pem"}
                            ]},
  {5223, ejabberd_c2s,     [{access, c2s},
                            {max_stanza_size, 65536},
                            tls, {certfile, "/etc/jabber/jabber.pem"}]},
  {5269, ejabberd_s2s_in,  [{shaper, s2s_shaper},
                            {max_stanza_size, 131072}
                           ]},
  {5348, ejabberd_service, [{access, all},
                            {host, "msn.jabber.nasza_domena.pl",
                             [{password, "hasło z /etc/jabber/secret"}]}]},
  {5349, ejabberd_service, [{access, all},
                            {host, "gg.jabber.nasza_domena.pl",
                             [{password, "hasło z /etc/jabber/secret"}]}]},
  {5347, ejabberd_service, [{access, all},
                            {hosts, ["ircnet.jabber.nasza_domena.pl", "freenode.jabber.nasza_domena.pl"],
                             [{password, "hasło z /etc/jabber/secret"}]}]},
  {5280, ejabberd_http,    [http_poll, web_admin]}
 ]}.
{s2s_use_starttls, true}.
{s2s_certfile, "/etc/jabber/jabber.pem"}.
{domain_certfile, "jabber.nasza_domena.pl", "/etc/jabber/jabber.pem"}.
{outgoing_s2s_port, 5269}.
{modules,
 [
  {mod_register,   [{access, register}]},
  {mod_roster,     []},
  {mod_privacy,    []},
  {mod_adhoc,      []},
  {mod_configure2, []},
  {mod_disco,      []},
  {mod_stats,      []},
  {mod_vcard,      []},
  {mod_offline,    []},
  {mod_echo,       [{host, "echo.nasza_domena.pl"}]},
  {mod_private,    []},
  {mod_irc,        []},
  {mod_muc,        [{access, muc},
                    {access_create, muc},
                    {access_admin, muc_admin}]},
  {mod_pubsub,     [{access_createnode, pubsub_createnode}]},
  {mod_time,       []},
  {mod_last,       []},
  {mod_version,    []}
 ]}.

3. Wygenerowanie certyfikatów dla połączeń SSL/TLS.

# openssl genrsa -out /etc/jabber/jabber.key 1024
# openssl req -new -x509 -days 365 -key /etc/jabber/jabber.key -out /etc/jabber/jabber.crt
# cat /etc/jabber/jabber.crt >> /etc/jabber/jabber.key
# mv /etc/jabber/jabber.key /etc/jabber/jabber.pem
# rm -f /etc/jabber/jabber.crt

4. Transport Gadu-Gadu


# poldek -ivh jggtrans
Ustawiamy najważniejsze opcje w: /etc/jabber/jggtrans.xml
<service jid="gg.jabber.nasza_domena.pl"/>
<connect id="gglinker">
    <ip>127.0.0.1</ip>
    <port>5349</port>
    <secret>hasło z /etc/jabber/secret</secret>
</connect>
<spool>/var/spool/jabber/gg.jabber.atwa.us/</spool>
<admin>admin@jabber.nasz_domena.pl</admin>
<acl>
        <allow who="admin@jabber.nasza_domena.pl" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
        <deny who="*" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
        <allow who="*"/>
        <deny what="iq/query?xmlns=jabber:x:register"/>
        <allow what="presence"/>
        <deny/>
 </acl>
Następnie tworzymy katalog, w którym będą trzymane dane użytkowników korzystających z transportu:
# mkdir -p /var/spool/jabber/gg.jabber.nasza_domena.pl
# chown -R root:jabber /var/spool/jabber/
# chmod -R g+w /var/spool/jabber/

5. Transport MSN.

Instalujemy najważniejsze elementy:

# poldek -ivh python-Twisted python-Twisted-ssl python-TwistedWords python-TwistedWeb python-TwistedXish python-Imaging python-pyOpenSSL
Teraz trzeba należy ręcznie ściągnąć transport stąd. Wypakowujemy go i ustawiamy config: W src/config.py:
jid = "msn.jabber.nasza_domena.pl"
host = "127.0.0.1"
compjid = ""
spooldir = "/var/lib/ejabberd/"
discoName = "MSN Transport"

mainServer = "127.0.0.1"
website = ""
port = "5348"
secret = "hasło z /etc/jabber/secret"
Natomiast w config.xml (jeśli go nie ma, tworzymy z template'u) ustawiamy te same opcje w formacie XML.
Musimy utworzyć jeszcze 2 symlinki, bo PyMSNt nie wyszuka zainstalowanych rozszerzeń pythona:
# ln -s /usr/share/python2.4/site-packages/twisted/words /usr/lib[64]/python2.4/site-packages/twisted/words
#  ln -s /usr/share/python2.4/site-packages/twisted/xish /usr/lib[64]/python2.4/site-packages/twisted/xish
Uruchamiamy PyMSNt:

# ./PyMSNt &amp;

6. Uruchamiamy eJabberda i tworzymy konto administratora.

# service ejabberd start
# ejabberdctl ejabberd@localhost register admin jabber.nasza_domena.pl hasło_do_konta_admina
# service jggtrans start
I to praktycznie cała filozofia. 
Pod adresem http://server:5280/admin/ znajdziemy ładnego web admina, dzięki któremu możemy monitorować nasz serwer,
dodawać i usuwać użytkowników, zmieniać im hasła itd. Sam użytkownik ma oczywiście możliwość zmiany hasła przez klienta jabbera.

Czy ja czasem nie zapomniałem o transporcie IRC? Nie, eJabberd ma wbudowany transport IRCa i dlatego wystarczyło tylko odblokować
odpowiedni port i usługę w ejabberd.cfg, a transport od razu działa. Gdybym o czymś zapomniał albo coś jednak nie działało, to "bijcie!"
i piszcie do mnie lub tutaj w komentarzach.

Jak zamknąć proces na porcie na serwerze Linux

Aby zamknąć (zabić) proces na porcie na serwerze Linux należy wydać polecenie:


fuser -n tcp -k 21
<span style="font-family: Lucida Sans Unicode,Lucida Grande,sans-serif; font-size: 14pt;">
*(gdzie 21 to numer portu)
Innym sposobem jest uruchomienie aplikacji htop i po wybraniu procesu strzałkami naciśnięcie
 'k' w celu zabicia procesu/aplikacji. W tym przypadku powinniśmy znać nazwę aplikacji.</span>

Po wybraniu procesu i przyciśnięciu ‚k’ (kill) możemy usunąć/zamknąć proces na różne sposoby,
wymienione po lewej stronie.


 


 

Mobile Periodic Table of elements.

The application title reveals everything – this is a full and interactive periodic table of elements, which is well shown in the following graphic. Our app allows you to view the full table in which you can choose a single chemical element and view its detailed characteristics – physical, atomic, thermodynamic and electromagnetic properties.

The properties section includes the following information:

  • Year of discovery.
  • Latin name.
  • State of matter.
  • Boiling point.
  • Melting point.
  • Atomic radius.
  • Covalent radius.
  • Density.
  • Thermal and electrical conductivity.
  • Electronegativity.
  • Radioactivity.
  • Period of decay.
  • Half-live of element.
  • Electron configuration.
  • Colour.

Periodic tableatoms
It’s worth noting that authors allow the users to easily read the group and period of the element due to its backlight after the selection.

The application also includes a visualization of the distribution of electrons on coatings and their number on the individual orbitals. Another feature is the table of ions’ solubility, which is unable to be found in other apps available at Google Play.

The product stands out in the market due to its full color graphics interface, through which we can easily divide elements into different categories:

  • Chemical nature.
  • Electron blocks (s,p,d,f).
  • States of matter.
  • Melting / boiling points.
  • Electronegativity.    

electron

Is it worth it?

„Periodic table for Android” is an app dedicated to a specific group of users and they are the right audience that should assess its usability and substantive content.

One more thing worth noting – at the moment there is a translation into 60 different languages.

The application is available at Google Play Store as free and its paid version is published too, without the content of minimally invasive ads.


It’s very possible that our „Mendeleev Periodic Table for Android” will be further developed and transformed into a more complex educational software, but for that we would need a sponsor or investor.

Commercial Version

Commercial Version contains:

– photos of all elements
– Quantum Number
– Young Modulus
– Bulk Modulus
– Shear Modulus
– Poisson Ratio
– Abundance in Universe, Humans, Oceans
– Vickers, Mohs, Brinell Hardness
– Thermal Expansion
– Molar Volume
– RTECS, EU, CAS, CID number
– Heat of vaporization, fusion, specific heat
– Resistance
– interactive table of ions reactions.


 

Pobierz na Linuxa

Download for Linux

Pobierz aplikację

Download @ Google Play

Pobierz aplikację

Pobierz wersję płatną aplikacji ze Sklepu Google Play

Pobierz Tablica Mendelejewa przez INSTALKI.pl

Download via INSTALKI.pl

 

Pozycjonowanie aplikacji w Google Play – ASO

ASO (App Store Optimization) to proces, którego celem jest podniesienie pupularności aplikacji w rankingu platformy sprzedażowej. Przede wszystkim nie jest to jednorazowe działanie, lecz szereg kroków podejmowanych w długim horyzoncie czasowym, które wymagają odpowiedniej strategii. Należy przy tym pamiętać, że kluczowy dla pozycji rynkowej każdej świeżo wydanej aplikacji będzie pierwszy miesiąc po jej publikacji w Google Play (lub w repozytorium innego systemu operacyjnego). Istotne jest więc to, by nowo wydana aplikacja miała jak najmniejszą liczbę błędów oraz obsługiwała jak najwięcej urządzeń.

Aby zdobyć większą liczbę użytkowników i lepiej wypozycjonować swoją aplikację, powinniśmy zadbać o następujące aspekty:

  • Użyj słów kluczowych w tytule aplikacji. Użycie słów niezwiązanych z aplikacją może dramatycznie obniżyć liczbę instalacji Twojej aplikacji. Przed opublikowaniem Twojej aplikacji użyj AdWords i postaraj się wyszukać po nazwie aplikacje konkurencji, tak aby dobrane słowa były najbardziej dopasowane do sposobu w jakim użytkownicy wyszukują Twoją aplikację.
  • Użyj najlepsze słowa kluczowe w opisie aplikacji. W przeciwieństwie do sklepu App Store, opis aplikacji brany jest w kryteriach wyszukiwania. Im lepsze słowa tym większe prawdopodobieństwo, że ktoś znajdzie Twoją aplikację nie tylko po nazwie aplikacji, ale także po słowach zawartych w opisie.
  • Pozwól użytkownikom zakochać się w swoich zrzutach ekranu. Im lepsze zrzuty tym większe prawdopodobieństwo, że użytkownik zdecyduje się zainstalować Twoją aplikację.
  • Stwórz profesjonalną prezentację swojej aplikacji. Jeżeli zrzuty ekranu go nie przekonają może okazać się, że zechce zobaczyć aplikację w użyciu. Pamiętaj że dobrze przygotowana prezentacja w formie filmu może nie tylko służyć w sklepie do przekonywania użytkowników, ale być także elementem stosowanym w mediach, blogach i stronach z nowinkami technologicznymi.
  • Daj poznać się w mediach. Pamiętaj że ma to wpływ również na pozycję twojej aplikacji. Są blogi, funpage i gazety dostępne w kioskach, które stanowią dodatkowe źródło przyciągające użytkowników
  • Uzależnij użytkowników od używania swojej aplikacji. Stwórz widget w aplikacji, dzięki czemu użytkownicy będą do niego wracać. Daj użytkowniką możliwość skorzystania z jakiejś funkcji po pewnym czasie. Tak robią np gry na facebook-u. Jeżeli po powrocie do aplikacji użytkownik będzie zadowolony z nowej funkcjonalności wróci do niej po raz kolejny.
  • Stwórz tłumaczenia swojej aplikacji. Przetłumacz nie tylko zawartość swojej aplikacji ale także tytuły aplikacji zainstalowanej na urządzeniu jak i opisy w konsoli dewelopera. Tłumaczenie na 10 najpopularniejszych języków może zwiększyć pobieralność Twojej aplikacji o 300%. A im bardziej profesjonalne tłumaczenie (nie z translatora), tym większa ilość pobrań.
  • Stwórz profesjonalne zdjęcie w tle. Większość zdjęć w tle to zdjęcia aplikacji które się niczym nie wyróżniają. Zachęć użytkowników czymś niestandardowym, ale związanym z tematyką aplikacji.
  • Stwórz mailową niezapominajkę. Stwórz listę mailingową która będzie przypominać użytkowniką np. o tym aby wprowadzili swoją wagę do aplikacji. Jeżeli użytkownicy nie bedą chcieli dostawać maili – umożliw im to. Pamiętaj jednak że gdy będą chcieli kolejny raz znaleźć podobną aplikację to nie zapomną o Twojej.
  • Dodaj przyciągającą wzrok i nieszablonową ikonę. Jednym z kryteriów oceny przez użytkowników, którą aplikację zainstalować jest jakość ikony. Pamiętaj że ludzie najpierw oceniają po wyglądzie, a dopiero później czytają. Nikt nie nie zainteresuje się aplikacją, która ma słabą, a niekiedy z epoki kamienia łupanego ikonę. W związku z tym odrzuci ją zanim zobaczy jej screeny, opis lub film promujący ją (jeżeli jest).
  • Zachęcaj użytkowników do oceny. Możesz umieścić w aplikacji możliwość oceniania aplikacji przy wyjściu z niej. Jeżeli nie będzie to zbyt inwazyjne może okazać się przydatne 😉
  • Utwórz możliwość publikowania treści aplikacji w Social Media. Umożliw użytkownikom udostępnianie treści, które będą widziane na portalach społecznościowych. Nie lekceważ magii marketingu wirusowego. Jeżeli treść będzie atrakcyjna, masz dużą szanse uzyskać niewielkim kosztem dobry efekt.
  • Utwórz stronę wizytówkę. Jeżeli spędziłeś dużo czasu nad tworzeniem aplikacji utwórz stronę która umożliwi wyszukanie w bardziej konwencjonalny vs codzienny sposób.

Ocena Google play

Wystawianie oceny w sklepie Google Play


Chyba nikt – oprócz może samych pracowników Google – nie wie do końca, jakie są czynniki wpływające na pozycję aplikacji w sklepie Google Play. Jednakże kilka podstawowych wskaźników ma kluczowy wpływ na ostateczną pozycję w rankingu. Do takich wskaźników można zaliczyć:

  • Liczbę ocen w sklepie. Google bierze pod uwagę ilość ocen, a nie fakt czy są one w przeważającej mierze pozytywne. Wyobraź sobie aplikację budzącą kontrowersje, którą dużo osób instaluje, ale budzi niesmak… W politykę i czarny PR jednak nie będziemy się dalej zagłębiać.
  • Średnia ocen aplikacji. W ostatnim czasie można było zauważyć, że Google wprowadziło filtr umożliwiający użytkownikom wyszukiwanie aplikacji o średniej ocen powyżej 4.0. Zależność jednak jest prosta: im większa średnia, tym lepiej.
  • Ilość pobrań. Warto zwrócić uwagę, że aplikacje przeskakują o kilka pozycji wyżej w rankingu, gdy liczba pobrań przekroczy próg odpowiednio: 5, 10, 50, 100 ,500, 1000, 5 000, 10 000, 50 000 itd.
  • Wzrost liczby pobrań w przeciągu ostatnich 30 dni. Związane jest to z wydaniem kolejnej wersji aplikacji. Google daje tym samym szansę na poprawę jakości produktu deweloperom.
  • Liczba deinstalacji. Należy pamiętać, że oprócz liczby pobrań istotne jest liczba osób, które pozostawiają aplikację zainstalowaną na urządzeniach. Im lepsza aplikacja, tym mniej osób rozstaje się z nią.
  • Niektórzy deweloperzy wskazują jeszcze na znaczenie czasu użytkowania aplikacji, lecz nie jest to czynnik oficjalnie potwierdzony.
  • Ilość artykułów w mediach internetowych. “Getting people to write about your app improves your search rankings in the Play Store” (Google I/O June 2012), zatem jeśli media piszą o Twojej aplikacji, ma to bezpośredni wpływ na miejsce w rankingu Google Play.

Pamiętaj również, aby nie publikować w sklepie nie dopracowanej aplikacji, ponieważ zwiększy to liczbę deinstalacji. Może to skutkować gorszymi ocenami, które później ciężko nam będzie doprowadzić do średniej powyżej 4.0. Jeżeli aplikacja zostanie odinstalowana przez osobę niezadowoloną, jest nikłe prawdopodobieństwo, że zdecyduje się ona zainstalować ją ponownie.

Każdy deweloper publikujący w Google Play powinien pamiętać o przestrzeganiu regulaminu. W związku z tym powinien stosować się do następujących fragmentów:

  • Nie wolno używać nietrafnych, mylących i zbędnych słów kluczowych w opisach, nazwach oraz metadanych aplikacji.
  • Nie wolno próbować zmieniać miejsca produktów w sklepie ani manipulować opiniami na ich temat w niedozwolony sposób, np. poprzez fałszywe instalacje, opłacane lub nieprawdziwe opinie bądź oceny, ani oferować korzyści w zamian za wystawienie oceny aplikacji.

Jak zostać testerem aplikacji Google Play?

Pierwszym krokiem, jaki należy wykonać, aby zostać testerem aplikacji mobilnych, jest przejście do sklepu Google Play:

https://plus.google.com

Po wejściu na stronę należy wyszukać nazwę społeczności testerów, do której chcemy dołączyć. W naszym wypadku:

Tabele dietetyczne – testerzy


Po odnalezieniu naszej społeczności, skupiającej osoby bezpłatnie testujące aplikację, możemy poprosić o dołączenie do grupy testerów przez opcję „Poproś o dołączenie”:

Po tym etapie musimy poczekać, aż administrator zaakceptuje nasze członkostwo w społeczności. Nie będzie to trwało dłużej niż 24 godziny. Kiedy zostaniemy zaakceptowani i nastąpi ta radosna chwila (dla developera też 🙂 ), otrzymamy maila o treści mniej więcej takiej, jak poniżej:

 

Oprócz tego powinniśmy otrzymać od developera link do sklepu Google Play, gdzie umieszczona jest nieoficjalna wersja aplikacji (wersja beta). W naszym przypadku link wygląda następująco:

https://play.google.com/apps/testing/pl.szymonwojtowicz.tabele_dietetyczne

Po kliknięciu w link i przejściu na stronę należy wybrać opcję „Zostań testerem”:

Nie zapominajcie o przejściu do sklepu Google Play i zainstalowaniu naszej aplikacji 🙂

Jakie korzyści daje zostanie testerem?

Przede wszystkim dostęp do  wersji aplikacji, które nie zostały oficjalnie wydane.
Poza tym automatyczne aktualizacje po wgraniu nowej wersji przez developera. Oficjalnie w sklepie dostępne są one dwie godziny po wydaniu nowej wersji, choć teoretycznie proces ten może trwać do 48h.