SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
Beware: Sharp Tools
Tools
Languages
 Java, PHP, Ruby
Frameworks
 Spring, Zend, Rails
Command Line Tools
    grep, awk, sed, ls, rm, find, ...
Source Control
 cvs, svn, perforce, git, mercurial
Editors/IDEs
notepad, pico, emacs, vim, eclipse
<bean id="application"
    class="org.springframework.richclient.application.Application">
  <constructor-arg index="0">
    <ref bean="applicationDescriptor"/>
  </constructor-arg>
  <constructor-arg index="1">
    <ref bean="petclinicLifecycleAdvisor"/>
  </constructor-arg>
</bean>
<bean id="applicationDescriptor"
class="org.springframework.richclient.application.support.DefaultApplicationDescr
iptor">
  <property name="version">
    <value>1.0</value>
  </property>
  <property name="buildId">
    <value>20041025001</value>
  </property>
</bean>

<bean id="petclinicLifecycleAdvisor”
class="org.springframework.richclient.samples.petclinic.PetClinicLifecycleAdvisor
">
   <property name="windowCommandBarDefinitions">
     <value>org/springframework/richclient/samples/petclinic/ui/commands-
context.xml</value>
   </property>
   <property name="startingPageId">
     <value>ownerManagerView</value>
   </property>
</bean>
public class Person<T>
{
    private Person<T> person;
...
}
...
// --- Create an Employee person ---
Person<Employee> emplPerson = new Person<Employee>();
...
// --- Create a Customer person ---
Person<Customer> custPerson = new Person<Customer>();
java, spring, svn, xcode, objc
java, spring, svn, emacs
               notepad
ruby, git, vi, web
ruby
optimised for programmer happiness
import java.util.*;
public class RedBlackTree<T extends Comparable<T>> {
  public static final int red    = 0;
  public static final int black = 1;
  private int               color;
  private T                 val;
  private RedBlackTree<T>   left;
  private RedBlackTree<T>   right;

    public RedBlackTree(T x) {
      val      = x;
      left     = null;
      right    = null;
      color = red;
    }
    public int color() {
      return color;
    }
}
class RedBlackTree
  RED   = 0
  BLACK = 1
  attr :color

public
  def initialize(val = nil)
    @left    = nil
    @right   = nil
    @val     = val
    @color   = RedBlackTree::RED
  end
end
compile
     type checking
long deployment cycles
rm -fr /
<murder`> lol i just got the rot password
to the linux machine running the network im
on
<m0zzie> you mean root pass?
<murder`> yea whatever its called do u know
some cool commands like to hack ppl?
<m0zzie> try this one.. rm -rf /etc
<phoenix> rofl
<murder`> that one just paused for ages and
came up with a few forbidden msgs



                                    http://bash.org/?34315
<murder`> got any better ones?
<m0zzie> hmm.. try rm -rf /root
<murder`> that one just paused for a bit
again, dont u know any to really hack
someone?
<agent3> lol
<m0zzie> ugh, ok I guess you're gonna keep
harrassing us until we tell you how to hack
people aren't you?
<murder`> yep



                                    http://bash.org/?34315
<m0zzie> ok do this exactly without the
quotes: "rm -rf /home" then do "shutdown -h
now"
<murder`> k sweet man thx!!
[n] Quit [murder`]-[Read error: Connection
reset by peer]
<m0zzie> I'm a bastard.




                                    http://bash.org/?34315
git update-index --remove -- $(git ls-files '*.o')
git update-index --remove -- $(git ls-files '*.c')
$ git push
To git@github.com:myrepo
 ! [rejected]   master -> master (non-fast-forward)

(Oh come on, just do it, we’re on a deadline)
$ git push -f
class String
  def malkify
   self.gsub(/w+/g, “Malkovich”)
  end
end

puts “Have you seen the film?”.malkify
=> “Malkovich Malkovich Malkovich Malkovich
Malkovich?”
class Fixnum
  def +(other)
   self * other
  end
end

