SlideShare una empresa de Scribd logo
1 de 67
N. Shimizu <chikoski@gmail.com>       2011/08/18




                                                                    

Alloy
N. Shimizu (chikoski@gmail.com / @chikoski)
N. Shimizu <chikoski@gmail.com>   2011/08/18




•    #
• 
N. Shimizu <chikoski@gmail.com>   2011/08/18




•                       #
                        #
       50           #
• 6                                             #
            #
                #
N. Shimizu <chikoski@gmail.com>   2011/08/18




https://sites.google.com/site/softwareabstractionsja/
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alloy               Mac OS


• Java 1.5                    #
• Lion     Java                              #
                          #
    http://support.apple.com/kb/DL1421
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alloy   Mac OS
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alloy   Mac OS                (cont.)
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alloy             Mac OS                            (cont.)


•                 .app                                     #
     1.  Finder        #
     2.           +          +a#
     3.                                                #
     4.               .app         #
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alloy          Mac OS                    (cont.)


% mkdir alloy#
% cd alloy#
% mv ~/Downloads/alloy4.2-rc.jar alloy.jar#
% java -jar alloy.jar
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alloy   Mac OS                (cont.)
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




1.                                              #
2.  ‘Execute’                         #
3. 
                   2         #
4. 
                “Instance”
N. Shimizu <chikoski@gmail.com>   2011/08/18




2.1:
module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




1.  Show             #
2.            ‘Theme’    “Load Sample
   Theem”        #
3.  book/chapter2/theme.thm
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




3
module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




         b -> n -> a
module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




addr: b -> n -> a
Book	
     Name	
        Addr	
b0	
       n0	
          a0	
b0	
       n1	
          a1	
b0	
       n2	
          a1	
b1	
       n0	
          a2	
b1	
       n3	
          a2	
b1	
       n4	
          a1
N. Shimizu <chikoski@gmail.com>   2011/08/18




module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




             


module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




for
• 
                       #
•                      3#
• for 3 but 1 Book#
                       #
         Book         1#
N. Shimizu <chikoski@gmail.com>   2011/08/18




             


module tour/addressBook1#
sig Name, Addr {}#
sig Book{#
     #addr: Name -> lone Addr#
}#
pred show{}#
run show for 3 but 1 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




