SlideShare a Scribd company logo
1 of 60
Download to read offline
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

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 

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