puts 2 + 2
=> 4
done
class Klass; def bill; @er || 0; end
  REQUIRED = ('A'..'D').inject({}) {|hash, ltr| (ltr == 'A' ? (hash[ltr]={:a=>3, :x=>20}) :
(ltr == 'B' ? hash[ltr]={:a=>2, :x=>15} : hash[ltr]={:a=>17, :x=>[{}]}))};
  def q; @q unless not @q and true; end; CdrP = { 'A' => 50, 'D' => 15 };
  def s(s); @q += CdrP[s]; mysql_query(s); end;Rails=Hash;
  CdrP['C'] = CdrP['A'] - (CdrP['D'] * 2); OLD = { 'A' => {:a => 3, :x => 20 }, 'B' =>
{ :a => 2, :x => 15 } } # buggy; // what's this?
  # !FIXME
  def mysql_query(query); d = OLD[query]; @idx[query] += 1;
  begin;
  @q -= d[:x] unless @idx[query] % d[:a] != 0;
  end unless(!d) unless false and bill;
  end rescue(me) or $die;;
  #!IMPORTANT READ SPEC DOC p1132
  def initialize; @er = $stream = @q = 0; @idx = Rails.new(bill || $stream); CdrP['B']
= CdrP['A'] - CdrP['C']; end;
  end;
  #if foo=mysql_query('select * from users'); print foo; end;
  #
def add_to_cart_or_checkout(widget,
     in_cart = true)
 if in_cart
   cart.checkout
 else
   cart.add(widget)
 end
end
def add_to_cart_or_checkout(widget,
  in_cart = true, discount_offer = true)
 if in_cart
   cart.checkout
 elsif discount_offer
   cart.add(widget, widget.price *
widget.discount)
 end