pred show(b: Book){#
    ##(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




#


pred show(b: Book){#
    ##(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




pred show(b: Book){#
    ##(b.addr) > 1#
    #some n:Name | #n.(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




some x: e | F

• e           x          F                              #
• some n:Name | #n.(b.addr) > 1#
    Name              n       #
    #n.(b.addr) > 1       #
N. Shimizu <chikoski@gmail.com>   2011/08/18




addr: b -> n -> a
Book	
     Name	
        Addr	
b0	
       n0	
          a0	
b0	
       n1	
          a1	
b0	
       n2	
          a1	
b1	
       n0	
          a2	
b1	
       n3	
          a2	
b1	
       n4	
          a1
N. Shimizu <chikoski@gmail.com>   2011/08/18




# n.(b.addr) > 1
Book	
     Name	
        Addr	
b0	
       n0	
          a0	
b0	
       n1	
          a1	
b0	
       n2	
          a1
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




sig Book{#
      #addr: Name -> lone Addr#
}#
pred show(b: Book){#
      ##(b.addr) > 1#
      #some n:Name | #n.(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




pred show(b: Book){#
    ##(b.addr) > 1#
    ##Name.(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




pred show(b: Book){#
    ##(b.addr) > 1#
    ##Name.(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




2.2




pred add (b, b' : Book , n: Name, a:Addr){#
       #b'.addr = b.addr + n -> a#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




pred showAdd(b, b': Book, n:Name, a:Addr){#
    #add [b, b', n, a]#
    ##Name.(b.addr) > 1#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




run showAdd for 3 but 2 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18




                                  2 Book




run showAdd for 3 but 2 Book
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




pred del(b, b': Book, n:Name){#
     #b'.addr = b.addr - n -> Addr#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




fun lookup(b: Book, n:Name): set Addr{#
    #n.(b.addr)#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




assert delUndoesAdd{#
     #all b, b', b'': Book, n:Name, a:Addr |#
     #       #no n.(b.addr) and #
     #       #add [b, b', n, a] and #
     #       #del[b, b'', n]#
     #       #implies b.addr = b''.addr#
}#
N. Shimizu <chikoski@gmail.com>   2011/08/18




                                  (Assertion)
• 
•                                                        #
                                                                      #
              Java      assert#
         p  assert(args.length > 0)#

         p  assert(a != null)#
N. Shimizu <chikoski@gmail.com>   2011/08/18




assert delUndoesAdd{#
     #all b, b', b'': Book, n:Name, a:Addr |#
     #       #no n.(b.addr) and #
     #       #add [b, b', n, a] and #
     #       #del[b’, b'', n]#
     #       #implies b.addr = b''.addr#
}#
N. Shimizu <chikoski@gmail.com>   2011/08/18




check delUndoesAdd for 3
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




assert delUndoesAdd{#
    #all b, b', b'': Book, n:Name, a:Addr |#
    #     #add [b, b', n, a] and del[b, b'', n]#
    #     #implies b.addr = b''.addr#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




all x: e | F

• e                x          F                                 #
• all n:Name | #n.(b.addr) > 1#
    Name              n       #
    #n.(b.addr) > 1       #
N. Shimizu <chikoski@gmail.com>   2011/08/18




書式	
       意味	
some e	
   e はタプルをいくつか持つ	
no e	
     e はタプルを持たない	
lone e	
   e はタプルを多くても1つ持つ	
one e	
    e はタプルをちょうど1つ持つ
N. Shimizu <chikoski@gmail.com>   2011/08/18




演算子	
       短縮形式	
        意味	
not	
       !	
           否定	
and 	
      &&	
          連言	
or	
        ||	
          選言	
implies	
   =>	
          含意	
iff	
       <=>	
         両含意
N. Shimizu <chikoski@gmail.com>   2011/08/18




2.3:



•                         #
• Java
N. Shimizu <chikoski@gmail.com>   2011/08/18




module tour/addressBook2#
#
abstract sig Target {}#
sig Addr extends Target {}#
abstract sig Name extends Target{}#
sig Alias, Group extends Name {}#
sig Book { addr: Name -> Target}
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




•                  ‘Execute’   “Show
     MetaModel”#
•                         M
N. Shimizu <chikoski@gmail.com>   2011/08/18




fact{#
     #all b:Book | #
     #     #no n:Name | n in n.^(b.addr)#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




                   





sib Book{addr: Name -> Target} {#
    #no n:Name | n in n.^addr#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18




in :

• p in q p q                                       #
• n in n.^(b.addr) #
    n   n^(b.addr)                        #
    n n                addr                             #
N. Shimizu <chikoski@gmail.com>   2011/08/18




^:



•            r                                               #
• ^r = r + r.r + r.r.r + r.r.r.r + …
N. Shimizu <chikoski@gmail.com>   2011/08/18




Alais




pred show(b: Book) { some Alias.(b.addr)}
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




        Addr                                  Group


sig Book { addr: Name -> Target}{#
    #all a: Alias | lone a.addr#
}
N. Shimizu <chikoski@gmail.com>   2011/08/18
N. Shimizu <chikoski@gmail.com>   2011/08/18




•                   #
• 
     #
•             #

Más contenido relacionado

Más de Noritada Shimizu

2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.jsNoritada Shimizu
 
20151128 firefoxos-handson
20151128 firefoxos-handson20151128 firefoxos-handson
20151128 firefoxos-handsonNoritada Shimizu
 
Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Noritada Shimizu
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handsonNoritada Shimizu
 
20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS appsNoritada Shimizu
 
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Firefox OS  でアプリを作るときに気をつけたい N 個のことFirefox OS  でアプリを作るときに気をつけたい N 個のこと
Firefox OS でアプリを作るときに気をつけたい N 個のことNoritada Shimizu
 
Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Noritada Shimizu
 
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)Noritada Shimizu
 
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceApplication submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceNoritada Shimizu
 
つくろう!Firefox OS アプリ
つくろう!Firefox OS アプリつくろう!Firefox OS アプリ
つくろう!Firefox OS アプリNoritada Shimizu
 
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworldNoritada Shimizu
 
20141115 fx os-codereading
20141115 fx os-codereading20141115 fx os-codereading
20141115 fx os-codereadingNoritada Shimizu
 
20141030 html5j-firefox os-deviceapi
20141030 html5j-firefox os-deviceapi20141030 html5j-firefox os-deviceapi
20141030 html5j-firefox os-deviceapiNoritada Shimizu
 
20140830 firefox os-sampler
20140830 firefox os-sampler20140830 firefox os-sampler
20140830 firefox os-samplerNoritada Shimizu
 
20140801 webrtc on-firefox
20140801 webrtc on-firefox20140801 webrtc on-firefox
20140801 webrtc on-firefoxNoritada Shimizu
 

Más de Noritada Shimizu (20)

2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js
 
20151224-games
20151224-games20151224-games
20151224-games
 
20151128 firefoxos-handson
20151128 firefoxos-handson20151128 firefoxos-handson
20151128 firefoxos-handson
 
20151117 devtools
20151117 devtools20151117 devtools
20151117 devtools
 
Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発
 
20150822 osc-shimane
20150822 osc-shimane20150822 osc-shimane
20150822 osc-shimane
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handson
 
20150829 firefox-os
20150829 firefox-os20150829 firefox-os
20150829 firefox-os
 
20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps
 
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Firefox OS  でアプリを作るときに気をつけたい N 個のことFirefox OS  でアプリを作るときに気をつけたい N 個のこと
Firefox OS でアプリを作るときに気をつけたい N 個のこと
 
Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)
 
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
 
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceApplication submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
 
つくろう!Firefox OS アプリ
つくろう!Firefox OS アプリつくろう!Firefox OS アプリ
つくろう!Firefox OS アプリ
 
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld
 
20141115 fx os-codereading
20141115 fx os-codereading20141115 fx os-codereading
20141115 fx os-codereading
 
20141030 html5j-firefox os-deviceapi
20141030 html5j-firefox os-deviceapi20141030 html5j-firefox os-deviceapi
20141030 html5j-firefox os-deviceapi
 
20140830 firefox os-sampler
20140830 firefox os-sampler20140830 firefox os-sampler
20140830 firefox os-sampler
 
20140801 webrtc on-firefox
20140801 webrtc on-firefox20140801 webrtc on-firefox
20140801 webrtc on-firefox
 
20140702 webide
20140702 webide20140702 webide
20140702 webide
 

Último

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Último (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Alloy tutorial document on Mac OS installation