{"id":825,"date":"2010-01-24T02:28:36","date_gmt":"2010-01-24T00:28:36","guid":{"rendered":"http:\/\/yeti.albascout.ro\/blog\/?p=825"},"modified":"2010-01-24T02:28:36","modified_gmt":"2010-01-24T00:28:36","slug":"finallly-my-newest-creation-is-here","status":"publish","type":"post","link":"https:\/\/yeti.albascout.ro\/blog\/finallly-my-newest-creation-is-here\/","title":{"rendered":"Finallly! My newest creation is here"},"content":{"rendered":"<p>Allright, \u00een seara asta \u00een sf\u00e2r\u0219it am reu\u0219it s\u0103 \u00eenchei un task care mi l-am propus acum mai mult timp, \u0219i de care am reu\u0219it s\u0103 m\u0103 ocup doar printre pic\u0103turi. O s\u0103 scriu repede ce am f\u0103cut, \u0219i mai jos o s\u0103 dau \u0219i detaliile plicticoase.<\/p>\n<p>Nu \u0219tiu dac\u0103 am mai scris despre<a href=\"http:\/\/do.davebsd.com\/\"> Gnome Do<\/a> pe aici. Gnome Do este un progr\u0103mel (el \u00ee\u0219i spune launcher) prin care po\u021bi realiza o serie de ac\u021biuni din doar c\u00e2teva taste. Este destul de general, a\u0219a c\u0103 s\u0103 v\u0103 dau un exemplu: scrii <em>Run<\/em>, apoi ape\u0219ti &lt;Tab&gt;, apoi scrii numele unui program, \u0219i ape\u0219i &lt;Enter&gt; \u0219i programul este rulat. Asta e cea mai basic \u0219i intuitiv\u0103 chestie. Po\u021bi s\u0103 scrii \u00eens\u0103 \u0219i Reboot, Power Off, cu rezultatul pe care \u00eel presupune\u021bi.<\/p>\n<p>\u0218i de aici, lucrurile devin interesante: po\u021bi s\u0103 scrii numele unei forma\u021bii (evident, ale c\u0103rei c\u00e2ntece le ai pe calculator :P), \u0219i \u00ee\u021bi arat\u0103 albumele, \u0219i de acolo po\u021bi ajunge la c\u00e2ntecele efective, \u0219i le po\u021bi da play. Po\u021bi s\u0103 scrii un ID de messenger, \u0219i \u00ee\u021bi deschide o fereastr\u0103 de messenger cu persoana respectiv\u0103. Po\u021bi scrie o adres\u0103 de strad\u0103 \u0219i \u00ee\u021bi deschide Google Maps. Mai mult dec\u00e2t at\u00e2t, \u00eenva\u021b\u0103 care op\u021biuni le selectezi mai frecvent pentru care obiecte, \u00een a\u0219a fel \u00eenc\u00e2t op\u021biunile relevante s\u0103 ias\u0103 \u00eentotdeauna \u00een fa\u021b\u0103 :).<\/p>\n<p>Toate ac\u021biunile astea pot fi definite de oricine, at\u00e2ta vreme c\u00e2t \u00een\u021belege un pic de programare. Gnome Do e scris \u00een Mono, \u0219i, evident, exist\u0103 doar pentru Linux (\u0219i presupun c\u0103 doar pentru &#8230; Gnome ;). Acum ceva vreme, am reu\u0219it s\u0103 scriu un mic plugin care se folosea (\u021b\u0103r\u0103ne\u0219te) de un script python pentru a trimtie un SMS la un num\u0103r dat. Urm\u0103torul obiectiv a fost s\u0103 nu mai dau num\u0103rul de m\u00e2n\u0103 (c\u0103 unde mai era utilitatea dac\u0103 trebuia s\u0103 introduc num\u0103rul), ci s\u0103-l iau din baza de date cu contacte a <a href=\"http:\/\/projects.gnome.org\/evolution\/\">Evolution<\/a> (aka Outlook pentru Linux). Well, aici am \u00eent\u00e2mpinat o problem\u0103, pentru c\u0103 evolution-sharp, pachetul care permite accesul din mono la datele din Evolution era stricat, \u0219i nici acum, dupa 4 luni, nu s-a ocupat nimeni de el.<\/p>\n<p>A\u0219a c\u0103 am scris un mic server \u00een Python, care se conecteaz\u0103 la evolution cu python-evolution \u0219i cite\u0219te contactele. Apoi, am modificat pluginul oficial de Evolution \u0219i i-am schimbat doar modalitatea prin care \u00ee\u0219i ia datele de la sursa de date (metoda<em> UpdateItems<\/em>), pentru a le lua, pe DBus, de la serverul Python. A mai trebuit s\u0103 for\u021bez o interfa\u021b\u0103 pe obiectul de tip <em>telefon, <\/em>pentru a potrivi tipurile de date, \u0219i \u00een final am reu\u0219it :D<\/p>\n<p>Acum pot scrie numele unui contact, apoi s\u0103 aleg telefonul lui mobil din list\u0103, \u0219i apoi s\u0103 aleg SMS din lista de ac\u021biuni \u0219i s\u0103 introduc SMS-ul. Un Enter \u0219i whooosh, Gnome-Do apeleaz\u0103 scriptul, scriptul deschide conexiunea Bluetooth la telefon (prin <a href=\"http:\/\/wammu.eu\/gammu\/\">gammu<\/a>), \u0219i trimite SMS-ul. Complicat? Nu prea, check this out:<\/p>\n<figure id=\"attachment_830\" aria-describedby=\"caption-attachment-830\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-830\" title=\"pasul1\" src=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul1-300x168.png\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><figcaption id=\"caption-attachment-830\" class=\"wp-caption-text\">A\u0219a arat\u0103 la mine Gnome-Do \u00een starea ini\u021bial\u0103 :)<\/figcaption><\/figure>\n<figure id=\"attachment_829\" aria-describedby=\"caption-attachment-829\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-829\" title=\"pasul2\" src=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul2-300x168.png\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><figcaption id=\"caption-attachment-829\" class=\"wp-caption-text\">Ca s\u0103 porne\u0219ti o ac\u021biune, ape\u0219i Windows (Super) + Spa\u021biu<\/figcaption><\/figure>\n<figure id=\"attachment_828\" aria-describedby=\"caption-attachment-828\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-828\" title=\"pasul3\" src=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul3-300x168.png\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><figcaption id=\"caption-attachment-828\" class=\"wp-caption-text\">Introduci numele (care exist\u0103 \u00een Evolution)<\/figcaption><\/figure>\n<figure id=\"attachment_831\" aria-describedby=\"caption-attachment-831\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-831\" title=\"pasul4\" src=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul4-300x168.png\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><figcaption id=\"caption-attachment-831\" class=\"wp-caption-text\">Alegi detaliul la care te referi (mobilul)<\/figcaption><\/figure>\n<figure id=\"attachment_827\" aria-describedby=\"caption-attachment-827\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-827\" title=\"pasul5\" src=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul5-300x168.png\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><figcaption id=\"caption-attachment-827\" class=\"wp-caption-text\">Alegi ac\u021biunea (SMS)<\/figcaption><\/figure>\n<figure id=\"attachment_826\" aria-describedby=\"caption-attachment-826\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-826\" title=\"pasul6\" src=\"http:\/\/yeti.albascout.ro\/blog\/wp-content\/uploads\/2010\/01\/pasul6-300x168.png\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><figcaption id=\"caption-attachment-826\" class=\"wp-caption-text\">\u00cenc\u0103 un TAB \u0219i scrii mesajul, \u0219i e gata! :D<\/figcaption><\/figure>\n<p>Pentru un update, m\u0103 g\u00e2ndesc s\u0103 nu trebuiasc\u0103 s\u0103 mai trebuiasc\u0103 s\u0103 alegi mobilul, ci ac\u021biunea cu SMS s\u0103 fie valabil\u0103 doar pentru contactele cu telefonul mobil completat. But this also works ;)<\/p>\n<p>Dac\u0103 este cineva interesat de povestea asta, m\u0103 g\u0103si\u021bi pe email sau pe messenger. Sau pe SMS :P<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Allright, \u00een seara asta \u00een sf\u00e2r\u0219it am reu\u0219it s\u0103 \u00eenchei un task care mi l-am propus acum mai mult timp, \u0219i de care am reu\u0219it s\u0103 m\u0103 ocup doar printre pic\u0103turi. O s\u0103 scriu repede ce am f\u0103cut, \u0219i mai jos o s\u0103 dau \u0219i detaliile plicticoase. Nu \u0219tiu dac\u0103 am mai scris despre Gnome &hellip; <a href=\"https:\/\/yeti.albascout.ro\/blog\/finallly-my-newest-creation-is-here\/\" class=\"more-link\">Continu\u0103 s\u0103 cite\u0219ti <span class=\"screen-reader-text\">Finallly! My newest creation is here<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[559],"tags":[634,643],"class_list":["post-825","post","type-post","status-publish","format-standard","hentry","category-ideas","tag-gnomedo","tag-idee"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts\/825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/comments?post=825"}],"version-history":[{"count":0,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts\/825\/revisions"}],"wp:attachment":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/media?parent=825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/categories?post=825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/tags?post=825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}