SlideShare uma empresa Scribd logo
1 de 25
PHP Hacking
           The battle between great ideas
               and not-so-great code




Pete Prodoehl
http://rasterweb.net/raster/
PHP: Hypertext Preprocessor




PHP: Hypertext Preprocessor
Developer
“Software development is
the act of working to
produce/create software.”
Programmer
“Computer programming is
the process of writing, testing,
debugging/troubleshooting, and
maintaining the source code of
computer programs.”
Hacker
“Someone who plays golf poorly.”




                                   hmmm...
Hacker
“A programmer who breaks into
computer systems in order to steal
or change or destroy information
as a form of cyber-terrorism.”



                                     uhhh...
Hacker
1. A person who enjoys exploring the details of programmable systems and how to
stretch their capabilities, as opposed to most users, who prefer to learn only the
minimum necessary.

2. One who programs enthusiastically (even obsessively) or who enjoys programming
rather than just theorizing about programming.

3. A person capable of appreciating hack value.

4. A person who is good at programming quickly.

5. An expert at a particular program, or one who frequently does work using it or on
it; as in ‘a UNIX hacker.’

6. An expert or enthusiast of any kind. One might be an astronomy hacker, for
example.

7. One who enjoys the intellectual challenge of creatively overcoming or
circumventing limitations.
                                                             From “The Jargon File” http://www.catb.org/jargon/
PERL
PHP

“It’s like PERL, but for building web sites,
and... not as good...”
Culture
Kellan Elliott-McCrea

“The hardest part in working with
languages I’m less familiar with (python,
and php for example) rather then those
I’m more comfortable with (perl or java)
is not syntax questions, its culture.”

                         http://laughingmeme.org/2002/10/23/there-has-got-to-be-a-better-way/
Feed on Feeds
An open source web-based aggregator.




In 2004, I hacked the
living crap out of it...
Categorize
A tool to categorize articles.




In 2004, I wrote it for
my employer...
delisync
A tool to sync your del.icio.us data.




Open APIs are a good
thing... exploit them!
Locator
A store locator using Google Maps.




90% example code
10% my own code
Evil-O-Mator
Just another silly hack...




90% silly
10% PHP
Heard
A tool to mirror your Last.fm data.




Open APIs are (still)                     Hu b!
                                      G it
good... exploit them!           on
                            Now
MAKE
 COOL
  SHIT!
HACK!
Thank You
Find me on the Internet!

  Blog: http://rasterweb.net/raster/

       Email: pete@rasterweb.net

                  Twitter: @raster

Mais conteúdo relacionado

Semelhante a PHP Hacking: The battle between great ideas and not-so-great code

OpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internetOpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internet
tkisason
 
Php Symfony and software-life-cycle
Php Symfony and software-life-cyclePhp Symfony and software-life-cycle
Php Symfony and software-life-cycle
Swatantra Kumar
 
In our heated learning of the scope of genetic programming, before ...
In our heated learning of the scope of genetic programming, before ...In our heated learning of the scope of genetic programming, before ...
In our heated learning of the scope of genetic programming, before ...
butest
 
DIY Applied Machine Learning
DIY Applied Machine LearningDIY Applied Machine Learning
DIY Applied Machine Learning
Tarek Hoteit
 

Semelhante a PHP Hacking: The battle between great ideas and not-so-great code (20)

JTMDetroit: Code
JTMDetroit: CodeJTMDetroit: Code
JTMDetroit: Code
 
Keith J. Jones, Ph.D. - Crash Course malware analysis
Keith J. Jones, Ph.D. - Crash Course malware analysisKeith J. Jones, Ph.D. - Crash Course malware analysis
Keith J. Jones, Ph.D. - Crash Course malware analysis
 
Practical Experiences of hacking with Contextual Comms and BOTS, Sam Machin, ...
Practical Experiences of hacking with Contextual Comms and BOTS, Sam Machin, ...Practical Experiences of hacking with Contextual Comms and BOTS, Sam Machin, ...
Practical Experiences of hacking with Contextual Comms and BOTS, Sam Machin, ...
 
