1. 3

    I love it. I was about to create something like this. Could you please invite me?

    1. 3

      Thanks – invite sent! Since you were about to create something similar, mind jumping into #bitmia on Freenode? I’m still not sure about a couple of things and it would be nice to bounce some ideas off you.

      1. 1

        Sure. I will connect in these days so that we can talk.

    1. 8

      I love this kind of stuff because it seems young developers confuse the web for the internet. There is more than HTTP out there folks! For god sakes make your own protocols! It’s fun!

      1. 6

        I agree. Do you have any recommendation about how to learn to implement your own protocols?

        1. 11
          • Assume network drops or delays your packets indefinitely.
          • Use CBOR for binary protocols and JSON (one message per line) for plaintext protocols as a very safe starting point.
          • Anauthorized peers being able to grow other peers’ internal state opens up a possibility of cheap DoS attacks.
          • Don’t roll your own crypto.
          1. 7

            I’ll add that learning about and practicing with FSM’s plus FSM’s of FSM’s is good preparation. Most protocols that I looked into were FSM’s.

            1. 4

              Haha, just edited my post to say finite state machines are your friend. :-P

              1. 2

                Yeah. People sometimes make the mistake of assuming the network to be reliable and fail to factor in the drops, fixing them on case by case basis, turning the code into a horrible spaghetti mess.

                FSMs turn that into “what if I receive an init packet while waiting for a reply?” which leads to much more solid designs.

            2. 3

              Any time you need IPC within or across machines is a chance to implement a protocol. Generally, it’s not a good idea if you don’t know what you are doing, so I would first try on a hobby project. If you are getting paid for the work, do it when you have the chops to do it and the need.

              This goes for everything if you are skilled at making it, make it, otherwise use the work of those that are. Clearly, there is a chicken and egg problem, where you need to acquire the skill, and that’s where hobby projects or practice projects are great.

              EDIT: Pro Tip — Finite state machines are your friend.

              1. 1

                Do you have experience implementing protocols that are not your own? If not, start with that. You will learn a lot more about protocol design and implementation that way than by reading a textbook or blog posts or whatever.

                1. 1

                  I agree. I do have experience, but I want to know more about how other people learn and what they recommend since I might have missed something.

            1. 1

              Never used MQTT before. One of the really nice things about HTTP is I just throw my app behind nginx and I now have rock solid encryption for next to no effort. Is there something as simple as nginx + lets encrypt for MQTT?

              1. 3

                I don’t see why let’s encrypt could not be used with vernemq. The SSL config is pretty simple: https://vernemq.com/docs/configuration/listeners.html#sample-ssl-config

              1. 10

                Would you tell the community so that other devs don’t have to go through the same problem?

                1. Switch to a bank that does invoice factoring: They pay roughly 85% of the invoice value when you invoice, so you need to raise your rates by 15%.
                2. …then you can offer a 15% discount to any company who would prepay.
                3. Consider subcontracting instead of referrals: It makes it easier for you to get the revenue you need for step #1, it makes it easier to engage a lawyer if it comes to it.

                I am asking what would you do in my situation since in general controversy in business is always a bad idea even if you are the injured party. … The client is a startup that is about to do an IPO. … Some of their investors have a relationship with a very well known and established business magazine. I am not sure they aware of this.

                I would find out which company is helping them do the IPO and talk to them I might find a commercial debt collection agency which is willing to take my case, then contact as many trade journalists and investors I can to explain that they’re really raising money to prepare for a lawsuit against creditors.

                Then I might call the PR office that these articles are coming, and that I want to make sure that this wasn’t all some “honest mistake” on their part. Obviously they need to pay the full invoice immediately plus any expenses I incurred in this process, but it’ll also be good if they compensate me for any stress I had to endure.

                If you need help with this, reach out to me privately.

                Have you used a debt collection agency?

                Yes. In general, they’re worth as much as you pay them, but except for the above I wouldn’t bother with them since it doesn’t sound like this company is unaware of their debt with you, but is being wilful.

                It doesn’t sound useful in this case, but if I’m really worried someone is going to go bankrupt I get on DeBN. I might do that anyway since it’s easy. If they file for bankruptcy simply prepare a proof of claim and deliver it to the clerk. Only then do I engage a commercial debt collection agency. If they’re quiet and there’s no bankruptcy, I’ll keep adding interest until it becomes worth my time (to hire a lawyer).

                Have you filled a legal complaint against a company before?

                I’ve served notice to companies, and that’s generally all it takes. Companies keep the registered agent information up-to-date in a way they neglect for the accounts payable department.

                Suing for unpaid debt in the USA is actually very easy:

                1. Send a registered letter to the company’s registered agent informing them of their debt and that you will attempt to recover it if they do not respond in 30 days. They have a right to deny the debt, and they have a right to request an alternate way to resolve it. A lawyer should not charge you more than $1k to write such a letter. They may incur $2-5k in additional costs responding to replies, and of course: talking to you.
                2. File the complaint with the court. If you file federal it will cost $400. If you are a US corporation, then your costs will vary based on the state you choose “at home”. It will be less controversial to file in the defendants state but it may be cheaper to file in another.
                3. Serve them the complaint. A routine serve should cost between $50-$75.
                4. You will receive a court date. You and your lawyer will need to show up. A lawyer may cost a few thousand dollars to show up and prepare (you will want them to prepare).
                5. If they don’t show up (for example because you served the complaint by singing telegram) you can file request for default judgement. This will cost another $400 for the filing, but you won’t need as expensive a lawyer to show up.

                Between travel, filing, and so on: $15k sounds extremely reasonable for your situation. I’ve never had to finish a court case I’ve started – I have however been sued and won, so I still have some idea what the entire process looks like.

                Learning how to talk to lawyers and use them effectively is a very useful skill. It can easily mean the difference between spending $20k and $200k. A key thing is that they cannot tell you what to do. They can give you your options and point you to the most immediate one, but they won’t tell you to go nuclear early, and because you’re outside the US this might be your best move: You will have to tell them that you want to do it.

                Giving them a sob is also a good way to spend a lot of money. If you say “here’s my invoice, I want to collect it” it’ll be much cheaper than what you tell them everything you told us.

                1. 1

                  THANKS! I will reach you via private message.

                1. 2

                  Do they owe enough to make legal proceedings worth it? Odds are the court will easily judge in your favour (the other side often doesn’t even bother to show up in such cases IME, they don’t want to pay a lawyer themselves). Then, if you suspect they have some or all of your money, it gives you the legal authority to have the money seized from the accounts, etc (details will vary by jurisdiction)

                  1. 2

                    A team of developers was working with them, that is why it makes it worth it. I am sure they have the money, but probably not enough money to pay debts and to finish the development before a new investor or the IPO goes through.

                    1. 1

                      A team of developers was working with them, that is why it makes it worth it. I am sure they have the money, but probably not enough money to pay debts and to finish the development before a new investor or the IPO goes through.

                    1. 3

                      Which company is it so we can avoid the same fate?

                      1. 11

                        If you’re going to name a company asking people to avoid them you have to make a case as to why. Otherwise you’re naming and shaming. Unless you can show your complaint has merit it’s equally likely that the fate we’re trying to avoid is working with you, not your customer.

                        Asking for names without additional, event substantial detail about this conflict is incitement to mudslinging. If you want to avoid this “same fate” we need to better understand what it is.

                        1. 4

                          Fair points! I read this bit and it seemed enough to be validate the question:

                          A company we have been working with has a big debt with us and with other freelancers from all around the globe. They have not answered for months and I have helped them hire other devs that won’t probably be paid. My biggest issue is that they don’t answer and I think that is a really bad attitude to have during this type of situations.

                          I’m more charitable in assuming the company is at fault than the contractors, though Lord knows I’ve seen contractors drop the ball (and hard).

                          That said, part of the reason we have problems in this industry is that the people doing the work are hesitant to mention issues that could impact others–it’s basically an issue of informed consent.

                          Naming and shaming is not as big a problem for big companies as it is for people or small contractors…there was a time where everybody knew for example that Arthur Anderson consulting were bozos on projects and ending up on projects with Androids was a recipe for a headache, and yet they kept getting contracts.

                          If we want things to get better, we have to look out for each other.

                          1. 3

                            Highlighting questions raised by the statement from @unbalancedparentheses you quoted:

                            A company we have been working with has a big debt

                            How much, and how overdue? For full transparency, what is the total contract size and length, and what other contracts have been signed with this client that you could similarly report on?

                            and with other freelancers from all around the globe

                            For each of these cases there may be relevant, material facts that make each event a unique circumstance. We’ve got a group (other freelancers) that can be enumerated, not lumped together like a cluster of NPCs.

                            They have not answered for months

                            When did it start, what communication mediums were used, and what is the entire dated set of communication that demonstrates your complaint is being ignored?

                            I have helped them hire other devs that won’t probably be paid.

                            If this is relevant, and it certainly has not been shown to be irrelevant, it both can be enumerated (at least counted!) and includes speculation: we know neither who they are nor even whether they have or will be paid. It’s the quality of window dressing.

                            None of these statements are going to survive a test of membership in to the “problems in this industry” set you allude to. I doubt anyone would disagree with “want[ing] things to get better,” but picking sides in a potential, possible, we’re not even sure if meritorious civil complaint is putting the cart before the horse: We can decide on the facts, and we can measure, mitigate, and minimize risk without having to consult a counterparty.

                            There is not enough information here to know what we can improve.

                            1. 2

                              Again, very good questions, and if @unbalancedparentheses can answer them that’d be awesome.

                              picking sides in a potential, possible, we’re not even sure if meritorious civil complaint is putting the cart before the horse:

                              Just to be clear: I’m not looking to pick sides in a conflict I don’t have a direct personal stake in here. I do do consulting and contracting work on occasion, and a datapoint of “so-and-so was complained about” is still useful.

                              Like, let’s Pascal’s wager this, assigning values of good (+1), neutral (0), and bad (-1). Assuming that they’re either in the wrong (W) or not (R), that we know if they’re in the wrong (K) or not (I), and that we know their name (N) or not (A):

                              • WKN: We don’t do business with them, or we do business and hedge our bets since it’s a problem. Neutral.
                              • WKA: We may accidentally do business with them and get burned. Bad.
                              • WIN: We may do business with them and get burned. Neutral.
                              • WIA: We may accidentally do business with them and get burned. Bad.
                              • RKN: We may do business with them and maybe even get a chance at a dropped ball. Good.
                              • RKA: We may accidentally do business with them and not get burned. Good.
                              • RIN: We don’t do business with them, or we do business and hedge our bets since it’s a problem. Neutral.
                              • RIA: We may accidentally do business with them and not get burned. Good.

                              Partitioning by knowledge of name, we see +1 versus 0 when we don’t know it. The outcomes seem strictly better when the company is named.

                              EDIT:

                              For completeness’ sake, outcomes by if they’re actually in the wrong or not have a -2 vs. +3, and by if we know they’re in the wrong or not a +1 vs. 0.

                              1. 1

                                Just to be clear: I’m not looking to pick sides in a conflict I don’t have a direct personal stake in here.

                                That was a poor assumption on my part, thank you for correcting it.

                                For the wrong (W) case you are not performing full accounting, and therefor externalizing a cost: their unjustly damaged reputation (or conversely your reputation should you be shown to have lied).

                              2. 2

                                From my point of view your answer would make sense if I would have given the name of the company. I did not. For the same reason there are a few things I can’t answer until I get some information from my attorney.

                                Instead of discussing the validity of my reclaim, let’s rephrase my question: Let’s suppose that a happy customer with whom you are working for stopped paying. After not getting the promised payments for a few months, What would you do? What have you done in the past? What would you do if you know that other people had the same problem? Would you tell about your problem to the new hires you helped interview? Would you tell the community about this so that nobody else has the same issue?

                                I am not saying that the questions you have asked are useless. However I can assure you that my case is pretty simple. We don’t need to go off at a tangent. I want to know and learn about what you have done with non paying customers.

                                1. 3

                                  After not getting the promised payments for a few months, What would you do?

                                  The minimum necessary effort:

                                  I would offer to submit a revised invoice with new “discount” line item (somewhere in the 10-25% range, but whatever you think will work. Anything you can recover is better than zero: 50% was reported here as a successful resolution in an unrelated dispute.) and contingent on payment consider the matter settled. I really do mean settled: be happy with that outcome, even when asked about this client (reporting on this event) in the future.

                                  I’d then focus on systematically eliminating any errors I had made that brought me to that condition, but I would not bother this client with that effort. It’s your work, not theirs.

                                  The good-faith, maximum effort short of litigation:

                                  1. Write but do not yet publish a blog post or other long-form statement describing the event in as much detail as possible. Do not cherry-pick, do not avoid facts that make you look bad / incompetent / wrong, do not hide any detail that could possibly weaken the completeness of your testimony. Every shred of evidence: Who, what, when, where, why, how. The truth, the whole truth, and nothing but the truth. Make a calculable claim as to what you have lost based on the evidence (e.g., invoices, timesheets, contracts) presented in your testimony.

                                  2. If other people or organizations are also involved, ask for the same from them -or- ask them to sign (i.e., attach their name to) your statement. Ignore them if you get neither: Bandwagoning doesn’t help your case. Don’t bother employees in contract disputes. (“Would you tell about your problem to the new hires you helped interview?”) it is by definition not their problem. Don’t conflate their contracts with yours.

                                  3. Send your not-yet-published, factual, fully-informed, material testimony to the CFO of the organization you have a contract with. Offer to settle the matter via payment of the calculable claim you are making, post-discount. Alternatively, in lieu of payment, offer to include any statement they would care to make: you will include it in full along with publishing your own testimony. State also that if they have a superior resolution to either of your proposed outcomes you will do that instead. If the matter is not resolved via payment of what you are owed, publish on whatever deadline you have set for yourself and given them. Be happy with either (any) outcome, even when asked about this client in the future. You will have said all you need to say on the matter.

                                  I frankly cannot imagine having to resort the later approach, but you have asked after it.

                        1. 4

                          The takeaway here is: your job is to find solutions to problems

                          Nope! It’s not. It’s to make the client happy, both long- & short-term. Here we go again, reaching for the Technical Hammer when we have a People Problem.

                          1. 2

                            Not happy usually, just content enough that he pays you and maybe even does business with you again.

                            1. 2

                              For us, finding solutions to problems is part of making the client happy. That is why we wrote:

                              Like captain Spock, we combine the worlds of logical thinking with the human dimension, which may seem irrational when analyzed through the cold prisma of mathematical rationality but has its own logic and meaning. And we need to develop skills in both areas, because, ultimately, we are humans working for other humans — code is just our tool.

                              1. 1

                                How do you make the client happy?

                              1. 2
                                1. 2

                                  Yes, we have started using it for financial analysis and it is awesome

                                1. 1

                                  Question: If gen_event ran handlers concurrently by default, how would you go about running handlers sequentially?

                                  I don’t think it is a pretty common use case. However I very frequently need something like a gen_event that handles things concurrently and that doesn’t crash all the handlers if one handler crash. It is really easy to implement a sequential gen_event using a gen_server. Implementing each time something like José Valim wrote on his post is more difficult and error prone.

                                  1. 1

                                    Unless a handler calls erlang:exit, it’s unlikely that the event manager will crash if a handler does. As I understand it, the default behavior is to remove (silently by default, or sending a message in the case of add_sup_handler) the failing handler and carry on.

                                    That said, I think you have a point in that it’s reasonably simple to turn a gen_server into something almost identical to a gen_event, and avoid gen_event’s fiddly bits. My main point in the article is that I think that running handlers sequentially is a good default because of the affordances it offers developers.

                                    I guess at this point I’m torn between whether or not it is better to have a design that is less broadly useful, but more flexible, versus one that is widely usable, but inflexible. Given this blog post, I’m currently leaning towards more flexible.

                                    Thanks for reading!

                                  1. 2

                                    I would not recommend to store any password “in the cloud” (dropbox, password managers), as it is heavily targeted to surveillance and attacks.

                                    An advantage of git is that you can use it over SSH (again, I do not against GitHub for passwords).

                                    Why not keeping the passwords on a usb flash drive at your keyring (the physical one)? You have then all your keys in a safe place with no leak ever possible while you are not at the moment where you want to log in. Then even if you loose your laptop, you do not loose any precious password.

                                    Putting them on an encrypted file/drive partition might also be a more reasonable choice as long as you know where your computer is going.

                                    1. 3

                                      i agree with what you wrote but how do you use thoses passwords in an iphone/android/ipad/tablet?

                                      1. 1

                                        That is a big flaw, you can’t you are right.

                                    1. 9

                                      pass. I don’t understand the syncing issues. If you write code and use git, then syncing passwords works exactly the same as syncing code. I even have it working on my phone.

                                      1. 3

                                        how do you add or update passwords in your phone or ipad? i travel and i don’t always have access to a computer.

                                        1. 3

                                          That isn’t actually in my normal usage pattern, but I just tried it and it works. The app lets me add entries to my pass database, and then I can push to my git remote through the GUI. What happens if a merge conflict arises isn’t clear though. :-)

                                        2. 2

                                          I also use pass, but only have it locally on one machine. Until now I’ve been relying on Chrome’s password sync feature if I wanted a password on my phone too.

                                          My setup isn’t ideal, so if you don’t mind elaborating on yours, please would you give more details?

                                          1. 4

                                            Oh sure! I have an Android phone. All I did was install OpenKeychain and the unofficial Android Password Store app. I then imported my key into OpenKeychain and setup Password Store on my phone to use it. All Password Store needs is to pull from your git repo containing passwords. It only does this when you tell it to, so it keeps a local copy on your phone and you can sync whenever.

                                            1. 3

                                              Fantastic info; thank you very much. :-)

                                        1. 7

                                          It’s really unfortunate that the idea of a live coding remains niche, and most programmers haven’t had exposure to this style of development. Working in an environment where you can inspect and change any aspect of the system at runtime is the most satisfying coding experience in my opinion.

                                          1. 7

                                            Coding hackers tell me they want to understand, change, and improve on anything they can get their hands on. The live coding systems let them do that to their whole, running system. It just seems like the two are a natural fit. It makes it so much stranger to me to see such people use tools that limit them so much.

                                            1. 5

                                              It’s probably why people have tended to think of Emacs, Common Lisp, and Smalltalk (and Forth?) in relation to the “quality without a name” described in Zen and the Art of Motorcycle Maintenance, or the living quality of buildings described by Christopher Alexander.

                                              1. 4

                                                I would also add Erlang to that list, but that might be controversial.

                                                1. 4

                                                  I mostly agree. It doesn’t have the same deep metaprogramming aspect, but the actor model is a much cooler form of concurrency than the languages I listed, and things like supervision hierarchies have quite a strong sense of being “alive.”

                                                  1. 2

                                                    The tracing capabilities and the ability what process is doing what and which messages are being received is quite impressive.

                                                  2. 2

                                                    Yeah, I don’t know if it fits since I don’t use it. I will say that making distributed, concurrent systems easier and more robust by design with ability to update running systems makes it pretty close to the idea. It’s kind of in its own category in my mind where the LISP’s were focused on max flexibility where things like Erlang or Ada are focused on max reliability. Erlang improved on things like Ada in its category by being more high-level, distributed, the updates, etc.

                                                    Now, it might be interesting to combine the two. I swore someone… (checks bookmarks) Oh yeah, it was LISP-Flavored Erlang. I can’t evaluate further about whether it truly has benefits of typical LISP workflow and Erlang since I don’t know Erlang or LFE. Looked really awesome conceptually when I found it. Anyone else chime in?

                                                2. 3

                                                  Pervasively dynamic environments are a two-edged sword: with great power comes great responsibility. It’s trivial to render a Smalltalk image completely unusable with something as simple as false become: true. PicoLisp has similar capabilities. Most Forths do too. There’s something to be said for isolating and stabilizing some basic parts of the system: such limitations give us a margin of safety!

                                              1. 2

                                                Congrats! Is anybody using DragonFly on production? Why do you choose it over FreeBSD or OpenBSD?

                                                1. 3

                                                  Because HAMMER. OpenBSD doesn’t have an equivalent filesystem option. FreeBSD has ZFS, which is very nice, but it’s also huge. HAMMER by comparison is a simple implementation of a “modern” (snapshoting, checksuming, deduping) filesystem.

                                                  1. 1

                                                    I have never used HAMMER. Apart from having a simpler implementation (that is really nice and difficult to do), is there any big advange of using HAMMER over ZFS? Apart from HAMMER there is any other feature that you recommend us checking out?

                                                1. 7

                                                  I have been using OpenBSD at my laptop for the last year and a half. The only issue I have is that Firefox is way slower than in Void Linux or Debian. But apart from that it works perfectly fine.

                                                  1. 5

                                                    Might be faster in 6.3 which ships ff quantum.

                                                  1. 1

                                                    I recommend that you write the scaffolding generator in golang or rust. Golang easily compiles and generates a binary for a lot of platforms and it has good libraries for creating CLI tools. I wrote one in golang: https://github.com/unbalancedparentheses/gut/blob/master/gut.go

                                                    1. 1

                                                      Thanks, I’ll check it out

                                                    1. 1

                                                      I have asked to join.

                                                      1. 2

                                                        Great work!

                                                        1. 4

                                                          So far, only two:

                                                          1. “The Intelligent Investor” - Benjamin Graham (revised edition)
                                                          2. “Social Engineering: The Art of Human Hacking” - Christopher Hadnagy
                                                          1. 3

                                                            I have The Intelligent Investor on my bookshelf right now. Its been giving me the evil eye for a year now. Thanks for the reminder! ;)

                                                            1. 4

                                                              The Intelligent Investor”

                                                              Great book. If you like I recommend that you check “A Wealth of Common Sense: Why Simplicity Trumps Complexity in Any Investment Plan” and the great Financial markets coursera course.

                                                              1. 5

                                                                Thanks for the coursera suggestion! Is this the specific course you are referring to? https://www.coursera.org/learn/financial-markets-global

                                                                1. 3

                                                                  Exactly. Shiller, the teacher, is a nobel laureate. The course is really good. It can get a little bit dense specially in the first weeks, but do it completely, it gets better with each week.

                                                          1. 4

                                                            The value of blockchains isn’t the currency systems implemented on them- it’s the general distributed ledger. There are useful problems that can be solved by storing information in public, validated with proof-of-work, with conflicts in history being resolved by consensus.

                                                            Coins are the carnival barker trying to push traffic into the system. Do the grueling proof-of work, and we give you an entry in the ledger that says you own some coins. Get in quick though (at least with Bitcoin), because there aren’t very many. But that means the value can only go up! They’ll get rarer over time!

                                                            1. 1

                                                              Yes the inflation model of btc is fundamentally unsustainable. Also it’s a bit unfortunate that the proof-of-work chosen is not work that benefits humanity in any way.

                                                              1. 1

                                                                The proof-of-work model chosen by Bitcoin is the most straightforward, and arguably, the most resistant to Sybil nodes and “cheating”. It is, after all, consciously modelled after physical mining, which is also arguably wasted work - dig up X tons of ore to extract Y kilos of precious metal.

                                                              2. 1

                                                                Do you have any good reading that you can recommend about cryptocurrencies?

                                                              1. 21

                                                                Here’s a couple of quick tips:

                                                                • Even though you got some saved money: Make the tickets cost-covering. Take your fixed cost (speaker travel, video recording, venue, lunch) and divide them in per-head and one-off costs. Charge so much that you cover the cost, plus maybe 5% for disaster cases.
                                                                • Try to make a small profit. Why? It makes you sleep easy and allows you to use the saved money for the next one.
                                                                • Think about accessibility (wheelchair-accessibility, etc.) now. It’s easy to do upfront and hard to do later. Also, people in need of support need to know early on. Document what you have, give an email address for those that have questions. Communicate that. Example: http://zurich.rustfest.eu/accessibility (just strike off the list what you don’t have / can’t provide, see this as a list of options).
                                                                • Work with social media and understand that you have a global audience. For example, if you have an announcement, tweet it 3 times to different times. Most people don’t read Facebook/Twitter all day, which means they will probably miss 1 or 2 announcements.
                                                                • Don’t invite too many speakers. Invited speakers are cozy and you probably know what you get. But, the CFP often contains nice things from fresh people.
                                                                • Also speakers: gamble and be willing to have a dud. Some of the best talks on my conferences were from unknown newcomers. A certain Steve Klabnik gave their first keynote on one of our conferences because we gambled.
                                                                • For these reasons, have an semi-anonymous review. We’ve had cases where regular and known speakers put very lackluster proposals in, but we’re sure that we would have been tempted to take them anyways. Semi-Anonymous is the form where the first round of proposal rating just rates the proposal, not the speaker. The lower 50% are cut off. The second round is just as usual, with speaker identities revealed.
                                                                • It’s fine to pick someone you like. It’s your conference. Just be aware that a CFP is a way to ensure you look in corners outside your usual circles.
                                                                • For that reason, advertise your CFP. A LOT. Try to spread it outside of your circles.
                                                                • Alcohol is the most useless budget point on the ticket price. Kick it, just charge less. “Drinks included” is usually “drinks pre-paid and if you don’t drink, you’re cross-financing others”. Obviously, non-alcoholic things, especially water should always be around. People that drink have no problem with just buying at the bar. Go to a place where that is feasible.
                                                                • There’s a substantial group of people that is not into loud partying. Make sure your party places have quiet corners.
                                                                • Quiet rooms (a room where absolutely no talking is allowed) are easy to make and people love it. After 4 hours of chatting and talks, people enjoy being silent for a while. Also, they make an easy social contract, which for example allows speakers to just go in there after a talk.

                                                                This is just what quickly came to my mind…

                                                                1. 1

                                                                  All I can say is THANKS