SlideShare a Scribd company logo
1 of 83
A false digital alibi on Mac OS X
Dario Di Nucci
Fabio Palomba
Stefano Ricchiuti
University of Salerno
Challange and solutions
domenica 15 luglio 12
Focusing on Mac OS X
Mac OS X & Forensic:how and what?
Evaluation of the work
A case study
- Developing the false digital alibi
- A post-mortem digital forensic
Is realistic a false digital alibi on a Mac OS X?
domenica 15 luglio 12
Focusing on Mac OS X
Chapter 3
in the thesis
domenica 15 luglio 12
Use of BTree
Journaling
Max File Dim 263
Max Folder Dim 231
Hierarchical File System+
domenica 15 luglio 12
Disk utility
Manager of all file systems in
your Mac
Complete information
retrieving on all disks
Improve stability and
performance
Runnable from live
boot
Fix the file system errors
Prevent errors
First AID
Disk Utility
domenica 15 luglio 12
....What is right,
what is wrong...
Mac apps
domenica 15 luglio 12
File Vault
User Password: Crypt and Decrypt
Disk
Master Password: For System
recovering
XTS - AES 128 bit Cryptography
domenica 15 luglio 12
Time Machine
All action on files (deleted,
modified, moved) are recorded on
external disk
The actions are revertable!
Huge impact on Digital
Forensic
domenica 15 luglio 12
Why analyze these?
Create false digital evidences is possible!
How?
Construct a false digital alibi using
built-in software
domenica 15 luglio 12
A false digital alibi: how to...
domenica 15 luglio 12
“AppleScript is a scripting language that
makes possible direct control of scriptable
applications and of many parts of the Mac
OS. With scriptable applications, users can
write scripts to automate operations.”
[https://developer.apple.com]
A false digital alibi: how to...
AppleScript
domenica 15 luglio 12
tell application "Finder" to quit
display dialog "Mostra Files nascosti..." buttons {"Si", "No", "Annulla"}
default button 3
copy the result as list to {buttonpressed}
try
if the buttonpressed is "No" then do shell script ¬
"defaults write com.apple.finder AppleShowAllFiles OFF"
if the buttonpressed is "Si" then do shell script ¬
"defaults write com.apple.finder AppleShowAllFiles ON"
end try
tell application "Finder" to launch
Example...
A false digital alibi: how to...
domenica 15 luglio 12
“Automator is your personal automation
assistant, making it easy for you to do more,
and with less hassle.With Automator, you use
a simple drag-and-drop process to create and
run “automation recipes” that perform simple
or complex tasks for you, when and where you
need them.”
[http://support.apple.com]
Automator
A false digital alibi: how to...
domenica 15 luglio 12
A false digital alibi: how to...
domenica 15 luglio 12
V
S
Automator or AppleScript?
Actions via Drag & Drop
Simple to learn and use
What about translation?
Direct control on Mac OS X
REJECT
ACCEPT
domenica 15 luglio 12
A case study
Chapter 4
in the thesis
domenica 15 luglio 12
Developing the
false digital alibi
Paragraph 4.A - 4.B
in the thesis
domenica 15 luglio 12
Automatism setup
Best practices
Software built-in is better!
Automatism habits-based
Needs to clean all traces!
No stupid error!
domenica 15 luglio 12
The false digital alibi maker
Automatism setup - Structural Decomposition
The automatism activator
Manager of the actions of
delection of traces and
scheduling
domenica 15 luglio 12
Automatism setup - Structural Decomposition
How to develop these modules?
Bottom-up
Develop the Simulator before
the others modules allows us to
understand which are the traces
to cover
domenica 15 luglio 12
The Simulator module
domenica 15 luglio 12
AppleScript at work
at
9.00
am
at
10.00
am
at 12.00 am
at 15.00 pm
domenica 15 luglio 12
AppleScript at work
domenica 15 luglio 12
AppleScript as app
this is the simulator
module!
domenica 15 luglio 12
The Wiper/Scheduler module
domenica 15 luglio 12
How retrieve traces of the automation?
domenica 15 luglio 12
Double execution
Manual execution -> State t1
Launch automatism -> State t2
Find of the accessed and modified files in t1 e t2
Retrieve differences between t1 and t2
domenica 15 luglio 12
/System/Library/Components/AppleScript.component
/System/Library/Components/AppleScript.component/Contents
/System/Library/Components/AppleScript.component/Contents/Resources
/System/Library/Components/AppleScript.component/Contents/Resources/
Italian.lproj
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
/Applications/Utilities/AppleScript Editor.app/Contents/Resources/
ScriptEditor.help/Contents/Resources
/Applications/Utilities/AppleScript Editor.app/Contents/Resources/
ScriptEditor.help/Contents/Resources/Italian.lproj
Anomalies in accessed files
find / -amin -3 > accessedFiles.txt
domenica 15 luglio 12
Anomalies in modified files
/private/var/log/asl/AUX.2012.06.04
/private/var/log/asl/AUX.2012.06.04/3793
/private/var/log/asl/AUX.2012.06.04/3795
/private/var/log/asl/AUX.2012.06.04/3803
/private/var/log/DiagnosticMessages/2012.06.04.asl
/private/var/log/DiagnosticMessages/StoreData
/private/var/log/opendirectoryd.log
/private/var/log/secure.log/private/var/log/system.log
find / -mmin -3 > modifiedFiles.txt
domenica 15 luglio 12
How remove this traces?
domenica 15 luglio 12
Via software
Removing traces
The software must delete itself!
Interpreted language!
domenica 15 luglio 12
Removing traces
Python
Interpreted language!
Very simple for complex jobs!
domenica 15 luglio 12
Removing traces
Retrieve the last access dates of a
resource before running the automation
os.path.getatime(%PATH)
touch -c -t -%TIME -%PATH
Roll-back last access time after the
execution of the script
Run automation (Simulator module)
domenica 15 luglio 12
Removing traces
Compiling Python files...why?
Introduction of indirect traces!
Cannot clean its own traces!
A stand-alone app doesn’t leave traces,
AT ALL!
domenica 15 luglio 12
Removing traces
Compiling Python files...how?
curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py -U setuptools
sudo easy_install -U py2app
py2applet --make-setup MyApplication.py
python setup.py py2app -A
this is the WIPER/
SCHEDULER module!
domenica 15 luglio 12
And what about the direct traces?
domenica 15 luglio 12
Names of legal apps for the modules
e.g.Wiper/Scheduler = Caffeine.app
Secure deletion of modules and
rename legal apps
Obfuscating direct traces
domenica 15 luglio 12
Names of the apps are not suspect
The apps used in the process are apps really installed
on the laptop!
All references to these apps are legal!
Obfuscating direct traces
domenica 15 luglio 12
The Launcher module
domenica 15 luglio 12
Problem: How launch the procedure?
Solution
A launcher module is needed
Wiper/Scheduler module needs
administrator privileges
domenica 15 luglio 12
Terminal???
Launcher module
It’s not a good idea because
some resources would be touch!
Bash History
Shell resources
Other resources
domenica 15 luglio 12
Launcher module
AppleScript can leave traces!
AppleScript???
Who cleans these traces???
domenica 15 luglio 12
Python, again!
Launcher module
Compiled Python app, again!
os.system("echo password|sudo -S /Volumes/MYPEN/Anonimus_e-
Mail.app/Contents/MacOS/Anonimus_e-Mail")
this is the launcher
module!
domenica 15 luglio 12
Problem
Launcher can’t be deleted while
running!
Launcher
callWiperScheduler()
callSimulator()
Wiper/Scheduler Simulator
When the Simulator ends its execution,Wiper/
Scheduler does not delete the Launcher
module because is the Launcher that keep alive
the Wiper/Scheduler!
domenica 15 luglio 12
Solution
Use of threads
ppid=os.getppid()
pid=os.fork()
if pid==0 :
os.kill(pid, signal.SIGKILL)
Launcher
callWiperScheduler()
callSimulator()
Wiper/Scheduler Simulator
os.fork()
Wiper/Scheduler
kill()
Using a thread we create a “good brother” of
Wiper/Scheduler.This allows the “bad brother”
to kill the Launcher module, keeping alive the
good brother and the whole work of the
Wiper/Scheduler module
domenica 15 luglio 12
But this operation leave
undesiderable traces in the log files
wifipers3128 sudo[1357]:password : TTY=unknown ; PWD=/Volumes/
MYPEN/Caffeine.app/Contents/Resources ; USER=root ; COMMAND=/
Volumes/MYPEN/Anonimus_e-Mail.app/Contents/MacOS/Anonimus_e-Mail
host-001 [0x0-0x71071].org.pythonmac.unspecified.Caffeine[1406]:
1410 Killed: 9 | sudo -S /Volumes/MYPEN/Anonimus_e-Mail.app/
Contents/MacOS/Anonimus_e-Mail
.log
domenica 15 luglio 12
Copy the log files before the automatism
Replace the log files containing
traces, with the previous one
Solving the problem...
AUTOMATION
domenica 15 luglio 12
How bring the files on a laptop?
domenica 15 luglio 12
curl -O http://remote_resources
More possibilities
Get a remote resource - curl command
Use a resource of Dropbox
domenica 15 luglio 12
Occam’s razor
“When things being equivalent,
a simpler explanation
is better than a more complex one”
Put files on a pendrive with
non-journaled file system
domenica 15 luglio 12
Summarizing...
domenica 15 luglio 12
...The structure of the process
Wiper/Scheduler
Simulator
Sniffomucca.app
Caffeine.app
anonimous_e-
mail.app
Launcher
domenica 15 luglio 12
MYPEN Contents - Before
Caffeine_p.app
SniffoMucca_p.app
Anonimous_e-mail_p.app
Caffeine.app + Caffeine.py
SniffoMucca.app
Anonimous_e-mail.app + Anonimous_e-mail.py
Automatism apps Legal apps
domenica 15 luglio 12
MYPEN Contents - After
Caffeine.app
SniffoMucca.app
Anonimous_e-mail.app
Legal apps
domenica 15 luglio 12
Where can we test the procedure?
Where can we test the whole process?
domenica 15 luglio 12
Enviroment setup
Virtual Machine:Why?
Come back to another state of disk is
simple
Needed to build and test the false
alibi procedure
domenica 15 luglio 12
Virtual Machine:The choise
VIRTUALBOX
PARALLELS
DESKTOP
VMWARE
FUSION
Creation
Management
License
domenica 15 luglio 12
Virtual Machine:The choise
VIRTUALBOX
PARALLELS
DESKTOP
VMWARE
FUSION
Creation
Management
License
domenica 15 luglio 12
Virtual Machine:The choise
VIRTUALBOX
PARALLELS
DESKTOP
VMWARE
FUSION
Creation
Management
License
domenica 15 luglio 12
Virtual Machine:The choise
VIRTUALBOX
PARALLELS
DESKTOP
VMWARE
FUSION
Creation
Management
License
ACCEPT
domenica 15 luglio 12
Enviroment setup
goal
Generate an exact duplicate of the
source media under investigation
The destination media MUST BE
erased!
Some tools could be used: dd,
dcfldd, dc3dd
domenica 15 luglio 12
Enviroment setup
First step
HD 1 HD 2
dd if=/dev/zero of=dev/disk bs=512 conv=notrunc
domenica 15 luglio 12
Second step
Enviroment setup
HD 1
domenica 15 luglio 12
Enviroment setup
Third step
HD 1
HD 2
dd if=/dev/sda of=dev/sdb bs=512 conv=notrunc
domenica 15 luglio 12
A post-mortem
digital forensic
Paragraph 4.C
in the thesis
domenica 15 luglio 12
The only way for being sure about
the construction on the false
digital alibi is to do a digital
forensic analysis on the hard disk,
on the pendrive and in the log
files!
Digital forensic
“The use of scientifically derived and proven methods toward the
preservation, collection, validation, identification, analysis,
interpretation, documentation and presentation of digital evidence
derived from digital sources for the purpose of facilitating of
furthering the reconstruction of events found to be criminal, or
helping to anticipate unauthorized action shown to be disruptive to
planned operations.”
[Digital Forensics ResearchWorkshop I - 2001]
domenica 15 luglio 12
Digital forensic - How
secure.log
system.log
.bash_history
Safari resources
We have to search in the log files of Mac OS X
“Mac OS X, iPod, and iPhone Forensic Analysis Toolkit”
domenica 15 luglio 12
About log files
We have already talk about the log files
The copy on the pendrive before the
automatism does not allow to have surprises!
Anyways, we used a grep command on the
log filed
grep iAmTheAutomatism7777 /private/var/log/secure.log
grep iAmTheAutomatism7777 /private/var/log/system.log
domenica 15 luglio 12
Bash History
.bash_history is an hidden file located in the user home
domenica 15 luglio 12
About Bash History
The bash history file is never
directly open in the process
All the comands are runned
by Python!
.bash_history is empty!
domenica 15 luglio 12
Safari Resources - Cache.db
domenica 15 luglio 12
About Cache.db
"#“
! _
_CFURLStringType_CFURLString
_
http://www.google.it/s?hl=it&gs_nf=1&cp=20&gs_id=14&xhr=t&q=Extract%20class
%20Fowler&pf=p&output=search&sclient=psy-ab&oq=&aq=&aqi=&aql=&gs_l=&pbx=1&bav=on.
2,or.r_gc.r_pw.r_qf.,cf.osb&fp=b58bcc71a4fb82fa&biw=1024&bih=674&tch=1&ech=2&psi=hCjgT6eFA
s3usgb5oOTACA.1340090487838.1#Aµê`a¡◊
⁄
!VServerContent-Type_
Transfer-EncodingTDate_
X-Frame-Options_
Content-Encoding_
X-XSS-Protection_
Content-Disposition]Cache-ControlWExpiresSgws_
application/json; charset=UTF-8XIdentity_
Tue, 19 Jun 2012 07:21:52 GMTZSAMEORIGINTgzip]1; mode=blockZattachment_
private, max-age=0R-1
n_
__CFURLResponseNullTokenString__
≠≤ƒ◊Í
Safari stores in the cache.db
all sites visited by users
We cannot use Safari for
dangerous operations
Cache.db does not contains relevant infos
domenica 15 luglio 12
Safari Resources - History
Safari History contains only the sites visited by
AppleScript
domenica 15 luglio 12
Are there traces in the hard disk or
on the pendrive?
domenica 15 luglio 12
How search traces of the automatism?
In the automatism files we have insert a “signature” of
the automatism...
domenica 15 luglio 12
grep -ros iAmTheAutomatism7777 ./
How search traces of the automatism?
...and we used a grep command on the hard disk and on
the pendrive
grep command does not retrieve any file with this
string
domenica 15 luglio 12
Problem
Launcher,Wiper/Scheduler and
Simulator modules could create some
temporary files!
Solution
We have to analyze deleted files!
domenica 15 luglio 12
Deleted files analysis - How
Photorec is a data recovery software designed to recover
lost files from hard disks, pendrive and so on
domenica 15 luglio 12
Deleted files analysis
We launched Photorec on the hard disk and on the
pendrive and we used the grep command
grep -ros iAmTheAutomatism7777 ./
grep command does not retrieve any file with this
string, again!
domenica 15 luglio 12
conclusions
future works
Chapter 5
in the thesis
domenica 15 luglio 12
Is realistic a false digital alibi on Mac OS X 10.7.3?
Create a false digital alibi is possible!
Remove the traces is possible if you use proper
features of Mac OS X!
Conclusions...
domenica 15 luglio 12
...and future works...
Can we create a false digital alibi using
Automator?
Test the automatism on a real enviroment!
Test the automatism on a different
versions of Mac OS X
domenica 15 luglio 12
Thank you!
Questions and/or comments
Dario Di Nucci d.dinucci@studenti.unisa.it
Fabio Palomba f.palomba3@studenti.unisa.it
Stefano Ricchiuti s.ricchiuti@studenti.unisa.it
Remind the link:
https:// www.dropbox.com/sh/8cfw9b0aembhzd5/mbVMwXBCBR
domenica 15 luglio 12

More Related Content

Viewers also liked

Hypervolume-based search for test case prioritization - ssbse 2015
Hypervolume-based search for test case prioritization - ssbse 2015Hypervolume-based search for test case prioritization - ssbse 2015
Hypervolume-based search for test case prioritization - ssbse 2015Vrije Universiteit Brussel
 
Gnome Maps: free software services for a new desktop experience
Gnome Maps: free software services for a new desktop experienceGnome Maps: free software services for a new desktop experience
Gnome Maps: free software services for a new desktop experienceVrije Universiteit Brussel
 
Applicazioni di modelli matematici alla ricerca semantica
Applicazioni di modelli matematici alla ricerca semanticaApplicazioni di modelli matematici alla ricerca semantica
Applicazioni di modelli matematici alla ricerca semanticaVrije Universiteit Brussel
 
Lightweight Detection of Android-specific Code Smells: the aDoctor Project
Lightweight Detection of Android-specific Code Smells: the aDoctor ProjectLightweight Detection of Android-specific Code Smells: the aDoctor Project
Lightweight Detection of Android-specific Code Smells: the aDoctor ProjectVrije Universiteit Brussel
 
Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Vrije Universiteit Brussel
 
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?Vrije Universiteit Brussel
 
Evoluzione della normazione ISO
Evoluzione della normazione ISOEvoluzione della normazione ISO
Evoluzione della normazione ISOD'Eugenio Elisa
 

Viewers also liked (8)

Hypervolume-based search for test case prioritization - ssbse 2015
Hypervolume-based search for test case prioritization - ssbse 2015Hypervolume-based search for test case prioritization - ssbse 2015
Hypervolume-based search for test case prioritization - ssbse 2015
 
Gnome Maps: free software services for a new desktop experience
Gnome Maps: free software services for a new desktop experienceGnome Maps: free software services for a new desktop experience
Gnome Maps: free software services for a new desktop experience
 
Applicazioni di modelli matematici alla ricerca semantica
Applicazioni di modelli matematici alla ricerca semanticaApplicazioni di modelli matematici alla ricerca semantica
Applicazioni di modelli matematici alla ricerca semantica
 
Lightweight Detection of Android-specific Code Smells: the aDoctor Project
Lightweight Detection of Android-specific Code Smells: the aDoctor ProjectLightweight Detection of Android-specific Code Smells: the aDoctor Project
Lightweight Detection of Android-specific Code Smells: the aDoctor Project
 
Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...Search-based testing of procedural programs:iterative single-target or multi-...
Search-based testing of procedural programs:iterative single-target or multi-...
 
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?
Software-Based Energy Profiling of Android Apps: Simple, Efficient and Reliable?
 
Evoluzione della normazione ISO
Evoluzione della normazione ISOEvoluzione della normazione ISO
Evoluzione della normazione ISO
 
People management
People managementPeople management
People management
 

Similar to A false digital alibi on mac os x

A false digital alibi on Mac OS X
A false digital alibi on Mac OS XA false digital alibi on Mac OS X
A false digital alibi on Mac OS XFabio Palomba
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
 
Operationalizing Clojure Confidently
Operationalizing Clojure ConfidentlyOperationalizing Clojure Confidently
Operationalizing Clojure ConfidentlyPrasanna Gautam
 
Tools/Processes for serious android app development
Tools/Processes for serious android app developmentTools/Processes for serious android app development
Tools/Processes for serious android app developmentGaurav Lochan
 
Embracing failure on the front-end: Making better JavaScript apps by learning...
Embracing failure on the front-end: Making better JavaScript apps by learning...Embracing failure on the front-end: Making better JavaScript apps by learning...
Embracing failure on the front-end: Making better JavaScript apps by learning...Clay Smith
 
Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Eugene Lazutkin
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programmingMichael Neale
 
Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]RootedCON
 