end
def add_to_cart_or_checkout(widget,
 in_cart = true, discount_offer = true,
 discount = 0.65)
 if in_cart
   cart.checkout
 elsif discount_offer
   cart.add(widget, widget.price * (discount !=
1.0 ?
             discount : widget.discount)
 end
end
def add_to_cart_or_checkout(widget, in_cart = true,
 discount_offer = true, discount = 0.65, coupon = “”)
 if in_cart
   cart.checkout
 elsif discount_offer
   cart.add(widget, widget.price * (discount != 1.0 ?
             discount : widget.discount))
   if coupon != “”
     cart.apply_coupon(coupon, (discount != 1.0 ? discount :
                         widget.discount))
   end
 end
end
def add_to_cart_or_checkout(widget,
     in_cart = true)
 if in_cart
   cart.checkout
 else
   cart.add(widget)
 end
end
def add_to_cart(widget)
  cart.add(widget)
end

def checkout()
 cart.checkout()
end
# this code processes the payroll
# and sends it
process_payroll()
process_payroll_and_send()
payroll.process()
email_to_all_staff(payroll)
def process(q)
 p = 17 # this is the price of the
         # object
 cart.price += p * q
end
def process(quantity)
 p = 17 # this is the price
 cart.price += p * quantity
end
def increment_price(quantity)
 p = 17 # this is the price
 cart.price += p * quantity
end
def increment_price(quantity)
 price = 17 # this is the price
 cart.price += price * quantity
end
PRICE_OF_AIRCRAFT_IN_MILLIONS =
17

def increment_price_in_cart(quantity)
 cart.price +=
   PRICE_OF_AIRCRAFT_IN_MILLIONS
   * quantity
end
class Cart
  def increase_price_of_product(product,
   delta)
   unless product.price > MAX_PRICE
    product.price += delta
   end
  end
end
class Cart
  def increase_price_of_product(product, delta)
   product.increase_price(delta)
  end
end

class Product
  def increase_price(delta)
   unless self.price > MAX_PRICE
    self.price += delta
   end
end
...F..........
..............
..............
...F..........
........F.....
..............
...F..........
........F.....
..F.....F.....
...F...FFFF
FFFF.FF.FF
.FFFFFF....
F
Beware: Sharp Tools
Beware: Sharp Tools

Weitere ähnliche Inhalte

Was ist angesagt?

festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...
festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...
festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...festival ICT 2016
 
Python Programming Essentials - M11 - Comparison and Logical Operators
Python Programming Essentials - M11 - Comparison and Logical OperatorsPython Programming Essentials - M11 - Comparison and Logical Operators
Python Programming Essentials - M11 - Comparison and Logical OperatorsP3 InfoTech Solutions Pvt. Ltd.
 
Wx::Perl::Smart
Wx::Perl::SmartWx::Perl::Smart
Wx::Perl::Smartlichtkind
 
[Erlang LT] Regexp Perl And Port
[Erlang LT] Regexp Perl And Port[Erlang LT] Regexp Perl And Port
[Erlang LT] Regexp Perl And PortKeiichi Daiba
 
NativeBoost
NativeBoostNativeBoost
NativeBoostESUG
 
Why TypeScript?
Why TypeScript?Why TypeScript?
Why TypeScript?FITC
 
Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Puppet
 
Intro to OAuth
Intro to OAuthIntro to OAuth
Intro to OAuthmfrost503
 
Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8Wilson Su
 
Code obfuscation, php shells & more
Code obfuscation, php shells & moreCode obfuscation, php shells & more
Code obfuscation, php shells & moreMattias Geniar
 
全裸でワンライナー(仮)
全裸でワンライナー(仮)全裸でワンライナー(仮)
全裸でワンライナー(仮)Yoshihiro Sugi
 
The Joy of Smartmatch
The Joy of SmartmatchThe Joy of Smartmatch
The Joy of SmartmatchAndrew Shitov
 

Was ist angesagt? (20)

Perl6 in-production
Perl6 in-productionPerl6 in-production
Perl6 in-production
 
C to perl binding
C to perl bindingC to perl binding
C to perl binding
 
festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...
festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...
festival ICT 2013: Solid as diamond: use ruby in an web application penetrati...
 
Python Programming Essentials - M11 - Comparison and Logical Operators
Python Programming Essentials - M11 - Comparison and Logical OperatorsPython Programming Essentials - M11 - Comparison and Logical Operators
Python Programming Essentials - M11 - Comparison and Logical Operators
 
Wx::Perl::Smart
Wx::Perl::SmartWx::Perl::Smart
Wx::Perl::Smart
 
PHP PPT FILE
PHP PPT FILEPHP PPT FILE
PHP PPT FILE
 
[Erlang LT] Regexp Perl And Port
[Erlang LT] Regexp Perl And Port[Erlang LT] Regexp Perl And Port
[Erlang LT] Regexp Perl And Port
 
Short Introduction To "perl -d"
Short Introduction To "perl -d"Short Introduction To "perl -d"
Short Introduction To "perl -d"
 
Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
 
Why TypeScript?
Why TypeScript?Why TypeScript?
Why TypeScript?
 
Perl basics for pentesters part 2
Perl basics for pentesters part 2Perl basics for pentesters part 2
Perl basics for pentesters part 2
 
Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...
 
Anyevent
AnyeventAnyevent
Anyevent
 
ES6 - Level up your JavaScript Skills
ES6 - Level up your JavaScript SkillsES6 - Level up your JavaScript Skills
ES6 - Level up your JavaScript Skills
 
Intro to OAuth
Intro to OAuthIntro to OAuth
Intro to OAuth
 
Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8
 
Code obfuscation, php shells & more
Code obfuscation, php shells & moreCode obfuscation, php shells & more
Code obfuscation, php shells & more
 
全裸でワンライナー(仮)
全裸でワンライナー(仮)全裸でワンライナー(仮)
全裸でワンライナー(仮)
 
The Joy of Smartmatch
The Joy of SmartmatchThe Joy of Smartmatch
The Joy of Smartmatch
 

Ähnlich wie Beware: Sharp Tools

Refactor like a boss
Refactor like a bossRefactor like a boss
Refactor like a bossgsterndale
 
Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Benjamin Bock
 
Ruby Language - A quick tour
Ruby Language - A quick tourRuby Language - A quick tour
Ruby Language - A quick touraztack
 
Stupid Awesome Python Tricks
Stupid Awesome Python TricksStupid Awesome Python Tricks
Stupid Awesome Python TricksBryan Helmig
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with ClojureDmitry Buzdin
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRaimonds Simanovskis
 
Zend Framework Study@Tokyo #2
Zend Framework Study@Tokyo #2Zend Framework Study@Tokyo #2
Zend Framework Study@Tokyo #2Shinya Ohyanagi
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme SwiftMovel
 
A limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced RubyA limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced RubyVysakh Sreenivasan
 
Desarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutosDesarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutosEdgar Suarez
 
Where's My SQL? Designing Databases with ActiveRecord Migrations
Where's My SQL? Designing Databases with ActiveRecord MigrationsWhere's My SQL? Designing Databases with ActiveRecord Migrations
Where's My SQL? Designing Databases with ActiveRecord MigrationsEleanor McHugh
 
Implementing Virtual Machines in Ruby & C
Implementing Virtual Machines in Ruby & CImplementing Virtual Machines in Ruby & C
Implementing Virtual Machines in Ruby & CEleanor McHugh
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeWim Godden
 
The Challenge of Bringing FEZ to PlayStation Platforms
The Challenge of Bringing FEZ to PlayStation PlatformsThe Challenge of Bringing FEZ to PlayStation Platforms
The Challenge of Bringing FEZ to PlayStation PlatformsMiguel Angel Horna
 

Ähnlich wie Beware: Sharp Tools (20)

Refactor like a boss
Refactor like a bossRefactor like a boss
Refactor like a boss
 
2013 28-03-dak-why-fp
2013 28-03-dak-why-fp2013 28-03-dak-why-fp
2013 28-03-dak-why-fp
 
Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)
 