Cyber Security Workshop Presentation.pptx
Cyber Security Workshop Presentation.pptxCyber Security Workshop Presentation.pptx
Cyber Security Workshop Presentation.pptx
 
Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...
Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...
Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...
 
Introduction to Hacking for University Hack Day
Introduction to Hacking for University Hack DayIntroduction to Hacking for University Hack Day
Introduction to Hacking for University Hack Day
 
OpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internetOpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internet
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Hpai class 12 - potpourri & perception - 032620 actual
Hpai   class 12 - potpourri & perception - 032620 actualHpai   class 12 - potpourri & perception - 032620 actual
Hpai class 12 - potpourri & perception - 032620 actual
 
Mastering python lesson1
Mastering python lesson1Mastering python lesson1
Mastering python lesson1
 
P Hundamental Security Coding Secure With Php Lamp
P Hundamental Security Coding Secure With Php LampP Hundamental Security Coding Secure With Php Lamp
P Hundamental Security Coding Secure With Php Lamp
 
YAPC::EU::2009 - How Opera Software uses Perl
YAPC::EU::2009 - How Opera Software uses PerlYAPC::EU::2009 - How Opera Software uses Perl
YAPC::EU::2009 - How Opera Software uses Perl
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptx
 
The challenges of file formats
The challenges of file formatsThe challenges of file formats
The challenges of file formats
 
Php Symfony and software-life-cycle
Php Symfony and software-life-cyclePhp Symfony and software-life-cycle
Php Symfony and software-life-cycle
 
Perl Myths 200909
Perl Myths 200909Perl Myths 200909
Perl Myths 200909
 
In our heated learning of the scope of genetic programming, before ...
In our heated learning of the scope of genetic programming, before ...In our heated learning of the scope of genetic programming, before ...
In our heated learning of the scope of genetic programming, before ...
 
Py4 inf 01-intro
Py4 inf 01-introPy4 inf 01-intro
Py4 inf 01-intro
 
Nautral Langauge Processing - Basics / Non Technical
Nautral Langauge Processing - Basics / Non Technical Nautral Langauge Processing - Basics / Non Technical
Nautral Langauge Processing - Basics / Non Technical
 
DIY Applied Machine Learning
DIY Applied Machine LearningDIY Applied Machine Learning
DIY Applied Machine Learning
 

Mais de Pete Prodoehl

Web414 june 2011 Meeting
Web414 june 2011 MeetingWeb414 june 2011 Meeting
Web414 june 2011 Meeting
Pete Prodoehl
 

Mais de Pete Prodoehl (15)

Welcome to Arduino
Welcome to ArduinoWelcome to Arduino
Welcome to Arduino
 
DIY to MWO - From "Doing It Yourself” to "Making With Others”
DIY to MWO - From "Doing It Yourself” to "Making With Others”DIY to MWO - From "Doing It Yourself” to "Making With Others”
DIY to MWO - From "Doing It Yourself” to "Making With Others”
 
Milwaukee Makerspace
Milwaukee MakerspaceMilwaukee Makerspace
Milwaukee Makerspace
 
The Maker Movement and Where It’s Going
The Maker Movement and Where It’s GoingThe Maker Movement and Where It’s Going
The Maker Movement and Where It’s Going
 
The Importance of Blogging to the Maker/DIY Community
The Importance of Blogging to the Maker/DIY CommunityThe Importance of Blogging to the Maker/DIY Community
The Importance of Blogging to the Maker/DIY Community
 
Makerspaces & Makers
Makerspaces & MakersMakerspaces & Makers
Makerspaces & Makers
 
Milwaukee Makerspace
Milwaukee MakerspaceMilwaukee Makerspace
Milwaukee Makerspace
 
Blogging With WordPress
Blogging With WordPressBlogging With WordPress
Blogging With WordPress
 
Art Robots: Machines That Draw
Art Robots: Machines That DrawArt Robots: Machines That Draw
Art Robots: Machines That Draw
 