Better Embedded 2013 - Detecting Memory Leaks with Valgrind
Better Embedded 2013 - Detecting Memory Leaks with ValgrindBetter Embedded 2013 - Detecting Memory Leaks with Valgrind
Better Embedded 2013 - Detecting Memory Leaks with ValgrindRigels Gordani
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakEast Bay WordPress Meetup
 
Dist::Zilla - Maximum Overkill for CPAN Distributions
Dist::Zilla - Maximum Overkill for CPAN DistributionsDist::Zilla - Maximum Overkill for CPAN Distributions
Dist::Zilla - Maximum Overkill for CPAN DistributionsRicardo Signes
 
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...AMD Developer Central
 
20 Windows Tools Every SysAdmin Should Know
20 Windows Tools Every SysAdmin Should Know20 Windows Tools Every SysAdmin Should Know
20 Windows Tools Every SysAdmin Should KnowPower Admin LLC
 
Android Security & Penetration Testing
Android Security & Penetration TestingAndroid Security & Penetration Testing
Android Security & Penetration TestingSubho Halder
 
Exploring Thermal Related Stuff in iDevices using Open-Source Tool
Exploring Thermal Related Stuff in iDevices using Open-Source ToolExploring Thermal Related Stuff in iDevices using Open-Source Tool
Exploring Thermal Related Stuff in iDevices using Open-Source ToolKoan-Sin Tan
 
Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.John Dalziel
 
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Ontico
 

