< 1 2
2 of 2
Apple Script je zvanicno mrtav
Posted: 04 November 2011 10:43 AM   [ # 16 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  835
Joined  2008-12-28

madamov wrote:

AppleScript je prvenstveno namenjen skriptovanju aplikacija, a potom su uvideli da tadašnji Mac OS 7 nema praktično nikakav načn za interprogramsku komunikaciju pa su iskoristili stvar i za to.

Upravo to pricam: Na OSX-u prakticno nema pajpova niti zvanja izvrsnih fajlova sa parametrima. Apple Script je de facto jedini standard za komunikaciju izmedju programa. Sad banalan je primer da bilo koji App Store program ubuduce nece moci da koristi growl ali lepo ilustruje kakva ogranicenja su u toku. Jasno mi je kako je Apple Script bio zamisljen ali se odavno pre svega koristi kao lepak protokol.

Ono sto je ostalo dozvoljeno je da se app obraca iTunesu, Address booku, location services i kalendaru (samo ako to deklarise). Sa druge strane bilo kakva 3rd party app <-> 3rd party app komunikacija nije dozvoljena. Ne mogu da se ne setim kako je Camera+ sutnuta iz iOS radnje zato sto je koristila volume taster za slikanje a onda par meseci kasnije Apple uradio isto. Sad su svi skriptabilne 3rd party aplikacije gradjani drugog reda - ja sam ohrabren da pisem iTunes helper ali ne i Radium helper. Koristim samo kao primer kojim sam se bavio, ima paralela i za iCal prema ostalim kalendar programima i slicno.

Najmanje mi je u celoj prici bitan CoverToaster, niti sam se namucio niti je nesto silno zaradio. Prosto vidim Apple Script (ako uopste prezivi) kao power user tool koji niko u stvari ne koristi i gomilu iOS like aplikacija koje su ostrva za sebe. Sto je isto kao prakticno mrtav, ziv je na papiru ali se ne koristi za sta se velikom vecinom koristio godinama.

Profile
 
Posted: 04 November 2011 02:16 PM   [ # 17 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  535
Joined  2010-06-20

Mene iz cele ove price zanima iskljucivo:

Zasto vas toliko boli k*rac? Koga briga da li ce postojati jedan ili drugi jezik, sem ako zivi od doticnog?

Zbog cega vidim komentare da planirate prelaz na drugu platformu, ako to*i*to…
Koga briga da li cemo imati iOS lock screen i da li necemo imati apple script, ako programi zbog kojih i koristimo ovo sto koristimo, rade savrseno?
Ako mogu da upalim PS i da odradim bilboard na 1gb rama.
Ako mogu da imam sistem koji ne pomislja na probleme vec 7 godina.
Ako mogu da uz nekoliko klikova ispunim svaku suludu zelju uz pomoc nekog utila.
Ako kada zavrsim sa poslom, mogu da sednem na kompjuter, i da samo jednostavno uzivam u tome da SVE RADI KAKO TREBA…

Apple Script nije namenjen tome, ali je koriscen za to. Zar sumnjate da ce trebati i nedelju dana da iskoriste nesto drugo za isto to?

Ovde nema mesta za kukanje zbog ios-izacije sistema ili zbog ‘odlaska’ apple scripta. Iz prostog razloga sto to nista ne menja na planu koji je bitan.
Kao da kukam zato sto mi je jedna guma na biciklu pukla, pa sam je zamenio novom, i ‘sada vise nikada nista nece biti isto!’

Povrh svega, ako ste kukali toliko zbog ios-izacije, zasto vas briga uopste sta ce biti zahtevi za Mac App Store???

EDIT:
Koliko vidim ovako nesto pogadja samo developere kojima projekti zavise direktno od upotrebe MAS+AS. Ako gresim negde, ja se ponizno izvinjavam…

Post edited by: Marko Mitranic, at: 2011/11/04 14:19

Profile
 
Posted: 04 November 2011 03:02 PM   [ # 18 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  443
Joined  2005-05-16

b]dusanx wrote:[/b]

Upravo to pricam: Na OSX-u prakticno nema pajpova niti zvanja izvrsnih fajlova sa parametrima.

Kako bre nema, a NSTask? Kako misliš da radi gomila programa, koji su samo UI za CLI programe koji se vrte u pozadini? A da se ne spuštamo niže na POSIX nivo (system() i exec() familija funkcija). I šta podrazumevaš pod ‘pajpovi’?

Apple Script je de facto jedini standard za komunikaciju izmedju programa.

??? Počev od UNIX nivoa, gde se mogu koristiti pipes, sockets i ostale stvari iz UNIX-ovog IPC-a, preko Carbon AEvents, pa sve do Cocoa nivoa, sa NSDistantObject, NSConnection, NSPort, odnosno ceo tzv. Cocoa DIstributed Objects deo, postoji gomila načna za komunikaciju među programima.

Nastavljamo da pričamo o istoj stvari na drugačji načn. AppleScript je napravljen sa namenom da se njima skriptuju programi (od strane korisnika) i za tu svrhu koristi AEvents. E sada se neko setio da u Cocoa ubaci klasu NSAppleScript, njome prikrije sav prljavi AEvents mambo-džambo i pojednostavi stvari. Ni to se nije desilo samom pojavom Cocoa frejmvorka, ta klasa se pojavila tek u Jaguaru. Pre toga, ako si hteo da iz svog programa komuniciraš sa drugim programom koji podržava AS, lepo u Carbon pa udri po AEvents API-ju (koji je užasno komplikovan). Dakle, to što možeš iz svog programa preko AS-a da komuniciraš sa drugim je samo posledica implementacije, nije namena jezika. Pitaj bilo koga, čji program podržava AS, da li su uopšte imali u vidu takvu namenu, kada su pravili podršku za AS? Mislim, da se razumemo, dobro dođe ako i to može (iz drugog programa); ali nije to svrha. Sve to, uz čnjenicu da je (za sada) ograničeno na MAS, stavlja izjavu ‘AppleScript je zvanično mrtav’ u red bombastičnih izjava u medijima, kako bi se privukla pažnja auditorijuma. Ovde se uopšte ne radi o AS-u.

Sa druge strane bilo kakva 3rd party app <-> 3rd party app komunikacija nije dozvoljena.

Nije tačno. Evo šta kaže ‘App Sandbox Design Guide’:

The following app behaviors are incompatible with App Sandbox:
bla, bla, bla,...
………………
Sending Apple events to arbitrary appsWith App Sandbox, you can receive Apple events and respond to Apple events, but you cannot send Apple events to arbitrary apps.
………………
bla, bla, bla,...

Dakle, nema komunikacije između programa korišćenjem AEvents-a. Nigde ništa ne kaže za Cocoa Distributed Objects API, koristeći njega možeš da komuniciraš među programima do mile volje. Naravno, da bi to bilo moguće, programi to moraju da podržavaju. Ako ne podržavaju, pa ništa onda, ne podržavaju svi programi ni AS skriptovanje, ni sa njima ne može da se komunicira. Da kažem prostim rečma: programer je napravio program i pritom odlučo da pruži korisnicima mogućnost da program skriptuju i nateraju ga nešto da radi. U tu svrhu programer definiše nešto kao rečnik, kojim korisniku kaže šta sve može od programa da zatraži, tako da ovaj može da napiše sledeći skript:

[code:1]tell application ‘SuperLoto’
  daj bre dobitnu kombinaciju za sedmicu
end tell[/code:1]

Dakle, programer definiše rečnik jezika, kojim korisnik komunicira sa programom. Kao što rekoh, zgodno je došla ta NSAppleScript klasa, pa se isto može uraditi i iz drugog programa. Ako je programeru bilo bitno samo da omogući da korisnici skriptuju program, baš ga briga oko sandboxinga u MAS-u. Ako je programeru baš stalo da i ostale kolege mogu iz njihovih programa (koji su sandboxovani i u MAS-u) da komuniciraju sa njegovim, onda će lepo za kolege da obezbedi API, koji će oni da koriste u tu svrhu. API implementacija će koristiti distribuirane objekte, a ako je programer lepo vaspitan, oko cele implementacije će se sam pomučti, a kolegama ponuditi API sa jasnim i jednostavnim metodama (sintaksom poruka, koje mogu da pošalju njegovom remek delu i kakve odgovore na te poruke mogu da očekuju). Naravno, sve ovo pada u vodu, ako se sandbox restrikcije odnose i na distribuirane objekte i na bilo kakvu interproces komunikaciju, ali ja to nisam uspeo da pronađem ni u dokumentaciji, ni na webu, a i lista sandbox entitlement-a ne ukazuje na to.

Sad banalan je primer da bilo koji App Store program ubuduce nece moci da koristi growl ali lepo ilustruje kakva ogranicenja su u toku.

Zar Growl ne omogućava i jedno i drugo? Nemam pojma, nisam ni koristio, ni gledao dokumentaciju niti bilo šta, ali koliko sam upoznat, možeš da skriptuješ neki GrowlHelper.app (ili tako nešto); koji radi u pozadini, sa ispišeš neko Growl obaveštenje, ali možeš i da koristiš neki Cocoa API, koji je koliko sam informisan baziran baš na Cocoa distribuiranim objektima, da GrowHelper-u pošalješ poruku. Ako programeri koriste ovo drugo (pod uslovom da sam u pravu); ne bi trebalo da bude zime za MAS programe koji komuniciraju sa Growl-om.

… ja sam ohrabren da pisem iTunes helper ali ne i Radium helper. Koristim samo kao primer kojim sam se bavio, ima paralela i za iCal prema ostalim kalendar programima i slicno.

Javi autorima Radiuma da urade ono što sam gore naveo. Ako neće znač da: (i) ih baš briga da neki drugi program komunicira sa njihovim, (ii) baš briga za MAS. Što se tiče iCal-a i ostalih Epl programa, verovatan ishod je (i).

Najmanje mi je u celoj prici bitan CoverToaster, niti sam se namucio niti je nesto silno zaradio. Prosto vidim Apple Script (ako uopste prezivi) kao power user tool koji niko u stvari ne koristi i gomilu iOS like aplikacija koje su ostrva za sebe. Sto je isto kao prakticno mrtav, ziv je na papiru ali se ne koristi za sta se velikom vecinom koristio godinama.

Ja ću u to da poverujem (za šta se AS uglavnom koristi) kada izneseš neke relevante brojke (a to neće biti moguće). Sajtova sa AS primerima i živim diskusijama ima dosta (valjda ne postoje samo postojanja radi); a programi koji komuniciraju sa drugim programima preko AS-a (dakle baš AS-a, a ne direktno AEnevt-a) predstavljaju verovatno manje od 1% svih OSX programa.

Profile
 
Posted: 04 November 2011 03:04 PM   [ # 19 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  443
Joined  2005-05-16

Marko Mitranic wrote:

......

Ako može bez banalizacije diskusije.

Profile
 
Posted: 04 November 2011 04:12 PM   [ # 20 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  835
Joined  2008-12-28

milke wrote:

Kako bre nema, a NSTask? Kako misliš da radi gomila programa, koji su samo UI za CLI programe koji se vrte u pozadini? A da se ne spuštamo niže na POSIX nivo (system() i exec() familija funkcija). I šta podrazumevaš pod ‘pajpovi’?

Nastavljamo da pričamo o istoj stvari na drugačji načn.

Slazem se. Naravno znam za druge nacine komunikacije ali oni prakticno postoje samo ako ti pises oba programa koji komuniciraju. Za ostalo je tu uvek do sada bio Apple Script.

Za exec i ostale low level pozive nisam nasao izricitu zabranu ali na osnovu WWDC price plus par threadova na developer forumu _mislim_ da ni to nece moci da se koristi. Ovo cu jos da proverim. Sandbox aplikacija prakticno ne vidi ostatak fajl sistema pa bilo kakav /bin/bash -c nesto nesto nema sanse da prodje (znam da je bezveze primer).

Na jednom mestu u jednom od dva WWDC videa se kaze da ‘svaka komunikacija izmedju programa nosi rizik i da vecina stvari koje smo radili skriptovima moze apijem’ pri cemu su kao primer uzeli finder skriptove. Sad to sve stoji i jeste opasan skripting findera ali ja na osnovu toga _pretpostavljam_ da ni Cocoa Distributed Objects nece raditi izmedju aplikacija (nisam se igrao time do sada). Iz cele price sam shvatio da nije samo Apple Script u pitanju nego bilo kakva komunikacija. Pokusacu da preslusam ponovo pa nadjem tacnu minutazu gde se pominje.

Ovo sve valja proveriti, pokusacu da nadjem nesto zvanicno. Sad opet logikom, ne bi ukidali script a ostavili druge nacine komunikacije otvorene.

Ako imas dev nalog pa budes gledao ona dva videa zanima me kako tumacis zabranu. Pokusacu da nadjem a ne da prepricavam i tumacim svakako.

Da budem skroz jasan: meni se bar 80% izmena bas dopada. Apple Script mi je bolna tacka jer je bio zgodan za mnogo stvari. Razumem da svaki app razdvoji podrsku na ‘javni’ i ‘user’ deo, tako nesto bi pozdravio. Samo se zalim sto je AS ubijen bez prave zamene bar u sledecih x meseci.

Edit:

Evo nasao sam nesto na dev forumu. To jeste nezvanicno mesto ali je odgovarao Apple zaposleni. Apple Events, Distributed Objects i Distributed Notification Center ne mogu da se koriste za sad. Jedini nacin je da app dobije temporary exception entitlement pa da radi jos neko vreme.

Naziv threada je ‘Distributed objects and other IPC’, link je https://devforums.apple.com/message/460945#460945 ako jos neko moze da baci pogled. Ne bih pastovao ovde posto je u confidential forumu.

Post edited by: dusanx, at: 2011/11/04 17:08

Profile
 
Posted: 08 November 2011 01:12 AM   [ # 21 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  443
Joined  2005-05-16

Prošao vikend, pa sam našao malo vremena da odem u Lion i napravim dva prosta programa koji komuniciraju preko DO, server i klijent. Čim se klijentu uključ sandboxing i rebuild-uje ne može da šalje zahtev serveru. Dakle, nema ništa ni od distribuiranih objekata pod sandboxingom (osim ako se ne traži com.apple.security.temporary-exception.mach-lookup.global-name temporary entitlement, a pitanje je koliko će dugo to važiti).

Videćemo kako će se ovo razvijati.

Profile
 
Posted: 08 November 2011 07:20 AM   [ # 22 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  835
Joined  2008-12-28

Apple na dev forumima preporucuje otvaranje support ticketa i cekanje odgovora. To sam i uradio (vise pod dobrim izgovorom da bih video sta se desava nego sto mi stvarno nesto zavisi od CoverToastera) pa javljam kad stigne odgovor.

Neki developeri su dobili com.apple.security.temporary-exception.apple-events plus specifikaciju aplikacija kojima smeju da se obracaju, na primer com.catpigstudios.Radium.plist itd. Ceo spisak ide u entitlements naravno. To mi se cini kao prava mera, ako uvedu kao stalni entitlement to bi resilo sve prigovore a bilo bi dosta sigurnije od sirom otvorenog sistema.

Profile
 
Posted: 09 November 2011 03:56 PM   [ # 23 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  535
Joined  2010-06-20

Izvini milke,

nisam nameravao da spamujem, vise sam onako laicki predstavio svoj pogled, i pitanje. 😛

Profile
 
Posted: 16 November 2011 08:50 AM   [ # 24 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  835
Joined  2008-12-28

Update:

Moj ticket je spojen sa jos par, Apple razmatra sta ce pa ce javiti.

Jos jedan prilican problem koji nisam stigao da ispitam ali sad citam o tome: globalni shortcutovi bilo koje vrste su isto zabranjeni.  Sad logicno da tako moze da se napravi key logger i da nekako moraju da osiguraju sistem ali je bas veliko ogranicenje. Bilo koja aplikacija koja dozvoljava definisanje hotkeyeva i njihovo koricenje dok program nema fokus za sad vise ne moze na app store.

Profile
 
Posted: 22 February 2012 07:49 AM   [ # 25 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  835
Joined  2008-12-28

Update:

Odlozeno sa Novembra na Mart na Jun.

http://9to5mac.com/2012/02/21/apple-extends-deadline-for-sandboxing-mac-app-store-apps-to-jun-1/

Po samoj formulaciji lici da su malo oladili pritisak.

Profile
 
Posted: 18 November 2016 04:10 AM   [ # 26 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  835
Joined  2008-12-28

http://mjtsai.com/blog/2016/11/16/thank-you-sal/

Otpusten Sal Saghoian, Kralj od User Scriptinga i Automatizacije. Ili mu je ugaseno radno mesto, ako je bitna definicija. Jos nije jasno sta je sa ostatkom tima.

Gruber kaze

http://daringfireball.net/linked/2016/11/16/sal-soghoian

This sounds ominous. Just this week in my review of the new MacBook Pros, a huge part of my argument for why I feel so much more productive on a Mac than an iPad revolves around the automation technologies that Soghoian’s group developed. I have the impression that Soghoian was a bit of a rebel within Apple, fighting the good fight to keep advancing the Mac’s automation tools. If they had simply fired him, that’d be one thing, but the fact that they’ve eliminated his position is another. This is shitty news. I find this to be a profoundly worrisome turn of events for the future of the Mac. I hope I’m wrong.

Jbg. Voleo bih da sam omasio citanje svih znakova jos pre tri godine.

Profile
 
 < 1 2
2 of 2
‹‹ MOVED: iTunes Sync      MOVED: Kucni red ››