Discovering the Clojure language is more effective when you have good tool support. I cover the setup of a really great (perfect?) clojure development environment using
Emacs 24
Clojure mode
Marmalade repository
Leiningen build tool
Autocomplete manual installation
Lightbox, the future of Clojure IDE's ?
Thank you.
It is widely understood that our software needs to become reactive; we need to consider responsiveness, maintainability, elasticity and scalability from the outset. Not all systems need to implement all these to the same degree, as specific project requirements will determine where effort is most wisely spent. But, in the vast majority of cases, the need to go reactive will demand that we design our applications differently.
In this presentation Dr. Roland Kuhn will explore several architecture elements that are commonly found in reactive systems, like the circuit breaker, various replication techniques, and flow control protocols. These patterns are language agnostic and also independent of the abundant choice of reactive programming frameworks and libraries. They are well-specified starting points for exploring the design space of a concrete problem: thinking is strictly required!
This webinar is based off of Dr. Kuhn’s session, Reactive Design Sessions, presented at WJAX and Code Mesh.
It is widely understood that our software needs to become reactive; we need to consider responsiveness, maintainability, elasticity and scalability from the outset. Not all systems need to implement all these to the same degree, as specific project requirements will determine where effort is most wisely spent. But, in the vast majority of cases, the need to go reactive will demand that we design our applications differently.
In this presentation Dr. Roland Kuhn will explore several architecture elements that are commonly found in reactive systems, like the circuit breaker, various replication techniques, and flow control protocols. These patterns are language agnostic and also independent of the abundant choice of reactive programming frameworks and libraries. They are well-specified starting points for exploring the design space of a concrete problem: thinking is strictly required!
This webinar is based off of Dr. Kuhn’s session, Reactive Design Sessions, presented at WJAX and Code Mesh.
Download this Presentation for free from www.ecti.co.in/downloads.html
No SIGN UP REQUIRED.
C Programming Training PPTs / PDFs for free.
Download free C Programming study material. Learn C Programming for free in 2 hours.
Programming C Language Tutorial. Its an Learning document for base programming. Its an copied data from some websites and books. I tried to make more easier through this documents.
My talk at BarCamp London 5: An introduction to Cocoa development and how web developers can cheat.
Source code to go with this presentation is available here: http://georgebrock.com/conferences/barcamplondon5
This is the Complete course of C Programming Language for Beginners. All Topics of C programming Language are covered in this single power point presentation.
Visit: www.cyberlabzone.com
To use a Mac keyboard shortcut, press and hold one or more modifier keys and then press the last key of the shortcut. Mac Keyboard shortcuts and productivity go hand in hand. You can eliminate the extra steps involved in performing a task and improve your operational efficiency. So, if you are all geared up to bolster your multitasking, check out the list of these keyboard shortcuts for macOS.
The collection of Mac Keyboard Shortcuts for macOS can help users get the most from their iMacs, MacBook Pro and MacBook Laptop. We assume that all above keyboard shortcuts will help you. The available mac keyboard shortcuts can be a real challenge. Mac keyboard shortcuts allow you to do things on your computer that would typically you to use a mouse, trackpad and another device.
The collection of Mac Keyboard Shortcuts for macOS can help users get the most from their iMacs, MacBook Pro and MacBook Laptop. We assume that all above keyboard shortcuts will help you. The available mac keyboard shortcuts can be a real challenge. Mac keyboard shortcuts allow you to do things on your computer that would typically you to use a mouse, trackpad and another device.
Confessions of a developer community builderJohn Stevenson
Slides from my talk on building developer communities at London Software Craftsmanship conference 5th & 6th October.
I share my experiences of interacting with the software development community over the last 22 years.
Discussion includes what kinds of events you could run in your community and how to get your community started.
Download this Presentation for free from www.ecti.co.in/downloads.html
No SIGN UP REQUIRED.
C Programming Training PPTs / PDFs for free.
Download free C Programming study material. Learn C Programming for free in 2 hours.
Programming C Language Tutorial. Its an Learning document for base programming. Its an copied data from some websites and books. I tried to make more easier through this documents.
My talk at BarCamp London 5: An introduction to Cocoa development and how web developers can cheat.
Source code to go with this presentation is available here: http://georgebrock.com/conferences/barcamplondon5
This is the Complete course of C Programming Language for Beginners. All Topics of C programming Language are covered in this single power point presentation.
Visit: www.cyberlabzone.com
To use a Mac keyboard shortcut, press and hold one or more modifier keys and then press the last key of the shortcut. Mac Keyboard shortcuts and productivity go hand in hand. You can eliminate the extra steps involved in performing a task and improve your operational efficiency. So, if you are all geared up to bolster your multitasking, check out the list of these keyboard shortcuts for macOS.
The collection of Mac Keyboard Shortcuts for macOS can help users get the most from their iMacs, MacBook Pro and MacBook Laptop. We assume that all above keyboard shortcuts will help you. The available mac keyboard shortcuts can be a real challenge. Mac keyboard shortcuts allow you to do things on your computer that would typically you to use a mouse, trackpad and another device.
The collection of Mac Keyboard Shortcuts for macOS can help users get the most from their iMacs, MacBook Pro and MacBook Laptop. We assume that all above keyboard shortcuts will help you. The available mac keyboard shortcuts can be a real challenge. Mac keyboard shortcuts allow you to do things on your computer that would typically you to use a mouse, trackpad and another device.
Confessions of a developer community builderJohn Stevenson
Slides from my talk on building developer communities at London Software Craftsmanship conference 5th & 6th October.
I share my experiences of interacting with the software development community over the last 22 years.
Discussion includes what kinds of events you could run in your community and how to get your community started.
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptJohn Stevenson
Progscon 2017 conference talk, introducing Clojurescript for a functional programming approach to building React.js apps.
Examples include using React.js directly and the Om Clojurescript library that closely follows the React.js API. Also cover a simpler approach to React with the Clojurescript libraries called Reagent and Rum.
Discussing the challenges of communication that affect us all and techniques to help you be more effective
- Six Thinking Hats
- Thinking Fast & Slow
- Cognitive bias / confirmation bias
This talk was last given at DevRelCon in London, December 2016.
Get into Functional Programming with ClojureJohn Stevenson
A brief guide on how to think in the way of Functional Programming, using Clojure as the example code.
Covers the main concepts and abstractions within Functional Programming & Clojure
Presented at several conferences and meetup events through 2016, with a video captured via GoPro at CeBIT Developer world 2016 on youtube at:
https://www.youtube.com/watch?v=mEfqULqChZs
Helping others learn Clojure can be a little different to how you learnt. What makes sense for one person may not make relate to another persons experiences. This presentation gives a brief introduction to guiding people into Clojure.
This presentation was first given at Clojure Remote 2016
Git and github - Verson Control for the Modern DeveloperJohn Stevenson
An introduction to Git and Github, tools for distributed version control that give an easy to use and highly collaborative approach to version code and configuration.
An overview of Functional Programming and Clojure, helping you understand the importance of minimising side effects and walking through examples of functional programming concepts.
Dreamforce14 Metadata Management with Git Version ControlJohn Stevenson
An introduction to using Git version control to manage changes in the metadata of your Salesforce Org as you develop your apps.
Your app is put into an unmanaged package, copied to your local machine with Force.com CLI and changes pushed to Github using Github for Mac/Windows client.
An introduction to Heroku, the Platform as a Service from Salesforce for all your customer facing applications.
Discover how to get going with the Heroku platform and additional services you can use to speed up the deployment of your custom application.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
8. Get Emacs
(sorry vi people)
C – means control key, M – means meta key
9. Download & Install Emacs
Linux
sudo apt-add-repository
ppa:cassou/emacs
sudo apt-get update
sudo apt-get install emacs-snapshot
Mac Windows
EmacsForMacOSX.com Use Cygwin?
C – means control key, M – means meta key
10. In the meantime: Usual Suspects
Netbeans
IntelliJ
Eclipse
C – means control key, M – means meta key
11. Configure emacs
… you will have an .el of a time
C – means control key, M – means meta key
12. Configs live in ~/.emacs.d folder
~/.emacs.d
folder created when Emacs first run
~/.emacs.d/init.el
main configuration file for Emacs
You can define multiple .el config files as long as they are on the
Emacs load path. init.el is the read first.
C – means control key, M – means meta key
13. Give Emacs a
Clojure injection
… lots of starter-kits, only one for Clojure
C – means control key, M – means meta key
15. Add the package repository
;; Add Marmalade package archive for Emacs starter kit
;; and tonnes of other packages to your .emacs.d/init.el
(require 'package)
(add-to-list
'package-archives
'("marmalade" .
"http://marmalade-
repo.org/packages/"))
C – means control key, M – means meta key
16. Specify package to load
(when (not package-archive-contents)
(package-refresh-contents))
(defvar my-packages '(starter-kit
starter-kit-lisp
starter-kit-
eshell
starter-kit-
bindings
clojure-mode
clojure-test-mode M – means meta key
C – means control key,
17. Didn't get all that typed??
Clone my Emacs Clojure Kickstart repository on
github.com/jr0cket
git clone
https://jr0cket@github.com/
jr0cket/Emacs-clojure-
kickstart.git
~/.emacs.d
The git clone command should all be on one line, but would not be as readable on the slide
C – means control key, M – means meta key
18. Re-start Emacs
… watch clojure and other goodies be
automatically downloaded and added.
C – means control key, M – means meta key
19. In the meantime, Clooj
Clojure IDE in Clojure
github.com/arthuredelstein/clooj
C – means control key, M – means meta key
43. le in in g e n
Leiningen
.o rg
lein new Create a new clojure project
lein deps Download all dependencies
lein repl Start the interactive shell (repl)
lein jack-in Start repl server
C – means control key, M – means meta key
44. Create a new project
lein new my-project
cd my-project
lein deps
C – means control key, M – means meta key
45. Open project in emacs
cd my-project
emacs project.clj
C – means control key, M – means meta key
51. Find file in project
C – c f
Select one of the files available in the current
Clojure project
- the file doesnt have to be open in Emacs
C – means control key, M – means meta key
52. Fire up the REPL
M – x
clojure-
jack-in
C – means control key, M – means meta key
53. Define your own Global short-cut
Open your .emacs.d/init.el file and add:
(global-set-key
(kbd "C-c C-j") 'clojure-jack-
in)
In Emacs, start the REPL with
C – c C – j
C – means control key, M – means meta key
54. More Cool short-cuts
later
… but its easy, right!
C – means control key, M – means meta key
56. Jump around in functions
C – M – f
C – M – b
C – M – u
C – means control key, M – means meta key
57. Jump between function
definitions
C – M – Home
C – M – End
Skip through your code function by function
C – means control key, M – means meta key
58. Jump between function
definitions
C – M – a
C – M – e
Jump to the start or end of a function definintion
C – means control key, M – means meta key
59. Keep balanced,
use
ParEdit
C – means control key, M – means meta key
60. ParEdit matches ( [ { ' ”
Prevents unbalanced parents and quotes
Example
Cant delete either parens that surround characters
(fubar) without first deleting all the characters
Pull code into brackets
Reorganise code around brackets
C – means control key, M – means meta key
61. Pull code in
M – )
Pull the next block of code inside
C – means control key, M – means meta key
62. Push code in
M – (
Push the next block of code outside ??????
C – means control key, M – means meta key
63. Clojure related commands
C-c TAB: Autocomplete symbol at point
C-x C-e: Eval the form under the point
C-c C-k: Compile the current buffer
C-c C-l: Load current buffer and force
dependent namespaces to reload
M-.: Jump to the definition of a var
C-c S-i: Inspect a value
C-c C-m: Macroexpand the call under the point
C – means control key, M – means meta key
65. The easy way
Clone Sam Aarons Live Coding repository
github.com/overtone/emacs-live
C – means control key, M – means meta key
66. The manual way
Add the auto-complete package dependencies to
~/.emacs.d/init.el
popup
Download the Git repository
https://github.com/m2ym/auto-complete
M – x load-file
autocomplete/etc/install.el
C – means control key, M – means meta key
67. Other cool stuff to help
you discover Clojure
C – means control key, M – means meta key