Bring Smalltalk into new technologies is always a hard but exciting job. In this talk we take another step from those already made, and we walk one of the possible approaches to build iPhone applications using Pharo.
Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?
This talk presents the HTML5 game development framework Phaser which focuses on Desktop and Mobile, shows common tools to improve the development workflow and to wrap the game into apps for the various mobile stores.
Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?
This talk presents the HTML5 game development framework Phaser which focuses on Desktop and Mobile, shows common tools to improve the development workflow and to wrap the game into apps for the various mobile stores.
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Alexander Blom, Isle of Code
Overview
Adding animations to web and hybrid apps can be challenging. Aside from choosing technique, you are often left with jank and less than desirable performance.
Objective
Audience members will leave with a better understanding of animation performance & pitfalls desktop and mobile context.
Target Audience
Web/Hybrid developers looking to improve animation performance.
Assumed Audience Knowledge
Basic JS/CSS assumed
Six Things Audience Members Will Learn
What are my choices when needing to animate?
What changes in a mobile context?
What are the tradeoffs and how do I decide?
What are the common pitfalls?
How do I debug performance problems?
Getting a smooth animation.
An high-level introduction to Phaser.js.
https://github.com/sH4rk0/meetupRush
https://github.com/sH4rk0/xmas2016
Thanks to Michel Wacker (@starnut) for some input.
Speed Up That Site! - a guide to caching pluginsPeter Baylies
This session will cover how to use popular free plugins to speed up sites and optimize them for better performance. We’ll go over basics of caching and discuss the pitfalls and issues you have to watch out for especially when working with typical shared hosting services.
This is *not* my presentation by any mean. It is the one Isaac Schlueter gave at nodeconf. I had to upload it here because it was only available in .key here http://dl.dropbox.com/u/3685/presentations/nodeconf-npm/index.html
We will cover whole of the web development basics comprising of HTML, CSS, JavaScript in this series.
Following are topics useful for any newbie to intermediate who is interested in learning Web Development
Slides used for the 2013 edition of the Access to Digital Archives Summer School at the University of Macerata. The workshop aimed to provide participants with tools for innovation, in particular business modeling.
Europeana Publishing Framework (Concept) at Culture JamEuropeana
Presentation given by Paul Keller (kennisland) and Harry Verwayen (Europeana) at the culture jam conference, Vienna July 9 2015. It explains the concept of the new publishing framework that supports cultural institutions participating in Europeana to share their material more openly and in higher quality.
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Alexander Blom, Isle of Code
Overview
Adding animations to web and hybrid apps can be challenging. Aside from choosing technique, you are often left with jank and less than desirable performance.
Objective
Audience members will leave with a better understanding of animation performance & pitfalls desktop and mobile context.
Target Audience
Web/Hybrid developers looking to improve animation performance.
Assumed Audience Knowledge
Basic JS/CSS assumed
Six Things Audience Members Will Learn
What are my choices when needing to animate?
What changes in a mobile context?
What are the tradeoffs and how do I decide?
What are the common pitfalls?
How do I debug performance problems?
Getting a smooth animation.
An high-level introduction to Phaser.js.
https://github.com/sH4rk0/meetupRush
https://github.com/sH4rk0/xmas2016
Thanks to Michel Wacker (@starnut) for some input.
Speed Up That Site! - a guide to caching pluginsPeter Baylies
This session will cover how to use popular free plugins to speed up sites and optimize them for better performance. We’ll go over basics of caching and discuss the pitfalls and issues you have to watch out for especially when working with typical shared hosting services.
This is *not* my presentation by any mean. It is the one Isaac Schlueter gave at nodeconf. I had to upload it here because it was only available in .key here http://dl.dropbox.com/u/3685/presentations/nodeconf-npm/index.html
We will cover whole of the web development basics comprising of HTML, CSS, JavaScript in this series.
Following are topics useful for any newbie to intermediate who is interested in learning Web Development
Slides used for the 2013 edition of the Access to Digital Archives Summer School at the University of Macerata. The workshop aimed to provide participants with tools for innovation, in particular business modeling.
Europeana Publishing Framework (Concept) at Culture JamEuropeana
Presentation given by Paul Keller (kennisland) and Harry Verwayen (Europeana) at the culture jam conference, Vienna July 9 2015. It explains the concept of the new publishing framework that supports cultural institutions participating in Europeana to share their material more openly and in higher quality.
A presentation developed by Preston Lewis to share with groups interested in learning more about how to build and sustain more relationships (networking), personal brands and leverage emerging technology.
A comparison of story structures within comics and cinema with an emphasis on how viewers and reader are led through storytelling. Examples from Ernie Bushmiller, Chris Ware, Bernie Kriegstein and David Mamet. Taught as a class session for CMS.405 Media and Methods: Seeing and Expression, a class in MIT's Comparative Media Studies Program taught by Glorianna Davenport.
Abel Gance & J'accuse: Cinematic Pacifism & Filmic PoetryRyan Evans
An exploration of Abel Gance's contributions to cinema technique and storytelling via his film, J'accuse (1919). Acknowledged as the first anti-war feature film, J'accuse is unique in its use of battlefield footage and soldiers on leave from the frontlines at Verdun as actors. Presented at <em>The Cambridge Center for Adult Education</em> with an associated screening of excerpts from the film. (November 2009)</p
"Leveraging the Event Loop for Blazing-Fast Applications!", Michael Di PriscoFwdays
Can the Microtask Queue help you improve your performances by 100x? It turns out it can, but how? JavaScript is single-threaded, yet it provides a really powerful Event Loop to allow non-blocking operations, so let's try to tame this beast together and get the most out of it! As I like to say: The Event Loop is the only infinite loop you'll love.
DevOps: Building by feature with immutable infrastructure at Serv.sgNicolas Mas
A DevOps experiment to make a Jira ticket describing a feature into a deployed application reachable at jira-ticket.serv.sg with a twist: the AWS infrastructure is dynamically created and destroyed once the feature is approved/rejected by the product team.
We use Slack, Jenkins, Ansible, Packer, Terraform, AWS, Jinja2 Cli, github
OSDC 2017 | Experiences with Rudder, is it really for everyone? by Florian HeiglNETWAYS
Rudder is a quite new configuration management system. You get a graphical interface that allows for easy editing of your policy, and includes very detailed reporting on your systems' compliance. Your policy is applied every few minutes, broken things are fixed till the system takes the right course again. All changes and the current state are reported visually to allow easy debugging, even for people who aren't the system's designer. Rudder is very much concerned with accessibility - let more people understand and enhance your environment. On the one end that's via the GUI, on the other end it's via APIs that let you access things you might not have dreamed of. I've made use of some of those features over the last two years, in a handful of setups. It's proven more helpful than I ever expected. I'd like to share my experiences with the tool and the project, many of them were quite exciting!
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneNETWAYS
Rudder is a quite new configuration management system. You get a graphical interface that allows for easy editing of your policy, and includes very detailed reporting on your systems' compliance. Your policy is applied every few minutes, broken things are fixed till the system takes the right course again. All changes and the current state are reported visually to allow easy debugging, even for people who aren't the system's designer. Rudder is very much concerned with accessibility - let more people understand and enhance your environment. On the one end that's via the GUI, on the other end it's via APIs that let you access things you might not have dreamed of. I've made use of some of those features over the last two years, in a handful of setups. It's proven more helpful than I ever expected. I'd like to share my experiences with the tool and the project, many of them were quite exciting!
Embracing Uncertainty: Learning to Think ResponsivelyChad Currie
Presented to IxDA Austin on March 6, 2013.
Adopting Responsive Web Design practices means shifting the way we work. Get practical suggestions for streamlining your design process in the multi-screen world.
Framer for the win - Using Framer prototypes for your app project. (For Melbo...Jinju Jang
This presentation is made for Melbourne Cocoaheads, where all iOS developers in town meets up once a month.
Since there are lots of prototyping tools released recently, I thought it would be helpful to share some benefits about using Framer for helping communications around design mock-ups better.
Special thanks for my client who gave me permission to showcase the work.
The roadmap of Pharo 7 and Pharo 8.
Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).
2. Disclaimer
I’m very sorry, my english sucks... badly
But I’ll do my best
3. Esteban Lorenzano
On 1994 G. Rossi teach me that Smalltalk was the
future.
But future wasn’t here, so I worked in a lot of crap
Until 2007, where I, with two friends founded
Smallworks to work on the future promised
5. The iPhone
Why we want to use it?
Capabilities
Think on i386
RAM Memory growing (256M for 3GS)
Just one thread at a time
6. Why Smalltalk?
Because we like it :)
Code fast and flexible
Get rid of that ugly compile cycle and memory
management issues
We can take benefict from the green threads of Pharo/
Squeak
7. Where do we stand?
“Ad hoc” VM
Objective-C bridge
Some applications already in the AppleStore
Look for “WikiServer” and “Fractions Calculator”, for
instance
So, thanks John!
8. Our goal
To provide a framework for programming
the iPhone in a “Smalltalk way”
9. Deimos - Basics (1)
“Some kind” MVC Framework
Model: Anything you want
View: a NIB file
Controller: Deimos
10. Deimos - Basics (2)
Uses external files
You need to compile the “Ad hoc” VM each time
This is because of the NIB files, mainly.
Uses ObjectiveC bridge
11. Deimos - Creating a view (1)
On Objective-C side
Yes... you need to create the NIB files outside the
smalltalk image
Very important: use #tag property from UI widgets
#tag is there for using it, so... is not so bad
(althought I don’t like it)
12. Deimos - Creating a view (2)
On Pharo side
Extend DEView
override #createViewDefinition and maybe
#initializeContents
Register for execution
13. Deimos - Access widgets
This is why the #tag property must be assigned: we
look for them recursively, as childs of an UIView
We wrap (and cache) all this UI widgets as equivallent
Deimos widgets
You look for them just once
You can interact with them as Smalltalk objects
14. Deimos - Event callbacks
Once you mapped your widget, it is very simple
15. Deimos - Navigate views
[#show:|#showModal:|push:]/#answer: circuit
Yes, very similar to Seaside, I “borrowed” that
#push: makes a show inside a navigation controller
(that “flows” the views). Works only when views are
inside a navigation.
16. Deimos - Internals (1)
Using contexts to handle window navigations
So we can stack views and control behavior in a
fashion way
17. Deimos - Internals (2)
Announcements for handling events
For internal use (e.g. #onAnswer:)
Also provided for developers
(yes, right now that means: me)
18. Deimos - Internals (3)
Using one green thread for each:
Delegate object
Event callback
This can be a problem in the future, but right now is
working pretty cool
19. Deimos - Internals (4)
Using WeakRegistry for disposing the not-used views
A controversial solution (but working)
Maybe we can use a “cached views solution” to get
better performance, but it is still being studied.
21. Problems found (1)
The “dead lock problem”
Being worked on (by John... and my self testing)
Philosophical problem: how do I test this?
Debugging is also a problem inside callbacks
22. Problems found (2)
Performance
Not really an issue, but you have to take into account
that you are programming for the iPhone
Image size
Very tight to performace
23. Future
...a Sponsor, maybe?
Stabilization and optimization
call & return full cycle support
I don’t like the #onAnswer: stuff...
I don’t know how to do this, and even if possible, but I
will try
Use bundles to avoid VM recompilation.
Cool be nice, but I’m not sure about this point... I like
more the next point
24. ...far in the future
Getting rid of NIB files, using a declarative style
Lot of problems to solve (aquire images, for instance)
But this will drive us back to full-smalltalk
programming, so it worths the effort.
Why not an iMagritte?
25. Why is called “Deimos”
It is not about greek/roman mythology
Is about “being around Mars”
“...but that’s another story, and should be told
another time” (Michael Ende, The Neverending Story)