Ruby Language - A quick tour
Ruby Language - A quick tourRuby Language - A quick tour
Ruby Language - A quick tour
 
Stupid Awesome Python Tricks
Stupid Awesome Python TricksStupid Awesome Python Tricks
Stupid Awesome Python Tricks
 
R-House (LSRC)
R-House (LSRC)R-House (LSRC)
R-House (LSRC)
 
Ruby Intro {spection}
Ruby Intro {spection}Ruby Intro {spection}
Ruby Intro {spection}
 
Introduction to Groovy
Introduction to GroovyIntroduction to Groovy
Introduction to Groovy
 
SOLID Ruby, SOLID Rails
SOLID Ruby, SOLID RailsSOLID Ruby, SOLID Rails
SOLID Ruby, SOLID Rails
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
 
Zend Framework Study@Tokyo #2
Zend Framework Study@Tokyo #2Zend Framework Study@Tokyo #2
Zend Framework Study@Tokyo #2
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
 
A limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced RubyA limited guide to intermediate and advanced Ruby
A limited guide to intermediate and advanced Ruby
 
Desarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutosDesarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutos
 
Where's My SQL? Designing Databases with ActiveRecord Migrations
Where's My SQL? Designing Databases with ActiveRecord MigrationsWhere's My SQL? Designing Databases with ActiveRecord Migrations
Where's My SQL? Designing Databases with ActiveRecord Migrations
 
Implementing Virtual Machines in Ruby & C
Implementing Virtual Machines in Ruby & CImplementing Virtual Machines in Ruby & C
Implementing Virtual Machines in Ruby & C
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 
The Challenge of Bringing FEZ to PlayStation Platforms
The Challenge of Bringing FEZ to PlayStation PlatformsThe Challenge of Bringing FEZ to PlayStation Platforms
The Challenge of Bringing FEZ to PlayStation Platforms
 

