$30 off During Our Annual Pro Sale. View Details »

This Old App

This Old App

What could renovating an old house have in common with upgrading an old app? Everything! Let me show you how this old house renovation project proceeds, from planning to scheduling, demolition to finishing, and how every stage directly relates the lessons learned from app upgrades over the course of my career.

Lori M Olson

December 09, 2022
Tweet

More Decks by Lori M Olson

Other Decks in Programming

Transcript

  1. View Slide

  2. This old app
    Lori Olson
    @wndxlori
    RubyConf Houston 2022

    View Slide

  3. Lori Olson
    @WNDXLORI
    Lethbridge, AB !
    spouse of Trever
    scooter & K.C.’s mom

    View Slide

  4. Lori Olson
    [email protected]
    developer, mentor, trainer
    founder of WNDX School
    Creator of 6 Pack Apps

    View Slide

  5. warning
    some non-Ruby projects wi be
    mentioned

    View Slide

  6. This old House

    View Slide

  7. This old app

    View Slide

  8. old houses and old apps
    what do they have in common?

    View Slide

  9. Turns out, quite a bit
    especially when you are talking about
    upgrading/renovating

    View Slide

  10. View Slide

  11. • Planning
    • Scheduling
    • Demolition
    • Construction
    • Finishing
    Stages of
    App upgrade?
    house upgrade?

    View Slide

  12. challenges

    View Slide

  13. Ceiling

    View Slide

  14. skylights

    View Slide

  15. View Slide

  16. Stick built

    View Slide

  17. wasps

    View Slide

  18. wasps

    View Slide

  19. four nests

    View Slide

  20. gaspac

    View Slide

  21. random crashes

    View Slide

  22. memory stomp

    View Slide

  23. bug hunt

    View Slide

  24. Borland C++ OWL

    View Slide

  25. Off by 1 error

    View Slide

  26. DEBUGGING
    ASSEMBLY CODE

    View Slide

  27. why random?

    View Slide

  28. 4 byte allocations

    View Slide

  29. flooring

    View Slide

  30. refinish vs replace

    View Slide

  31. 4 different
    contractors

    View Slide

  32. why?

    View Slide

  33. really freaking
    difficult

    View Slide

  34. really freaking
    difficult

    View Slide

  35. replace

    View Slide

  36. nglnow

    View Slide

  37. upgrade failures

    View Slide

  38. weblogic 5.1 -> 8

    View Slide

  39. licensing

    View Slide

  40. xml hell

    View Slide

  41. deprecation happy

    View Slide

  42. happy

    View Slide

  43. fireplace

    View Slide

  44. beautiful

    View Slide

  45. over engineered &
    bulky

    View Slide

  46. conversation pit,
    unusable

    View Slide

  47. conversation pit,
    done right

    View Slide

  48. racoons

    View Slide

  49. i can see daylight

    View Slide

  50. almost done

    View Slide

  51. perfectly clear

    View Slide

  52. Photo correction
    library

    View Slide

  53. photoshop plugin

    View Slide

  54. for mac

    View Slide

  55. carbon vs cocoa

    View Slide

  56. 8 vs 16 bit bugs

    View Slide

  57. Adobe Photoshop SDK: 16 bit
    27-Sep-09 10:55:08 AM
    3.3 Plug-ins and 16 bit data
    3.3.1 Why does my 16 bit plug-in only see values of 0 - 32768 and not 0 - 65535?
    Photoshop uses an internal representation of 16 bit data of 0 - 32768. When acquiring,
    importing, reading, or writing files check or set the maxValue in the parameter record.
    Filters will also see this range for 16 bit data.
    What is Evernote? Create an Evernote account

    View Slide

  58. View Slide

  59. books/bookcases

    View Slide

  60. so many books
    Lots and lots

    View Slide

  61. so many books

    View Slide

  62. so many books

    View Slide

  63. so many books

    View Slide

  64. order/structure

    View Slide

  65. 55 boxes

    View Slide

  66. garage storage

    View Slide

  67. First half

    View Slide

  68. Second half

    View Slide

  69. 80386

    View Slide

  70. etriever/welltriever

    View Slide

  71. View Slide

  72. someone else’s data

    View Slide

  73. ppdm

    View Slide

  74. sql join
    hell

    View Slide

  75. welltriever
    different

    View Slide

  76. redis

    View Slide

  77. async jobs

    View Slide

  78. View Slide

  79. walls

    View Slide

  80. paint over or
    replace?

    View Slide

  81. discontinuities

    View Slide

  82. RIP IT OUT

    View Slide

  83. and REPLACE

    View Slide

  84. wimby

    View Slide

  85. View Slide

  86. Required
    updates

    View Slide

  87. Removed
    from Store

    View Slide

  88. unsupported gems

    View Slide

  89. please no

    View Slide

  90. asbestos

    View Slide

  91. asbestos

    View Slide

  92. aluminum wiring

    View Slide

  93. Dodged that one

    View Slide

  94. old rails apps

    View Slide

  95. etriever

    View Slide

  96. rails 0.13

    View Slide

  97. roll your own
    authentication

    View Slide

  98. roll your own
    authorization

    View Slide

  99. roll your own
    job queues

    View Slide

  100. passwords

    View Slide

  101. passwords
    saved in the clear

    View Slide

  102. passwords
    saved with reversible
    encryption

    View Slide

  103. passwords
    logged as entered in
    log files
    "

    View Slide

  104. Finishing

    View Slide

  105. Nothing goes according to plan

    View Slide

  106. View Slide

  107. As long as your app is in production

    View Slide

  108. View Slide

  109. Interested in
    Mobile App development?
    Game Development?
    IN RUBY?!?!
    https://wndx.school

    View Slide