Pharocasts: Display Picasa photos

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Pharocasts: Display Picasa photos

laurent laffont
Learn:
- how to get data from an URL
- parse XML documents
- build a GUI to display photos with Polymorph
- how to prototype quickly with debugger and inspector


Cheers,

Laurent Laffont

http://pharocasts.blogspot.com/
http://magaloma.blogspot.com/

_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Pharocasts: Display Picasa photos

garduino
Excellent!

2010/8/15 laurent laffont <[hidden email]>:

> Learn:
> - how to get data from an URL
> - parse XML documents
> - build a GUI to display photos with Polymorph
> - how to prototype quickly with debugger and inspector
> http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
> Cheers,
> Laurent Laffont
>
> http://pharocasts.blogspot.com/
> http://magaloma.blogspot.com/
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Pharocasts: Display Picasa photos

Stéphane Ducasse
+1

Stef
On Aug 16, 2010, at 12:14 AM, Germán Arduino wrote:

> Excellent!
>
> 2010/8/15 laurent laffont <[hidden email]>:
>> Learn:
>> - how to get data from an URL
>> - parse XML documents
>> - build a GUI to display photos with Polymorph
>> - how to prototype quickly with debugger and inspector
>> http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
>> Cheers,
>> Laurent Laffont
>>
>> http://pharocasts.blogspot.com/
>> http://magaloma.blogspot.com/
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [SPAM] Pharocasts: Display Picasa photos

Sven Van Caekenberghe
In reply to this post by laurent laffont
Hey Laurent,

Great, very instructive, good example, nice programming style!!

Sven

On 15 Aug 2010, at 23:00, laurent laffont wrote:

> Learn:
> - how to get data from an URL
> - parse XML documents
> - build a GUI to display photos with Polymorph
> - how to prototype quickly with debugger and inspector
>
> http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
>
> Cheers,
>
> Laurent Laffont
>
> http://pharocasts.blogspot.com/
> http://magaloma.blogspot.com/
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [SPAM] Pharocasts: Display Picasa photos

Igor Stasenko
+1 Very nice hacking excercise!
This is the way how developers should work! :)
Almost all aspects of hacking is covered:
- code in debugger
- finding implementations
- inspecting and exploring objects & classes.

Good work.

On 16 August 2010 12:44, Sven Van Caekenberghe <[hidden email]> wrote:

> Hey Laurent,
>
> Great, very instructive, good example, nice programming style!!
>
> Sven
>
> On 15 Aug 2010, at 23:00, laurent laffont wrote:
>
>> Learn:
>> - how to get data from an URL
>> - parse XML documents
>> - build a GUI to display photos with Polymorph
>> - how to prototype quickly with debugger and inspector
>>
>> http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
>>
>> Cheers,
>>
>> Laurent Laffont
>>
>> http://pharocasts.blogspot.com/
>> http://magaloma.blogspot.com/
>> _______________________________________________
>> Pharo-users mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
>
>
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [SPAM] Pharocasts: Display Picasa photos

laurent laffont
Thank you all ! I've tried to make a "Why Pharo is different" screencast, I'm pleased that it seems to work :) 

If you have the courage to put these comments on pharocasts itself (even to say it's crap, just tell why), I will be very grateful ! (and it shows that the community is here)

Cheers,

Laurent 

On Mon, Aug 16, 2010 at 11:57 AM, Igor Stasenko <[hidden email]> wrote:
+1 Very nice hacking excercise!
This is the way how developers should work! :)
Almost all aspects of hacking is covered:
- code in debugger
- finding implementations
- inspecting and exploring objects & classes.

Good work.

On 16 August 2010 12:44, Sven Van Caekenberghe <[hidden email]> wrote:
> Hey Laurent,
>
> Great, very instructive, good example, nice programming style!!
>
> Sven
>
> On 15 Aug 2010, at 23:00, laurent laffont wrote:
>
>> Learn:
>> - how to get data from an URL
>> - parse XML documents
>> - build a GUI to display photos with Polymorph
>> - how to prototype quickly with debugger and inspector
>>
>> http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
>>
>> Cheers,
>>
>> Laurent Laffont
>>
>> http://pharocasts.blogspot.com/
>> http://magaloma.blogspot.com/
>> _______________________________________________
>> Pharo-users mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
>
>
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Pharocasts: Display Picasa photos