Similar to A false digital alibi on mac os x (20)

A false digital alibi on Mac OS X
A false digital alibi on Mac OS XA false digital alibi on Mac OS X
A false digital alibi on Mac OS X
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
 
Operationalizing Clojure Confidently
Operationalizing Clojure ConfidentlyOperationalizing Clojure Confidently
Operationalizing Clojure Confidently
 
Tools/Processes for serious android app development
Tools/Processes for serious android app developmentTools/Processes for serious android app development
Tools/Processes for serious android app development
 
Dba tips and_tricks
Dba tips and_tricksDba tips and_tricks
Dba tips and_tricks
 
Embracing failure on the front-end: Making better JavaScript apps by learning...
Embracing failure on the front-end: Making better JavaScript apps by learning...Embracing failure on the front-end: Making better JavaScript apps by learning...
Embracing failure on the front-end: Making better JavaScript apps by learning...
 
Users guide
Users guideUsers guide
Users guide
 
Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.
 
Microservices and functional programming
Microservices and functional programmingMicroservices and functional programming
Microservices and functional programming
 
Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]Joxean Koret - Database Security Paradise [Rooted CON 2011]
Joxean Koret - Database Security Paradise [Rooted CON 2011]
 
Better Embedded 2013 - Detecting Memory Leaks with Valgrind
Better Embedded 2013 - Detecting Memory Leaks with ValgrindBetter Embedded 2013 - Detecting Memory Leaks with Valgrind
Better Embedded 2013 - Detecting Memory Leaks with Valgrind
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan Didak
 
