Skip to content
By using Twitter’s services you agree to our Cookies Use. We and our partners operate globally and use cookies, including for analytics, personalisation, and ads.
  • Home Home Home, current page.
  • About

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
Hillelogram's profile
Hillel
Hillel
Hillel
@Hillelogram

Tweets

Hillel

@Hillelogram

Author of http://learntla.com , currently writing Practical TLA+. Code nurse, passable chocolatier. DMs open, ask me questions!

Chicago, IL
hillelwayne.com
Joined October 2011

Tweets

  • © 2018 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    Hillel‏ @Hillelogram Jul 1

    So many software development practices - TDD, type-first, design-by-contract, etc - are all reflections of the same core idea: 1) Plan ahead. 2) Sanity-check your plan.

    5:25 PM - 1 Jul 2018
    • 31 Retweets
    • 123 Likes
    • Joshua Conner Harimurti Prasetio Jason Stumpf Hugo Estrada Jonathan E. Magen ⛧ eiríkr ⛧ Matthías Páll Gissurarson Dragisa Krsmanovic Pedro Castilho
    8 replies 31 retweets 123 likes
      1. Hillel‏ @Hillelogram Jul 1

        Followup thought: all of the mentioned things so far straddle both planning and implementation. Do we neglect kinds of planning that aren't are distinct from the product code?

        6 replies 0 retweets 6 likes
        Show this thread
        Thanks. Twitter will use this to make your timeline better. Undo
        Undo
      1. New conversation
      2. tsw‏ @tswaterman Jul 2
        Replying to @Hillelogram

        That’s completely true, but doesn’t really help. It’s just the minimum. The scale of project, goals, evaluation methods (are we done yet?), social/collaborative environment, etc, affect everything. Tighter constraints on how to plan, how to test & adapt, are critical

        1 reply 0 retweets 1 like
      3. Hillel‏ @Hillelogram Jul 2
        Replying to @tswaterman

        It helps in that it identifies the implicit goal we're seeking. Now we can make that goal explicit, and study it independently of the methods we've so-far used to try and achieve it.

        2 replies 0 retweets 3 likes
      4. Hillel‏ @Hillelogram Jul 2
        Replying to @Hillelogram @tswaterman

        eg one of the major benefits of formal specification is it's really, really powerful as a planning tool, but it's often (for many kinds of formal spec) useful _primarily_ as a planning tool without direct code connection.

        1 reply 0 retweets 1 like
      5. Ron Pressler‏ @pressron Jul 2
        Replying to @Hillelogram @tswaterman

        Formally (i.e. mechanically) connecting high-level specifications to code is, unfortunately, intractable (at least currently) except in extreme circumstances. The question is, how important is it, really?

        1 reply 0 retweets 1 like
      6. Ron Pressler‏ @pressron Jul 2
        Replying to @pressron @Hillelogram @tswaterman

        It is quite likely that such a formal connection is no easier than compiling the specification to an executable, so it is also possible that such a formal tie is something we'll never need to do, because when we know how to do it we'll be able to do away with code altogether.

        0 replies 0 retweets 1 like
      7. End of conversation
      1. Ben Hocking‏ @BenH343 Jul 1
        Replying to @Hillelogram

        While I think there are substantial differences between the rigor of different types of plans, any planning at all seems to be a big improvement over what appears to be standard practice.

        0 replies 0 retweets 5 likes
        Thanks. Twitter will use this to make your timeline better. Undo
        Undo
      1. New conversation
      2. Ron Pressler‏ @pressron Jul 1
        Replying to @Hillelogram

        The ones you mentioned are all forms of refinement in a very precise sense.

        1 reply 0 retweets 4 likes
      3. unshocked, cheater of death, mother of blockchains‏ @PLT_cheater Jul 2
        Replying to @pressron @Hillelogram

        that's interesting, could you please elaborate?

        1 reply 0 retweets 0 likes
      4. Ron Pressler‏ @pressron Jul 2
        Replying to @PLT_cheater @Hillelogram

        A refinement is the process of extracting a subset (and the converse of refinement, abstraction, is the process of finding a superset).

        1 reply 0 retweets 0 likes
      5. Ron Pressler‏ @pressron Jul 2
        Replying to @pressron @PLT_cheater @Hillelogram

        Even code describes a whole set of executables, as the compiler and the CPU are free to choose different behaviors as long as they are in the set of those allowed by the code (so the executable and executions are a refinement of the code, and the code is their abstraction).

        1 reply 0 retweets 1 like
      6. Ron Pressler‏ @pressron Jul 2
        Replying to @pressron @PLT_cheater @Hillelogram

        Now, types, contracts and tests are a further abstraction, as they describe an even larger set of allowable programs: all programs that inhabit the type, those whose behaviors satisfy the contract, and those who pass the test.

        1 reply 0 retweets 0 likes
      7. Ron Pressler‏ @pressron Jul 2
        Replying to @pressron @PLT_cheater @Hillelogram

        All the techniques Hillel mentioned start with the abstraction, and so the process is one of refinement, i.e., starting with a large set of programs and narrowing it down (refining).

        1 reply 0 retweets 0 likes
      8. Ron Pressler‏ @pressron Jul 2
        Replying to @pressron @PLT_cheater @Hillelogram

        Picking a more precise type refines the original type chosen (and if you have subtyping, the relationship is even formal in the language). Same when adding more conditions to the contract. When adding more tests we similarly reduce the set of possible complying programs.

        0 replies 0 retweets 3 likes
      9. End of conversation
      1. Finn Gorgeous‏ @AnonymusFinn Jul 2
        Replying to @Hillelogram

        it sounds even that there is a sort of dialectics in the process

        0 replies 0 retweets 0 likes
        Thanks. Twitter will use this to make your timeline better. Undo
        Undo
      1. Alex Koppel‏ @arsduo Jul 2
        Replying to @Hillelogram

        I wonder how often people use those in the ideal “plan-ahead” way, versus writing tests after code, creating types simultaneously, etc. Those still bring value; how would we describe those?

        0 replies 0 retweets 0 likes
        Thanks. Twitter will use this to make your timeline better. Undo
        Undo
      1. marcoonroad → Human Circuit Breaker‏ @marcoonroad Jul 2
        Replying to @Hillelogram

        Formal verification/proofs is: Provide enough math so people will trust you. :)

        0 replies 0 retweets 0 likes
        Thanks. Twitter will use this to make your timeline better. Undo
        Undo
      1. Pedro Castilho‏ @p_cstl Jul 1
        Replying to @Hillelogram

        Just different kinds of plans.

        0 replies 0 retweets 0 likes
        Thanks. Twitter will use this to make your timeline better. Undo
        Undo

    Loading seems to be taking a while.

    Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

      Promoted Tweet

      false

      • © 2018 Twitter
      • About
      • Help Center
      • Terms
      • Privacy policy
      • Cookies
      • Ads info