Web414 june 2011 Meeting
Web414 june 2011 MeetingWeb414 june 2011 Meeting
Web414 june 2011 Meeting
 
Web414 November 2010 Meeting
Web414 November 2010 MeetingWeb414 November 2010 Meeting
Web414 November 2010 Meeting
 
Web414 September 2010 Meeting
Web414 September 2010 MeetingWeb414 September 2010 Meeting
Web414 September 2010 Meeting
 
Web414 - Snake or Software
Web414 - Snake or SoftwareWeb414 - Snake or Software
Web414 - Snake or Software
 
What is a PhotoCamp?
What is a PhotoCamp?What is a PhotoCamp?
What is a PhotoCamp?
 
Lightbox Js (and Friends)
Lightbox Js (and Friends)Lightbox Js (and Friends)
Lightbox Js (and Friends)
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

PHP Hacking: The battle between great ideas and not-so-great code

  • 1. PHP Hacking The battle between great ideas and not-so-great code Pete Prodoehl http://rasterweb.net/raster/
  • 2. PHP: Hypertext Preprocessor PHP: Hypertext Preprocessor
  • 3. Developer “Software development is the act of working to produce/create software.”
  • 4. Programmer “Computer programming is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs.”
  • 5. Hacker “Someone who plays golf poorly.” hmmm...
  • 6. Hacker “A programmer who breaks into computer systems in order to steal or change or destroy information as a form of cyber-terrorism.” uhhh...
  • 7. Hacker 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating hack value. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in ‘a UNIX hacker.’ 6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example. 7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations. From “The Jargon File” http://www.catb.org/jargon/
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. PHP “It’s like PERL, but for building web sites, and... not as good...”
  • 16. Culture Kellan Elliott-McCrea “The hardest part in working with languages I’m less familiar with (python, and php for example) rather then those I’m more comfortable with (perl or java) is not syntax questions, its culture.” http://laughingmeme.org/2002/10/23/there-has-got-to-be-a-better-way/
  • 17. Feed on Feeds An open source web-based aggregator. In 2004, I hacked the living crap out of it...
  • 18. Categorize A tool to categorize articles. In 2004, I wrote it for my employer...
  • 19. delisync A tool to sync your del.icio.us data. Open APIs are a good thing... exploit them!
  • 20. Locator A store locator using Google Maps. 90% example code 10% my own code
  • 21. Evil-O-Mator Just another silly hack... 90% silly 10% PHP
  • 22. Heard A tool to mirror your Last.fm data. Open APIs are (still) Hu b! G it good... exploit them! on Now
  • 23. MAKE COOL SHIT!
  • 24. HACK!
  • 25. Thank You Find me on the Internet! Blog: http://rasterweb.net/raster/ Email: pete@rasterweb.net Twitter: @raster