Dist::Zilla - Maximum Overkill for CPAN Distributions
Dist::Zilla - Maximum Overkill for CPAN DistributionsDist::Zilla - Maximum Overkill for CPAN Distributions
Dist::Zilla - Maximum Overkill for CPAN Distributions
 
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
PL-4047, Big Data Workload Analysis Using SWAT and Ipython Notebooks, by Moni...
 
20 Windows Tools Every SysAdmin Should Know
20 Windows Tools Every SysAdmin Should Know20 Windows Tools Every SysAdmin Should Know
20 Windows Tools Every SysAdmin Should Know
 
Android Security & Penetration Testing
Android Security & Penetration TestingAndroid Security & Penetration Testing
Android Security & Penetration Testing
 
Applets
AppletsApplets
Applets
 
Exploring Thermal Related Stuff in iDevices using Open-Source Tool
Exploring Thermal Related Stuff in iDevices using Open-Source ToolExploring Thermal Related Stuff in iDevices using Open-Source Tool
Exploring Thermal Related Stuff in iDevices using Open-Source Tool
 
Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.Fast Slim Correct: The History and Evolution of JavaScript.
Fast Slim Correct: The History and Evolution of JavaScript.
 
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
 

Recently uploaded

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxMarkSteadman7
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 

Recently uploaded (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

A false digital alibi on mac os x