A talk about XS Fun, an easy-going tutorial to Perl XS:
https://github.com/xsawyerx/xs-fun
This talk was originally given at Cluj.pm, on November 7th, 2013.
Various coding styles I hate seeing. It's a rant, but a fun one. Uses Spiderman to help illustrate my angst.
This talk was originally given at Cluj.pm, on November 7th, 2013.
Presentation for JS Fes at Phandeeyar. Some portion of Code
credit to plura sight, and other slides and internet itself.
https://www.facebook.com/events/747170712042236/
These are the slides for the talk I gave at YAPC::EU 2012 called Asynchronous Programming FTW! It tries to explain what async programming is with examples of a few Perl async frameworks.
Shell and perl scripting classes in mumbai
best Shell and perl scripting classes in mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
Torne seu código legível com enums | Cocoa heads 2018 fortaleza - Ramires Mor...Ramires Moreira
Uma talk que visa mostrar o poder de enums em swift, o que temos aqui é um apanhando de posts que encontrei na comunidade e tento trazer isso de forma simples.
Various coding styles I hate seeing. It's a rant, but a fun one. Uses Spiderman to help illustrate my angst.
This talk was originally given at Cluj.pm, on November 7th, 2013.
Presentation for JS Fes at Phandeeyar. Some portion of Code
credit to plura sight, and other slides and internet itself.
https://www.facebook.com/events/747170712042236/
These are the slides for the talk I gave at YAPC::EU 2012 called Asynchronous Programming FTW! It tries to explain what async programming is with examples of a few Perl async frameworks.
Shell and perl scripting classes in mumbai
best Shell and perl scripting classes in mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
Torne seu código legível com enums | Cocoa heads 2018 fortaleza - Ramires Mor...Ramires Moreira
Uma talk que visa mostrar o poder de enums em swift, o que temos aqui é um apanhando de posts que encontrei na comunidade e tento trazer isso de forma simples.
By Tobias Grosser, Scalable Parallel Computing Laboratory
The COSMO climate and weather model delivers daily forecasts for Switzerland and many other nations. As a traditional HPC application it was developed with SIMD-CPUs in mind and large manual efforts were required to enable the 2016 move to GPU acceleration. As today's high-performance computer systems increasingly rely on accelerators to reach peak performance and manual translation to accelerators is both costly and difficult to maintain, we propose a fully automatic accelerator compiler for the automatic translation of scientific Fortran codes to CUDA GPU accelerated systems. Several challenges had to be overcome to make this reality: 1) improved scalability, 2) automatic data placement using unified memory, 3) loop rescheduling to expose coarse-grained parallelism, 4) inter-procedural loop optimization, and 5) plenty of performance tuning. Our evaluation shows that end-to-end automatic accelerator compilation is possible for non-trivial portions of the COSMO climate model, despite the lack of complete static information. Non-trivial loop optimizations previously implemented manually are performed fully automatically and memory management happens fully transparently using unified memory. Our preliminary results show notable performance improvements over sequential CPU code (40s to 8s reduction in execution time) and we are currently working on closing the remaining gap to hand-tuned GPU code. This talk is a status update on our most recent efforts and also intended to gather feedback on future research plans towards automatically mapping COSMO to FPGAs.
Tobias Grosser Bio
Tobias Grosser is a senior researcher in the Scalable Parallel Computing Laboratory (SPCL) of Torsten Hoefler at the Computer Science Department of ETH Zürich. Supported by a Google PhD Fellowship he received his doctoral degree from Universite Pierre et Marie Curie under the supervision of Albert Cohen. Tobias' research is taking place at the border of low-level compilers and high-level program transformations with the goal of enabling complex - but highly-beneficial - program transformations in a production compiler environment. He develops with the Polly loop optimizer a loop transformation framework which today is a community project supported throught the Polly Labs research laboratory. Tobias also developed advanced tiling schemes for the efficient execution of iterated stencils. Today Tobias leads the heterogeneous compute efforts in the Swiss University funded ComPASC project and is about to start a three year NSF Ambizione project on advancing automatic compilation and heterogenization techniques at ETH Zurich.
Email
bgerofi@riken.jp
For more info on The Linaro High Performance Computing (HPC) visit https://www.linaro.org/sig/hpc/
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best PracticesJohannes Hoppe
Of course, a presentation about JavaScript should be made with HTML5 & JavaScript. So, here it is! Enjoy the show at http://johanneshoppe.github.com/JsBestPractices/ . You might also want to fork it on GitHub (https://github.com/JohannesHoppe/JsBestPractices) or save it as an old-fashioned static PDF from Slideshare.
"Fearless Concurrency" is the promise Rust make to those that use to multi-thread programming.
How it is well known from programmers, dealing with multi-threads programming means sove a complex problem, where errors can rise from unexpected situations.
With Rust the language will take care to provide constructs that made simple handling those issues, forcing the programmer to use the needed discipline throught the Ownership rules and the Type System.
This is the Moose talk I gave at YAPC::NA 2012.
It included a practical example of a Moose objects code, a simple app called Comican. The code is not available online. If you want it, just email me (sawyer ATT cpan DOTT org).
By Tobias Grosser, Scalable Parallel Computing Laboratory
The COSMO climate and weather model delivers daily forecasts for Switzerland and many other nations. As a traditional HPC application it was developed with SIMD-CPUs in mind and large manual efforts were required to enable the 2016 move to GPU acceleration. As today's high-performance computer systems increasingly rely on accelerators to reach peak performance and manual translation to accelerators is both costly and difficult to maintain, we propose a fully automatic accelerator compiler for the automatic translation of scientific Fortran codes to CUDA GPU accelerated systems. Several challenges had to be overcome to make this reality: 1) improved scalability, 2) automatic data placement using unified memory, 3) loop rescheduling to expose coarse-grained parallelism, 4) inter-procedural loop optimization, and 5) plenty of performance tuning. Our evaluation shows that end-to-end automatic accelerator compilation is possible for non-trivial portions of the COSMO climate model, despite the lack of complete static information. Non-trivial loop optimizations previously implemented manually are performed fully automatically and memory management happens fully transparently using unified memory. Our preliminary results show notable performance improvements over sequential CPU code (40s to 8s reduction in execution time) and we are currently working on closing the remaining gap to hand-tuned GPU code. This talk is a status update on our most recent efforts and also intended to gather feedback on future research plans towards automatically mapping COSMO to FPGAs.
Tobias Grosser Bio
Tobias Grosser is a senior researcher in the Scalable Parallel Computing Laboratory (SPCL) of Torsten Hoefler at the Computer Science Department of ETH Zürich. Supported by a Google PhD Fellowship he received his doctoral degree from Universite Pierre et Marie Curie under the supervision of Albert Cohen. Tobias' research is taking place at the border of low-level compilers and high-level program transformations with the goal of enabling complex - but highly-beneficial - program transformations in a production compiler environment. He develops with the Polly loop optimizer a loop transformation framework which today is a community project supported throught the Polly Labs research laboratory. Tobias also developed advanced tiling schemes for the efficient execution of iterated stencils. Today Tobias leads the heterogeneous compute efforts in the Swiss University funded ComPASC project and is about to start a three year NSF Ambizione project on advancing automatic compilation and heterogenization techniques at ETH Zurich.
Email
bgerofi@riken.jp
For more info on The Linaro High Performance Computing (HPC) visit https://www.linaro.org/sig/hpc/
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best PracticesJohannes Hoppe
Of course, a presentation about JavaScript should be made with HTML5 & JavaScript. So, here it is! Enjoy the show at http://johanneshoppe.github.com/JsBestPractices/ . You might also want to fork it on GitHub (https://github.com/JohannesHoppe/JsBestPractices) or save it as an old-fashioned static PDF from Slideshare.
"Fearless Concurrency" is the promise Rust make to those that use to multi-thread programming.
How it is well known from programmers, dealing with multi-threads programming means sove a complex problem, where errors can rise from unexpected situations.
With Rust the language will take care to provide constructs that made simple handling those issues, forcing the programmer to use the needed discipline throught the Ownership rules and the Type System.
This is the Moose talk I gave at YAPC::NA 2012.
It included a practical example of a Moose objects code, a simple app called Comican. The code is not available online. If you want it, just email me (sawyer ATT cpan DOTT org).
Our local state, my, my - Understanding Perl variablesxSawyer
This talk should explain the different ways to define Perl variables. What each one does and how they work. It will help you avoid problems with incorrect variable definition and to learn how to use variables in a smarter manner.
This was the last talk of a Tel Aviv Perl Mongers (TA.pm) group meeting.
Your first website in under a minute with DancerxSawyer
Learn how to write your first website using Perl and Dancer in under a minute!
This is a lightning talk given at a Tel Aviv Perl Mongers (TA.pm) group meeting.
These are the slides I used at a lecture in YAPC::EU 2010 about running Perl on the Android mobile device operating system.
There is a screencast (audio + video) of it, which will hopefully become available soon.
This an attempt I've made at installing Dancer, the Perl web framework, on an Android emulator using ASE (Android Scripting Environment).
Plenty of things have changed since then, and when I make another attempt, I'll publish that as well.
These are slides from a lecture on Red Flags in Programming that took place at an Israeli Open Source Developers meeting.
Red flags in programming are signs that you likely made a mistake with your application design or code.
Noticing and avoiding these mistakes help us write better code, at any language.
The subject related to mostly dynamic (higher level) languages, even though the sample code is in Perl.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
2. XS is...
A glue layer between Perl and C/C++
Sections, macros, functions
Requires knowledge with C, Perl API, XS, typemaps
Written by our very best
Complex, difficult, strenuous, laborious, painful, formidable
(additional words can be found in thesaurus.com )
An impediment to Modern Perl
3.
4. XS is
misunderstood
No need to be an expert
Basic Perl API is simple
XS is not too difficult
Lots of options
All documented
5. Except...
... except those that aren't documented
... except that the official tutorial sucks
... except that there's no better (or any other full) tutorial
(at least not one I could find)
7. XS Fun
A tutorial making XS fun
Starts easy, progresses slowly
Split to chapters, each taking a small task
A lot of explanations for beginners
All examples work
10. Quick glossary
SV = Scalar Value
Of:
IV = Integer Value (m $ = - 0
y i
3)
UV = Unsigned Integer Value (m $ = 3 0 . .
y u
00.)
NV = Double Value (m $ = 3 . 7 )
y d
071
PV = String Value (m $ = ' e l w r d )
y s
hlo ol'
SV = (another) Scalar Value
AH = Array Value (m @ = q < e l w r d )
y a
whlo ol>
HV = Hash Value (m % = ( h l o = ' o l ' )
y h
el > wrd )
RV = Reference Value (m $ a h e = h
y hsrf
%)
That's it for now
12. XSFun.pm
pcaeXFn
akg Su;
uesrc;
s tit
uewrig;
s anns
ueEpre;
s xotr
ueXLae;
s Sodr
uebs 'xotr;
s ae Epre'
or$ESO
u VRIN
='.0'
001;
or%XOTTG =('l'= [wgtvrin])
u EPR_AS
al > q<e_eso> ;
or@XOTO
u EPR_K =(@ $XOTTG{al}})
{ EPR_AS'l'
;
XLae:la('Su' $ESO )
Sodr:od XFn, VRIN ;
1
;
13. XSFun.xs
#nld "XENh
icue ETR."
#nld "elh
icue pr."
#nld "SBh
icue XU."
#nld "poth
icue ppr."
MDL =XFn
OUE
Su
PCAE=XFn
AKG
Su
dul
obe
adnmesdul a dul b
d_ubr(obe , obe )
CD:
OE
RTA =a+b
EVL
;
OTU:
UPT
RTA
EVL
S *
V
adnmespr(V*,S *)
d_ubr_elS a V b
CD:
OE
{
cntdul sm=SN()+SN()
os obe u
vVa
vVb;
RTA =nwVvsm;
EVL
eSn(u)
}
OTU:RTA
UPT EVL
14. XSFun.xs (more)
#nld <hoarn.>
icue crmpith
/ i tecd scin*
* n h oe eto /
cntca *
os hr
gtvrin)
e_eso(
CD:
OE
RTA =crmpitgtvrin)
EVL
hoarn_e_eso(;
OTU:RTA
UPT EVL
#i vrint
n eso.:
ueXFn'al;
s Su :l'
i(gtvrin) '..' 'hoarn vrini 600 )
s e_eso(, 600, crmpit eso s ..' ;
tvrint. o
/eso. . k
Altssscesu.
l et ucsfl
Fls1 Tss1 0wlcoksc (00 ur 00 ss+ 00 cs
ie=, et=,
allc es
.3 s
.1 y
.2 ur
00 cy = 00 CU
.0 ss
.6 P)
Rsl:PS
eut AS
19. Constructor
#I Pr:
n el
sbnw{bes{,sit}
u e
ls } hf
#o..
r.
sbnw{
u e
m $ls =sit #o $[]
y cas
hf;
r _0
m %ah =(;
y hs
)
m $ef =hs;
y sl
%ah
rtr bes$ef $ls;
eun ls sl, cas
}
20. #Pr-el
uePr
sbnw{
u e
m $ls =sit #o $[]
y cas
hf;
r _0
m %ah =(;
y hs
)
m $ef =hs;
y sl
%ah
rtr bes$ef $ls;
eun ls sl, cas
}
/ i X *
* n S /
S *
V
nw cntca *ls )
e( os hr cas
CD:
OE
/ Cet ahs *
* rae
ah /
H*hs =nwV)
V ah
eH(;
/ Cet arfrnet tehs *
* rae
eeec o h ah /
S*cntsl =nwVnic (V*hs )
V os ef
eR_on( S )ah ;
/ besit tepoe pcae*
* ls no h rpr akg /
RTA =s_ls(sl,g_tsp(cas 0))
EVL
vbes ef vsahv ls,
;
OTU:RTA
UPT EVL