Beware: Sharp Tools
May 24, 2015
Beware: Sharp Tools
Tools
LanguagesJava, PHP, Ruby
FrameworksSpring, Zend, Rails
Command Line Toolsgrep, awk, sed, ls, rm, find, ...
Source Controlcvs, svn, perforce, git, mercurial
Editors/IDEsnotepad, 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.DefaultApplicationDescriptor"> <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, emacsnotepad
ruby, git, vi, web
rubyoptimised 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 endend
compiletype 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 pushTo [email protected]: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”) endend
puts “Have you seen the film?”.malkify=> “Malkovich Malkovich Malkovich Malkovich Malkovich?”
class Fixnum def +(other) self * other endend
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) endend
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) endend
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) endend
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 endend
def add_to_cart_or_checkout(widget, in_cart = true) if in_cart cart.checkout else cart.add(widget) endend
def add_to_cart(widget) cart.add(widget)end
def checkout() cart.checkout()end
# this code processes the payroll # and sends itprocess_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 * qend
def process(quantity) p = 17 # this is the price cart.price += p * quantityend
def increment_price(quantity) p = 17 # this is the price cart.price += p * quantityend
def increment_price(quantity) price = 17 # this is the price cart.price += price * quantityend
PRICE_OF_AIRCRAFT_IN_MILLIONS = 17
def increment_price_in_cart(quantity) cart.price += PRICE_OF_AIRCRAFT_IN_MILLIONS * quantityend
class Cart def increase_price_of_product(product, delta) unless product.price > MAX_PRICE product.price += delta end endend
class Cart def increase_price_of_product(product, delta) product.increase_price(delta) endend
class Product def increase_price(delta) unless self.price > MAX_PRICE self.price += delta endend
...F..........
..............
..............
...F..........
........F.....
..............
...F..........
........F.....
..F.....F.....
...F...FFFF FFFF.FF.FF.FFFFFF....
F