Notas do Editor

  1. \n
  2. Are there any developers here tonight?\nAny programmers here?\n
  3. \n
  4. Any Hackers?\n
  5. That describes me...\n
  6. That doesn’t describes me... in fact, I think that’s a “cracker”\n
  7. Here’s a few definitions of Hacker I can identify with...\n
  8. I’m actually a Perl Hacker... I started using BASIC around 1980, and was out of programming until about 1993. I tried to learn Perl by reading about it but it didn’t stick. (And this was MacPerl at the time!) I was using UserTalk Frontier at the time, which had this weird internal scripting language, and I did a lot of stuff in that. Eventually I started using Linux web servers and a guy I knew at work got me started in Perl. When I found my code was running about 20 times faster, I started using Perl.\n
  9. I never really got into Java... I never really liked Sun too much, and I couldn’t get into Java. Even though the open source text editor I’ve used for the last 6 years has been written in Java. I did write some BeanShell scripts. Nowadays I’m working with the Arduino and Processing, which is as close to Java as I get.\n
  10. This is your typical Java developer. An attractive looking woman with a nondescript laptop who lays on the floor with no shoes on. She’s having so much damn fun, I really want to get into Java. I actually do know an attractive woman who is reading a Java book, and when I asked why, she said to learn how to build web sites. I sort of shook my head... Rogers Cadenhead wrote it.\n
  11. Dot Net. Dear God.... As someone who has always hated Microsoft, and probably always will, I’m not about to touch Dot Net. I got burned by ASP and other Microsoft technologies, and I avoid Mono like, well Mono, and I’m not doing Dot Net.\n
  12. This is your typical Dot Net developer.\n
  13. Rails. I should probably say “Ruby on Rails” but 90% of the time I hear the word “Ruby” it’s followed by “on Rails” anyway. Rails or Ruby, or whatever, is something I should really look into, but I haven’t. I will someday... unless I don’t. I worked with a developer once who decided he’d learn Rails by writing a client application in Rails. He ended up scrapping the whole thing and re-writing it in PHP over a weekend. \n
  14. OK, seriously... if this didn’t have the names on the photo, I would have thought this was a fashion shoot for American Apparel or something. Maybe the Gap? I don’t know... Really? These guys are behind Rails? They look like male models... Did they coordinate their wardrobes? Are you allowed to be a Rails dude if you’re not good looking?\n
  15. This was my first introduction to PHP... I knew a lot of Perl hackers who started building web sites with PHP. We did a lot of complaining about how PHP did something wrong, or was missing something we used in Perl... But you know what? PHP is OK... it’s gotten much better over the years. Remember PHP3? Don’t get me started... Hey, at least it isn’t ColdFusion! Actually, speaking of ColdFusion, the biggest mistake I ever made at one of my old jobs was going along with the boss’s decision to use ColdFusion instead of PHP because “it was already installed.” I tried numerous times to get the application re-written in PHP, but it never happened.\n
  16. It’s a bit of Culture Shock really... After years of using a language, you get used to it, and know how it works, and not just the “language” but the people who use it, and develop it, and how it gets used, and the community, and all the surrounding bits that have nothing to do with code... That was my struggle with PHP. Culture is what the real difference is between Drupal and Joomla, or Apple and Microsoft, or the U.S. and Canada.\n
  17. Back when your RSS Aggregator was made by friends of yours instead of big corporations, a guy named Steve Minutillo released Feed on Feeds. I installed it on my own server and hacked the crap out of it. I added all these features I wanted to see in an aggregator. This is probably when I realized how awesome PHP was.\n
  18. I wrote this for the company I worked for at the time... I based it on Feed on Feeds to some degree. That was the application that I learned how to write PHP applications from. Chances are I did it all wrong, and continue to do it all wrong... but I don’t sort of don’t care.\n
  19. Back in 2004 or 2005 or something like that, del.icio.us used to have downtime (this is before Yahoo! acquired it) so I wrote some code to synchronize data between del.icio.us and any other service using the del.icio.us API... People actually used it!\n
  20. This past summer I had to build a store locator for a web site... Google had sample code that did most of the work, and I added a bunch of site-specific features. It’s pretty unremarkable, but I’m glad the sample was written in PHP.\n
  21. This started out as a simple project to play with HTML5, CSS3, and the <audio> tag. I ended up writing it in PHP because I figured learning a new language on top of all that was too much. I think I finished it around 4AM one night. It works. I also ended up putting a bunch of easter eggs into it later just for Tom Henrich. \n
  22. This is similar to the delisync thing. It uses the Last.fm API to pull all of my data out, store it in MySQL, and then display it on my own site. It’s a complete mirror of my Last.fm data running on my own server. I also ended up putting this on GitHub thanks to Matt Gauger. Now I’m waiting patiently for someone to make it 100 times better so I can upgrade. If it doesn’t happen... oh well. I’m really a fan of PHP letting me experiment and exercise my ideas than anything else... Oddly enough a Perl guy said he wished it was written in Perl so he could hack at it. You just can’t win...\n
  23. Hack... \n
  24. Hack... \n
  25. \n