laurent laffont
In reply to this post by garduino
Cool, it's on Pharocasts !

Laurent

On Mon, Aug 16, 2010 at 2:10 PM, Gary Chambers <[hidden email]> wrote:
Indeed, nice...

Here's an adaptation for Flickr...

| xmlStream xmlDoc photos builder clickBlock |
xmlStream := 'http://api.flickr.com/services/feeds/photos_public.gne?id=12018791@N06&lang=en-us&format=rss_200' asUrl retrieveContents contentStream.
xmlDoc := XMLDOMParser parseDocumentFrom: xmlStream.

photos := OrderedCollection new.
xmlDoc tagsNamed: #item do:
            [:item| | title thumbUrl photoUrl |
             title := (item firstTagNamed: #title) characterData.
             thumbUrl := ((item firstTagNamed: #media:thumbnail) attributeAt: #url) asUrl.
             photoUrl := ((item firstTagNamed: #media:content) attributeAt: #url) asUrl.
             photos add: title -> (Form fromBinaryStream: thumbUrl retrieveContents contentStream) -> photoUrl].

clickBlock := [:url :title | | scrollPane |
scrollPane := GeneralScrollPane new
 scrollTarget: (builder
 newImage: (Form fromBinaryStream: url retrieveContents contentStream)).
scrollPane openInWindow
 setLabel: title;
 extent: 600@400.
scrollPane color: Color transparent].

builder := UITheme builder.
((builder
  newRow: (photos collect:
                   [:aPhoto|
                    (builder
   newButtonFor: clickBlock
   getState: nil
   action: #value:value:
   arguments: {aPhoto value. aPhoto key key}
   getEnabled: nil
   label: ((builder newColumn: {
     builder newImage: aPhoto key value.
     builder newLabel: aPhoto key key})
     cellPositioning: #center;
     layoutInset: 10)
   help: nil)]))
wrapDirection: #topToBottom;
openInWindow)
 setLabel: (xmlDoc firstTagNamed: #title) characterData;
 extent: 700@680.


Regards, Gary

----- Original Message ----- From: "Germán Arduino" <[hidden email]>
To: <[hidden email]>
Cc: "A friendly place where any question about pharo is welcome" <[hidden email]>
Sent: Sunday, August 15, 2010 11:14 PM
Subject: Re: [Pharo-project] Pharocasts: Display Picasa photos



Excellent!

2010/8/15 laurent laffont <[hidden email]>:
Learn:
- how to get data from an URL
- parse XML documents
- build a GUI to display photos with Polymorph
- how to prototype quickly with debugger and inspector
http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
Cheers,
Laurent Laffont

http://pharocasts.blogspot.com/
http://magaloma.blogspot.com/

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Pharocasts: Display Picasa photos

Mariano Martinez Peck
Hi. I wouldn't like to loose all this cool pieces of code. Even if they are not complete, they work as examples. It would be good to create a ss project like ExternalWebApplicationsCommunication or something like that where you post all this code, Gary's one, and I remember others from your posts or other emails....



2010/8/16 laurent laffont <[hidden email]>
Cool, it's on Pharocasts !

Laurent


On Mon, Aug 16, 2010 at 2:10 PM, Gary Chambers <[hidden email]> wrote:
Indeed, nice...

Here's an adaptation for Flickr...

| xmlStream xmlDoc photos builder clickBlock |
xmlStream := 'http://api.flickr.com/services/feeds/photos_public.gne?id=12018791@N06&lang=en-us&format=rss_200' asUrl retrieveContents contentStream.
xmlDoc := XMLDOMParser parseDocumentFrom: xmlStream.

photos := OrderedCollection new.
xmlDoc tagsNamed: #item do:
            [:item| | title thumbUrl photoUrl |
             title := (item firstTagNamed: #title) characterData.
             thumbUrl := ((item firstTagNamed: #media:thumbnail) attributeAt: #url) asUrl.
             photoUrl := ((item firstTagNamed: #media:content) attributeAt: #url) asUrl.
             photos add: title -> (Form fromBinaryStream: thumbUrl retrieveContents contentStream) -> photoUrl].

clickBlock := [:url :title | | scrollPane |
scrollPane := GeneralScrollPane new
 scrollTarget: (builder
 newImage: (Form fromBinaryStream: url retrieveContents contentStream)).
scrollPane openInWindow
 setLabel: title;
 extent: 600@400.
scrollPane color: Color transparent].

builder := UITheme builder.
((builder
  newRow: (photos collect:
                   [:aPhoto|
                    (builder
   newButtonFor: clickBlock
   getState: nil
   action: #value:value:
   arguments: {aPhoto value. aPhoto key key}
   getEnabled: nil
   label: ((builder newColumn: {
     builder newImage: aPhoto key value.
     builder newLabel: aPhoto key key})
     cellPositioning: #center;
     layoutInset: 10)
   help: nil)]))
wrapDirection: #topToBottom;
openInWindow)
 setLabel: (xmlDoc firstTagNamed: #title) characterData;
 extent: 700@680.


Regards, Gary

----- Original Message ----- From: "Germán Arduino" <[hidden email]>
To: <[hidden email]>
Cc: "A friendly place where any question about pharo is welcome" <[hidden email]>
Sent: Sunday, August 15, 2010 11:14 PM
Subject: Re: [Pharo-project] Pharocasts: Display Picasa photos



Excellent!

2010/8/15 laurent laffont <[hidden email]>:
Learn:
- how to get data from an URL
- parse XML documents
- build a GUI to display photos with Polymorph
- how to prototype quickly with debugger and inspector
http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
Cheers,
Laurent Laffont

http://pharocasts.blogspot.com/
http://magaloma.blogspot.com/

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Pharocasts: Display Picasa photos

laurent laffont
HelpSystem may be more appropriate ?

Laurent

2010/8/16 Mariano Martinez Peck <[hidden email]>
Hi. I wouldn't like to loose all this cool pieces of code. Even if they are not complete, they work as examples. It would be good to create a ss project like ExternalWebApplicationsCommunication or something like that where you post all this code, Gary's one, and I remember others from your posts or other emails....



2010/8/16 laurent laffont <[hidden email]>

Cool, it's on Pharocasts !

Laurent


On Mon, Aug 16, 2010 at 2:10 PM, Gary Chambers <[hidden email]> wrote:
Indeed, nice...

Here's an adaptation for Flickr...

| xmlStream xmlDoc photos builder clickBlock |
xmlStream := 'http://api.flickr.com/services/feeds/photos_public.gne?id=12018791@N06&lang=en-us&format=rss_200' asUrl retrieveContents contentStream.
xmlDoc := XMLDOMParser parseDocumentFrom: xmlStream.

photos := OrderedCollection new.
xmlDoc tagsNamed: #item do:
            [:item| | title thumbUrl photoUrl |
             title := (item firstTagNamed: #title) characterData.
             thumbUrl := ((item firstTagNamed: #media:thumbnail) attributeAt: #url) asUrl.
             photoUrl := ((item firstTagNamed: #media:content) attributeAt: #url) asUrl.
             photos add: title -> (Form fromBinaryStream: thumbUrl retrieveContents contentStream) -> photoUrl].

clickBlock := [:url :title | | scrollPane |
scrollPane := GeneralScrollPane new
 scrollTarget: (builder
 newImage: (Form fromBinaryStream: url retrieveContents contentStream)).
scrollPane openInWindow
 setLabel: title;
 extent: 600@400.
scrollPane color: Color transparent].

builder := UITheme builder.
((builder
  newRow: (photos collect:
                   [:aPhoto|
                    (builder
   newButtonFor: clickBlock
   getState: nil
   action: #value:value:
   arguments: {aPhoto value. aPhoto key key}
   getEnabled: nil
   label: ((builder newColumn: {
     builder newImage: aPhoto key value.
     builder newLabel: aPhoto key key})
     cellPositioning: #center;
     layoutInset: 10)
   help: nil)]))
wrapDirection: #topToBottom;
openInWindow)
 setLabel: (xmlDoc firstTagNamed: #title) characterData;
 extent: 700@680.


Regards, Gary

----- Original Message ----- From: "Germán Arduino" <[hidden email]>
To: <[hidden email]>
Cc: "A friendly place where any question about pharo is welcome" <[hidden email]>
Sent: Sunday, August 15, 2010 11:14 PM
Subject: Re: [Pharo-project] Pharocasts: Display Picasa photos



Excellent!

2010/8/15 laurent laffont <[hidden email]>:
Learn:
- how to get data from an URL
- parse XML documents
- build a GUI to display photos with Polymorph
- how to prototype quickly with debugger and inspector
http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
Cheers,
Laurent Laffont

http://pharocasts.blogspot.com/
http://magaloma.blogspot.com/

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Pharocasts: Display Picasa photos

Stéphane Ducasse
I think that a chapter on fun scripting the web with pharo would be better than an help.


Stef

On Aug 16, 2010, at 3:14 PM, laurent laffont wrote:

> HelpSystem may be more appropriate ?
>
> Laurent
>
> 2010/8/16 Mariano Martinez Peck <[hidden email]>
> Hi. I wouldn't like to loose all this cool pieces of code. Even if they are not complete, they work as examples. It would be good to create a ss project like ExternalWebApplicationsCommunication or something like that where you post all this code, Gary's one, and I remember others from your posts or other emails....
>
>
>
> 2010/8/16 laurent laffont <[hidden email]>
>
> Cool, it's on Pharocasts !
>
> Laurent
>
>
> On Mon, Aug 16, 2010 at 2:10 PM, Gary Chambers <[hidden email]> wrote:
> Indeed, nice...
>
> Here's an adaptation for Flickr...
>
> | xmlStream xmlDoc photos builder clickBlock |
> xmlStream := 'http://api.flickr.com/services/feeds/photos_public.gne?id=12018791@N06&lang=en-us&format=rss_200' asUrl retrieveContents contentStream.
> xmlDoc := XMLDOMParser parseDocumentFrom: xmlStream.
>
> photos := OrderedCollection new.
> xmlDoc tagsNamed: #item do:
>             [:item| | title thumbUrl photoUrl |
>              title := (item firstTagNamed: #title) characterData.
>              thumbUrl := ((item firstTagNamed: #media:thumbnail) attributeAt: #url) asUrl.
>              photoUrl := ((item firstTagNamed: #media:content) attributeAt: #url) asUrl.
>              photos add: title -> (Form fromBinaryStream: thumbUrl retrieveContents contentStream) -> photoUrl].
>
> clickBlock := [:url :title | | scrollPane |
> scrollPane := GeneralScrollPane new
>  scrollTarget: (builder
>  newImage: (Form fromBinaryStream: url retrieveContents contentStream)).
> scrollPane openInWindow
>  setLabel: title;
>  extent: 600@400.
> scrollPane color: Color transparent].
>
> builder := UITheme builder.
> ((builder
>   newRow: (photos collect:
>                    [:aPhoto|
>                     (builder
>    newButtonFor: clickBlock
>    getState: nil
>    action: #value:value:
>    arguments: {aPhoto value. aPhoto key key}
>    getEnabled: nil
>    label: ((builder newColumn: {
>      builder newImage: aPhoto key value.
>      builder newLabel: aPhoto key key})
>      cellPositioning: #center;
>      layoutInset: 10)
>    help: nil)]))
> wrapDirection: #topToBottom;
> openInWindow)
>  setLabel: (xmlDoc firstTagNamed: #title) characterData;
>  extent: 700@680.
>
>
> Regards, Gary
>
> ----- Original Message ----- From: "Germán Arduino" <[hidden email]>
> To: <[hidden email]>
> Cc: "A friendly place where any question about pharo is welcome" <[hidden email]>
> Sent: Sunday, August 15, 2010 11:14 PM
> Subject: Re: [Pharo-project] Pharocasts: Display Picasa photos
>
>
>
> Excellent!
>
> 2010/8/15 laurent laffont <[hidden email]>:
> Learn:
> - how to get data from an URL
> - parse XML documents
> - build a GUI to display photos with Polymorph
> - how to prototype quickly with debugger and inspector
> http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
> Cheers,
> Laurent Laffont
>
> http://pharocasts.blogspot.com/
> http://magaloma.blogspot.com/
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project 
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-users mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users