Kürzlich hochgeladen

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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?Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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 DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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...Martijn de Jong
 
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 WorkerThousandEyes
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Kürzlich hochgeladen (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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...
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Beware: Sharp Tools

  • 5. Command Line Tools grep, awk, sed, ls, rm, find, ...
  • 6. Source Control cvs, svn, perforce, git, mercurial
  • 8. <bean id="application" class="org.springframework.richclient.application.Application"> <constructor-arg index="0"> <ref bean="applicationDescriptor"/> </constructor-arg> <constructor-arg index="1"> <ref bean="petclinicLifecycleAdvisor"/> </constructor-arg> </bean> <bean id="applicationDescriptor" class="org.springframework.richclient.application.support.DefaultApplicationDescr iptor"> <property name="version"> <value>1.0</value> </property> <property name="buildId"> <value>20041025001</value> </property> </bean> <bean id="petclinicLifecycleAdvisor” class="org.springframework.richclient.samples.petclinic.PetClinicLifecycleAdvisor "> <property name="windowCommandBarDefinitions"> <value>org/springframework/richclient/samples/petclinic/ui/commands- context.xml</value> </property> <property name="startingPageId"> <value>ownerManagerView</value> </property> </bean>
  • 9. public class Person<T> { private Person<T> person; ... } ... // --- Create an Employee person --- Person<Employee> emplPerson = new Person<Employee>(); ... // --- Create a Customer person --- Person<Customer> custPerson = new Person<Customer>();
  • 10. java, spring, svn, xcode, objc
  • 11. java, spring, svn, emacs notepad
  • 14. import java.util.*; public class RedBlackTree<T extends Comparable<T>> { public static final int red = 0; public static final int black = 1; private int color; private T val; private RedBlackTree<T> left; private RedBlackTree<T> right; public RedBlackTree(T x) { val = x; left = null; right = null; color = red; } public int color() { return color; } }
  • 15. class RedBlackTree RED = 0 BLACK = 1 attr :color public def initialize(val = nil) @left = nil @right = nil @val = val @color = RedBlackTree::RED end end
  • 16. compile type checking long deployment cycles
  • 17.
  • 19. <murder`> lol i just got the rot password to the linux machine running the network im on <m0zzie> you mean root pass? <murder`> yea whatever its called do u know some cool commands like to hack ppl? <m0zzie> try this one.. rm -rf /etc <phoenix> rofl <murder`> that one just paused for ages and came up with a few forbidden msgs http://bash.org/?34315
  • 20. <murder`> got any better ones? <m0zzie> hmm.. try rm -rf /root <murder`> that one just paused for a bit again, dont u know any to really hack someone? <agent3> lol <m0zzie> ugh, ok I guess you're gonna keep harrassing us until we tell you how to hack people aren't you? <murder`> yep http://bash.org/?34315
  • 21. <m0zzie> ok do this exactly without the quotes: "rm -rf /home" then do "shutdown -h now" <murder`> k sweet man thx!! [n] Quit [murder`]-[Read error: Connection reset by peer] <m0zzie> I'm a bastard. http://bash.org/?34315
  • 22. git update-index --remove -- $(git ls-files '*.o')
  • 23. git update-index --remove -- $(git ls-files '*.c')
  • 24. $ git push To git@github.com:myrepo ! [rejected] master -> master (non-fast-forward) (Oh come on, just do it, we’re on a deadline) $ git push -f
  • 25. class String def malkify self.gsub(/w+/g, “Malkovich”) end end puts “Have you seen the film?”.malkify => “Malkovich Malkovich Malkovich Malkovich Malkovich?”
  • 26. class Fixnum def +(other) self * other end end puts 2 + 2 => 4
  • 27. done
  • 28. class Klass; def bill; @er || 0; end REQUIRED = ('A'..'D').inject({}) {|hash, ltr| (ltr == 'A' ? (hash[ltr]={:a=>3, :x=>20}) : (ltr == 'B' ? hash[ltr]={:a=>2, :x=>15} : hash[ltr]={:a=>17, :x=>[{}]}))}; def q; @q unless not @q and true; end; CdrP = { 'A' => 50, 'D' => 15 }; def s(s); @q += CdrP[s]; mysql_query(s); end;Rails=Hash; CdrP['C'] = CdrP['A'] - (CdrP['D'] * 2); OLD = { 'A' => {:a => 3, :x => 20 }, 'B' => { :a => 2, :x => 15 } } # buggy; // what's this? # !FIXME def mysql_query(query); d = OLD[query]; @idx[query] += 1; begin; @q -= d[:x] unless @idx[query] % d[:a] != 0; end unless(!d) unless false and bill; end rescue(me) or $die;; #!IMPORTANT READ SPEC DOC p1132 def initialize; @er = $stream = @q = 0; @idx = Rails.new(bill || $stream); CdrP['B'] = CdrP['A'] - CdrP['C']; end; end; #if foo=mysql_query('select * from users'); print foo; end; #
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. def add_to_cart_or_checkout(widget, in_cart = true) if in_cart cart.checkout else cart.add(widget) end end
  • 34. def add_to_cart_or_checkout(widget, in_cart = true, discount_offer = true) if in_cart cart.checkout elsif discount_offer cart.add(widget, widget.price * widget.discount) end end
  • 35. def add_to_cart_or_checkout(widget, in_cart = true, discount_offer = true, discount = 0.65) if in_cart cart.checkout elsif discount_offer cart.add(widget, widget.price * (discount != 1.0 ? discount : widget.discount) end end
  • 36. def add_to_cart_or_checkout(widget, in_cart = true, discount_offer = true, discount = 0.65, coupon = “”) if in_cart cart.checkout elsif discount_offer cart.add(widget, widget.price * (discount != 1.0 ? discount : widget.discount)) if coupon != “” cart.apply_coupon(coupon, (discount != 1.0 ? discount : widget.discount)) end end end
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. def add_to_cart_or_checkout(widget, in_cart = true) if in_cart cart.checkout else cart.add(widget) end end
  • 42. def add_to_cart(widget) cart.add(widget) end def checkout() cart.checkout() end
  • 43. # this code processes the payroll # and sends it process_payroll()
  • 46. def process(q) p = 17 # this is the price of the # object cart.price += p * q end
  • 47. def process(quantity) p = 17 # this is the price cart.price += p * quantity end
  • 48. def increment_price(quantity) p = 17 # this is the price cart.price += p * quantity end
  • 49. def increment_price(quantity) price = 17 # this is the price cart.price += price * quantity end
  • 50. PRICE_OF_AIRCRAFT_IN_MILLIONS = 17 def increment_price_in_cart(quantity) cart.price += PRICE_OF_AIRCRAFT_IN_MILLIONS * quantity end
  • 51. class Cart def increase_price_of_product(product, delta) unless product.price > MAX_PRICE product.price += delta end end end
  • 52. class Cart def increase_price_of_product(product, delta) product.increase_price(delta) end end class Product def increase_price(delta) unless self.price > MAX_PRICE self.price += delta end end
  • 57.
  • 58. F