1. 11

    I can understand people assuming apt exists on the system because:

    • Most of the times they’ll be correct
    • People that doesn’t have apt will probably know how to find the equivalent packages in their equally bad linux package manager of choice.

    Can understand, too, people using a SQLite implementation for Go that doesn’t depend on CGo, because CGo has it’s own issues.

    Everything is hot garbage, doesn’t matter if you’re in Ubuntu or not. Don’t expect to have a gazillion of scripts that install all the dependencies in every package manager imaginable, none of those is good enough to deserve that much of attention, it won’t happen. At least apt is popular.

    That’s a reason Docker is so popular: It’s easier to work over an image with an specific package manager that will not change between machines. Doesn’t matter the distribution or the equally bad linux package manager of choice as long as you are on Linux and have Docker. And Dockerfiles end up being a great resource to know all the required quirks that allow the code to work.

    And finally:

    First, please stop putting your binaries in /app, please, pretty-please? We have /usr/local/bin/ for that.

    Never. Linux standard paths are a tragedy and will actively avoid them as much as possible. It’s about choices and avoiding monoculture, right?

    1. 10

      Linux standard paths are a tragedy and will actively avoid them as much as possible. It’s about choices and avoiding monoculture, right?

      No, it’s about writing software that nicely integrates with the rest of the chosen deployment method/system, not sticking random files all over the user’s machine.

      1. 22

        In this example /app is being used inside the docker image. It is most definitely not sticking random files all over the users machine.

        1. 4

          This hits a slightly wider point with the article - half the things the author is complaining about aren’t actually to do with Docker, despite the title.

          The ones that are part of the Docker build… don’t necessarily matter? Because their effects are limited to the Docker image, which you can simply delete or rebuild without affecting any other part of your system.

          I understand the author’s frustration - I’ve been through trying to compile things on systems the software wasn’t tested against, it’s a pain and it would be nice if everything was portable and cross-compatible. But I think it’s always been a reality of software maintenance that this is a difficult problem.

          In fact, Docker could be seen as an attempt to solve the exact problem the author is complaining about, in a way which works for a reasonable number of people. It won’t work for everyone and there are reasons not to like it or use it, but I’d prefer to give people the benefit of the doubt instead of ranting.

          Speaking of ranting, this comment’s getting long - but despite not really liking the tone of the article, credit to the author for raising issues and doing the productive work as well. That’s always appreciated.

          1. 3

            OP here. aww thank you! Yes as noted in the disclaimer at the top, I was very frustrated! hopefully I ported it all, now trying to clean up some code so I can make patches.

            According to commenters on the Yellow Site, it’s not wise to “just send a patch” or “rant”, they way it’s better to open an issue first. Which honestly I still don’t understand. Care someone explain that to me?

            As a open-source maintainer, I like only two types of issues. 1) here’s a bug, 2) here’s a feature request and how to implement. But if someone made an issue saying “Your code is not running on latest version of QNX”, I would rather see them “Here’s a patch that makes the code run on QNX”.

            Regardless, I tried an experiment and opened a “discussion issue” in one of the tools, hoping for the best.

            1. 3

              According to commenters on the Yellow Site, it’s not wise to “just send a patch” or “rant”, they way it’s better to open an issue first. Which honestly I still don’t understand. Care someone explain that to me?

              Receiving patches without prior discussion on the scope/goals is potentially something frustrating since basic communication can easily avoid unnecessary extra work for both maintainers but also contributors. Maybe a feature is already being worked on? Maybe they’ve had prior conversations on the topic that you couldn’t have seen? Maybe they simply don’t have the time to review things at the moment? Or maybe they won’t be able to maintain a certain contribution?

              Also for end-users, patches without a linked issue can be a source of frustration. Usually the MR contains discussion on the code/implementation details and issues conversation around the goals of the implementation.

              Of course that always depends, if you’re only contributing minor improvements/changes - a discussion is often not needed.

              Or in other words, as posted on ycombinator news:

              Sending patches directly is a non-collaborative approach to open source. Issues are made for discussion, and PRs for resolutions; as a matter of fact, some projects state this explicitly, in order to waste maintainers’ time with unproductive PRs.

          2. 3

            Exactly

            1. 2

              This is only a mediocre example, because with go there should only be one binary (or a handful of them) - but yes, if you put your software in a container, I am very happy if everything is in /app and if I want to have a look I don’t have to dissect /etc/, /usr/local and maybe /var. If the container is the sole point of packaging one app, I see no downside to ignoring the FHS and putting it all together. There’s a reason that most people do that for custom-built software (as opposed to “this container just does “apt-get install postgresql-server”, then I would expect the stuff to be there where the distro puts it)

        1. 27

          No, that is not a monoculture, this is you using a niche OS in the world of another “niche” OS.

          As a sane person, I fetched the code from GitHub using fetch, extracted the tarball and ran make. Nothing happens. Let’s see the Makefile, shall we?

          Just because you’re meaning to get other peoples code running on your specific environment, simply doesn’t mean you’ll be greeted with the most straightforward way possible. You should always read such code before executing it, or rather even documentation instead of navigating simply on assumptions how everything is supposed to be. We don’t live in 2005 anymore.

          Everyone’s time is limited and if you want to develop FreeBSD to also host more applications, then take care of that yourself. There is no reason why others should have to take care of that, besides being friendly, I could even imagine some people will possible still disregard them because they don’t know the “true” way one supports applications on FreeBSD because the devs have never been using FreeBSD in their life.

          Docker an amazing and valid way of distributing and building code, maybe instead of dumping on other developers try supporting Docker on FreeBSD.

          Having same/similar development environments as all other contributors will rule out a great amount of issues, allowing you to actually develop features and improve stability. Good example for that is Steam and Linux support, there has been way greater extend of bugs on Linux hosts, even though it were fewer people running the code - but everyone’s *nix has to be slightly different - making development much harder at times.

          First, please stop putting your binaries in /app, please, pretty-please? We have /usr/local/bin/ for that.

          For what reason? /app is a convention in the world of container images, it avoids typing long paths and will usually also contain other code. What you’re asking for is usualy rather /opt/... and not /usr/local/bin/. Also why bother with /usr/local/bin if all what you’re doing is distributing a single, self-contained executable in a container image.

          […] please put yourself in my shoes. You’ve been looking around for a simple monitoring solution […]

          No, you should put yourself into other peoples shoes. You are acting rude, disrespectful and narrow minded with such blog postings. If you’re writing this way you’ll rather make people avoid FreeBSD even more. If you want to use something that supports less tools, but maybe those better, then stick with the defaults as others do (nagios?).

          How about you actually open an issue before submitting a patch or even worse, write a rant. There hasn’t been a single request in Gatus about *BSDs, same for statping until now.

          1. 6

            For the record, I (the author) opened that issue in Statping and the other projects for adding BSD support and I’ve patched all of them in the last 10 days :)

            1. 3

              Yes I know, sorry that I haven’t made that clear in my comment. I appreciate your work, though I stance with my comment regarding that such rants are rather negative light onto FreeBSD. Your issue was much friendlier, though giving less context.

          1. 3

            I would like to thank Lobsters not only for the amazing community that it is, but also for the amazing software that it has.

            We deployed the software on Khosenk (hy. Let’s Talk) to build an Armenian tech community and the Lobsters software is a core part of it.

            This is the best place of the internet :) <3

            1. 1

              Not gonna lie, that domain name scared me a bit. I know that you can encode Unicode characters in URL these days, but I didn’t know that was true for the TLD as well. Awesome stuff tho!

            1. 8

              Happy to see that kernel developers are staunchly defending their email-based workflow, and there is no real threat that GitHub will become the core development infrastructure.

              It’s strange to me that the article frames GitHub as an alternative to email that is better suited to “one-off” contributions. One of the problems with GitHub development is that you can’t contribute without a GitHub account, whereas email based workflows generally don’t require any subscription or account with the project to contribute. In that way email is actually better for one-off contributions.

              If new contributors have difficulty getting “set up” to submit patches in the right format, maybe it would be good to have a bot that monitors a newbie contributors mailing list, identifying problems and suggesting fixes for emails that don’t meet the project standards. Keeping it email-based seems like a much more realistic way to help newbies learn about the kernel development process, rather than giving them the false impression that Linux is a GitHub project.

              1. 6

                Show of hands: who doesn’t have a GitHub account for reasons other than ideological? Even if I refused to use GitHub for my own projects, I’d end up with one purely for contributing to projects. (And it’s still a better experience than email.) It’s not like making an account is a huge barrier either.

                That, and it’s not like GitHub is doing anything dastardly with your account either.

                1. 18

                  Anyone who Github has banned or who they are legally forbidden from working with as an American company.

                  1. 9

                    I do have a GitHub account, but I use it to open issues.

                    My problem with these changes is not that GitHub is good or bad, but rather an external company becomes a dependency.

                    If gcc does something bad, no worries, we can fork it, but if GitHub does something bad, we cannot.

                    If it matters that much, I would suggest to run a GitLab/gitea server.

                    EDIT: P.S., I have friends who don’t have GitHub accounts, not beacuse of ideology, but beacuse GitHub does not allow them, they live in places like Iran. Also: sometimes Mother Russia blocks websites like GitHub :)

                    1. 4

                      That, and it’s not like GitHub is doing anything dastardly with your account either.

                      Of course, Microsoft would never!

                      1. 3

                        I’ve been waiting for this supposed Microsoft intervention and haven’t seen it. Everything GH is doing now is what they’d have done when they were independent, good or bad.

                        1. 3

                          doing anything dastardly with your account either.

                          Idc about the quality of the service GitHub provides. You said they aren’t doing anything bad with your account (which to me means personal data)

                          This is right up Microsoft’s (or any big tech company’s) alley. You can claim they aren’t doing anything, but because it isn’t open source you are at their mercy.

                          1. 1

                            Yeah most of the things that are bad about Github are equally bad regardless of whether or not they are a separate firm or owned by Microsoft.

                        2. 2

                          The dastardly thing that GitHub is doing is GitHub.

                          1. 1

                            I can’t tell what you’re arguing. That GitHub actually is better than email for one-off contributions because it’s a better experience? Your other points seem to rest on that premise, which is clearly not agreed upon.

                          2. 5

                            It’s strange to me that the article frames GitHub as an alternative to email that is better suited to “one-off” contributions. One of the problems with GitHub development is that you can’t contribute without a GitHub account, whereas email based workflows generally don’t require any subscription or account with the project to contribute. In that way email is actually better for one-off contributions.

                            Exactly. This is why the Sane software manifesto requires that it should be possible to contribute without having an account at particular service and without having signed a contract with particular third-party.

                            Dependency on centralized corporations like GitHub, Google etc. is Evil. Free software and internet needs rather more decentralization.

                            1. 4

                              I definitely also prefer mailing-list development. It makes much more sense when discussing changes iteratively, and the larger the change the more useful it becomes.

                              Technically you still need to subscribe to the mailing list, unless you’re one of the fellows that still knows about gmane. And it does require some decent email client, to both handle the traffic and to make patch submission/retrieval convenient. Since many devs nowadays just use web-based clients, they see mailing-list based development as an annoyance, and that’s why it gets such a bad rep. This is not exclusive to kernel development. @calvin is also right in saying that almost everyone now has a github account for either work of issue submission, you actually have less friction using github than to subscribe to a high-traffic mailing list.

                              It’s also true IMHO that the simplicity of github makes it easy to submit one-off patches, which is both a pro and a con. That’s fine for a typo fix, but it’s also too easy to see PRs with new functionalities, or bug fixes but with terrible code quality which the author has no intention to support beyond the initial submission: these are just a PITA for large projects, and raising the barrier to contribution does help weed them off.

                              Kernel dev is not supposed to be easy, so having a non-zero barrier to entry is beneficial IMHO.

                            1. 12

                              We are going to have snap parliamentary election in Armenia, unfortunately I’m not a citizen so I cannot vote. However, a co-ordination is being done by the InfoSec community and Media Diversity Institute of Armenia, where we are deploying dozens of OONI probes to monitor any outages in case the government decides to not play cool :)

                              The tech stack is:

                              • VueJS
                              • Elixir/Erlang/OTP
                              • Phoenix
                              • OONI probes
                              • A lot of shell scripts
                              • jq/awk/the family
                              • FreeBSD (Jails are handy here)
                              1. 4

                                I saw the title and the first thing that came to my mind was “Well the only way to escape that hell is by going to Elixir/Erlang/OTP”.

                                I read the article and a smile come to my face. I’m happy that the OP escaped Node. I’ve been using Elixir before it was even v1 and the design decisions in Elixir are made to help the developers and not because they wanted to solve a problem they created in the first place.

                                During the last 3 months I started doing “Front-end” programming (I’ve been doing low-level and systems engineering for 7 years) and feels like it’s… incomplete… Still evolving, etc.

                                1. 4

                                  On the internet-facing side of things

                                  In the internal network / behind a firewall / via a VPN

                                  • PostgreSQL for my projects
                                  • NextCloud to sync data (mostly my Sailfish phone)
                                  • Poudriere to build FreeBSD packages

                                  All of those are running on a FreeBSD host, each of them is a FreeBSD Jail, the machine is Dell E5470 in my home with a range of static IPs provided by the ISP.

                                  1. 2

                                    I’m one of those people whose desk collects random objects over time.

                                    PC is a Shuttle DS67U, I think it has an i3 processor. I’ve always hated ‘fan’ noises (vacuum cleaners, electric motors of any kind) so going fanless (around 2017) is one of the upgrades I’ve been most satisfied with in a long time.

                                    The desk itself is a ten year-old IKEA table. I’ve always used it as a desk, but now that I’m working from home full-time, I might cut off part of the apron, to allow myself to sit a bit higher.

                                    Knowing how many of my coworkers have to work in the kitchen, on the couch, or share their workspace with others in their household, I’m incredibly happy to have a dedicated space of my own.

                                    1. 2

                                      <3 those 4:3 monitors

                                      1. 2

                                        I see a 100ISO film there! :)

                                        1. 1

                                          Unfortunately, it has been slowly deteriorating for months because I don’t have good fixer atm :)

                                      1. 4

                                        OS: FreeBSD

                                        Device: ThinkPad T480s

                                        CPU: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz

                                        RAM: 24GB

                                        WM: WindowMaker

                                        Screenshot: here

                                        I always have an up-to-date page on my website regarding What I Use.

                                        I JUST got my Macbook Pro back from my co-founder, which is Catalina, and I use it only for music/video.

                                        1. 1

                                          I love that you are using WindowMaker! For me it mostly brings nostalgia, but I’m curious to know how it works for you! Like, why not OpenBox or Awesome? (example of floating/tilling wms)

                                          And what about FreeBSD? I’ve used it for a while but not sure how it would work as a daily driver. How has your experience been?

                                          1. 2

                                            And what about FreeBSD? I’ve used it for a while but not sure how it would work as a daily driver. How has your experience been?

                                            I suspect that will vary quite a lot depending on what you actually need to do. I spend a lot of time these days in MS Office, and run Windows on my work laptop and desktop, but my work desktop has 48GB of RAM dedicated to a FreeBSD VM and pretty much all development that I do happens in that VM, occasionally checking things out in the host environment (with or without WSL) if the Windows or Linux CI jobs fail.

                                            FreeBSD is gradually falling behind on a few things though. No official .NET Core port means no GitHub Actions, so CI is annoying. No supported Chrome means no supported Electron, so things like VS Code are all best-effort ports of the open source bit and a lot of things don’t work (e.g. no remote extension). No containerd port and so none of the Docker or similar ecosystems reach into FreeBSD-land. The last is the biggest problem because things are increasingly built on top of this. FreeBSD jails would be a much cleaner containerd back end than the horrible mess of namespaces, cgroups, and seccomp-bpf that Linux uses, but someone needs to do the work.

                                            1. 1

                                              Jails was probably my absolutely favorite feature of FreeBSD. It was so much cleaner and intuitive than linux containers. Ports was also a favorite. Ever since I tried Gentoo, the ability to build my packages from source with whatever flags was something I enjoyed, except when I had to wait a couple of hours to compile X or Gnome…

                                              1. 1

                                                I hated ports until Poudriere came along. It’s a shame; Poudriere does everything something like docker-build does, in a very clean way, but was never generalised to anything other than building the ports tree. It’s quite easy to set up Poudriere with a custom LOCALBASE to build a small set of ports and their dependencies with custom options. I’d love to see that better supported by the ecosystem.

                                        1. 2
                                          • This weekend I deployed a Lobsters sister website named “Let’s Talk”, will probably work on the translation and make the system more autonomous regarding backups, try to reach more users in the Armenian tech community.
                                          • Will code as much as I can at $WORK
                                          1. 2

                                            It’s great to see a modern example of someone configuring jails (with the new jail.conf format).

                                            I was fiddling with a jail host yesterday and getting frustrated with Bastille because its docs are quite unclear.

                                            My hunch is most of the jail admin tools were created before the jail.conf format existed and jail creation relied on rc.conf knobs etc. Now I suppose they exist to template jail.conf files, set up networking, and many of them also manage ZFS datasets. Maybe using a configuration management tool would be better, although sadly FreeBSD isn’t a well-supported platform by most.

                                              1. 1

                                                Thank you! It’s been a while since I tried to understand the vnet bits with jails, and had I found this guide then it would have been really helpful.

                                              2. 3

                                                Most of the jail admin tools are about doing things like keeping the base system up to date, managing packages, and so on. They’re probably overkill if you just want a VPS. I’d love to see decent tooling in the base system for:

                                                • Installing a minimal jail
                                                • Keeping it up to date
                                                • Installing packages without needing all of the pkg infrastructure inside the jail (pkg -J currently just jexecs pkg in the jail, I’d like it to run outside the jail and just jexec any post-install scripts if necessary).
                                                • Automatically configuring firewalls / NAT (IPv4 and IPv6).

                                                You can’t boot a FreeBSD base system with /etc in a separate filesystem to the root, because it needs to be able to read /etc to be able to mount other filesystems, but to be really useful for container / jail deployments to have all of the defaults moved out of /etc and so /etc would not be part of the base system image at all. /etc, /usr/home, /usr/local and /var would be separate read-write ZFS datasets and all jails could share a read-only mount of a ZFS filesystem as a base image. This is something that’s been discussed a lot over the last decade but never implemented.

                                              1. 14

                                                You know, when Cory Doctorow stopped using MacOS in 2006, this was news. This is not news, there is nothing in this article that is new, or technical, or interesting. Engineering is a series of trade-offs, the MacOS vs FreeBSD tradeoffs are well known, and not secret. At this point, every time I see an article like this, I’m thinking to myself “Don’t go away mad, just go away”

                                                1. 15

                                                  I dunno, there is a bit of value in folks sharing their experience like this. Nothing ground shaking or crazy, and it certainly isn’t “news” but it’s a bit of insight.

                                                  1. 13

                                                    Well, when I wrote the article I was not expecting people to read it and be “woah!”, just to give my simple view that macOS is not Unixy anymore, forensics is impossible and it’s not Just Works(TM) anymore.

                                                    1. 2

                                                      My take away from this will be the statement “forensics are impossible”. That’s my primary issue with both Windows and, of late, macOS. The ability to go through the logs to find out what broke is an essential feature.

                                                    2. 6

                                                      It would be more palatable if there was an element of novelty in even a subset of these “I changed OS” stories, but most of the time there isn’t much differentiation outside the “rant” or “personal story”. Even a “why I left plan 9” would be more interesting at this point than someone moving away from Windows, or MacOS, or even Linux. I could see a case for it being noteworthy if someone famous moved from a mainstream OS (eg. If Bill Gates moved to Linux, for instance).

                                                      I think the choice of tags on these articles is also instructive. They generally don’t fit well will into any tags outside rant, and/or the relevant OS tags. If there was an “i-changed-OS” tag, I would certainly just filter it and get on with my life!

                                                      Off the top of my head, I came up with this list of common items in the “changing OS story”:

                                                      • typically contains a rant of some kind, either as a pre-hoc of post-hoc justification for the move
                                                      • notes about apps that the user looked for in the new OS, found, or did not find
                                                      • a few notes about configuring the destination OS (eg. the “technical move” portion)
                                                      • possibly some notes about still using the previous OS, but in special cases (eg. gaming, post production, etc)
                                                      • callout to makers of previous OS, with what changes they could have made to retain the user, or changes which may presage their return

                                                      Did I miss anything?

                                                    3. 6

                                                      I rarely see this migration path (macOS -> FreeBSD). Most of the times its like (macOS -> Linux Distribution) or even (macOS -> Windows) when gaming is involved.

                                                      1. 1

                                                        My progression was:

                                                        Windows (3.1) -> FreeBSD -> OS X -> macOS

                                                        If macOS continues on the path its on, my next step will be back to FreeBSD/KDE.

                                                        1. 1

                                                          I really liked OS X 10.6 and 10.7.

                                                          Pity that now that Apple has the best possible hardware (M1) the software went south so much …

                                                      2. 6

                                                        Culture dies when people stop talking about it, and to tell other people to stop talking about the things that you already know is to advocate for the death of your entire body of knowledge. Seems counterproductive.

                                                        1. 2

                                                          I think there’s a difference between saying “this has come up in various forms many times in the last decade and a half without much new being said” and advocating for the death of the entire body of knowledge in the area.

                                                        2. 4

                                                          I’ve seen quite a few of these (while undertaking my own move), and I think most of the blogs are personal blogs where people are just posting their general stuff. I think it gets picked up and posted here by other people. As long as people here think it ads value they’ll post and upvote it. @pushcx could always add a tag for setups with a -0.25 hotness weighting if it gets out of hand. In the meantime if it bugs you hitting the hide button may help.

                                                          1. 1

                                                            just a data point, but I don’t know who Cory Doctorow is, have been writing code professionally since 1983, including in a FAANG for years, and so even whoever that is having personal tastes was not news for some of us. Just like this is not news now. I guess it’s hard to determine what is newsworthy, and what is just data?

                                                          1. 3

                                                            Interesting that this is posted in 2020 :P

                                                            Like so many I have basically given up on XMPP, which is kind of a shame. I’m hoping there’ll be some development for proper native Matrix clients, but my hopes are not very high.

                                                            1. 5

                                                              Many people told me to move from XMPP to Matrix as well. I have registered in my friend’s instance of matrix, been trying to use it daily, but I’m still unable to move from XMPP. for the average user it’s really simple to explain XMPP, it’s like email for chat. Explaining Matrix (how it works) is really complicated.

                                                              I still run my own public XMPP server and users are really happy with it.

                                                              1. 3

                                                                Explaining Matrix (how it works) is really complicated.

                                                                What’s the real difference for an “end user”? Sure, groups and DMs aren’t exactly the same, but otherwise it seems to more or less fall into the “email for chat” idea.

                                                                1. 1

                                                                  Interesting, I didn’t notice any difference.

                                                                  I migrated my non-technical users from Miranda/Swift (Windows) to the Riot Desktop Client and the only difference is that it’s not so nicely integrated into the task bar. No explanation needed. Maybe your users need a more detailed explanation, where mine were happy with the fact that you can communicate. We used XMPP in a way that ignored MUCs and now we use Riot in a way that excludes multi-person channels..

                                                                  1. 1

                                                                    it’s really simple to explain XMPP, it’s like email for chat. Explaining Matrix (how it works) is really complicated.

                                                                    The same explanation holds true for Matrix? The low-level details of the protocol are quite different, but the UX is basically “like email for chat (with Slack instead of AIM influence)”.

                                                                1. 2

                                                                  so happy that the BSDs don’t come with sudo installed, but OpenBSD’s doas is way better.

                                                                  1. 2

                                                                    I use DOAS on FreeBSD and also Red Hat/CentOS/Oracle Linux, works like a charm.

                                                                  1. 4

                                                                    Going to Republic of Artsakh to participate at wine festival, maybe dance Armenian folks a bit. will take my laptop with me to blog a bit about Internet Politics in the country and smoke a cigar. Perfect timing to do some photography using my Nikon N2000 (given as gift by my mentor @norayr).

                                                                    1. 2

                                                                      Republic of Artsakh

                                                                      I had to google this one. Who do I piss off if I keep calling it Nagorno-Karabakh?

                                                                      1. 2

                                                                        haha! good one! most people here call it Karabakh unofficially. So technically just official people :)

                                                                    1. 2

                                                                      Things I’d like to do this week

                                                                      1. Setup a CI/CD system for vishap oberon compiler which builds for x86, x86_64, armv7 and ppc using buildbot.
                                                                      2. Setup MISP server for CiviCERT.
                                                                      3. Setup buildbot and write automation scripts for EVNCERT to handle scanning Armenia and reports from Shadowserver.
                                                                      4. Setup FreeBSD image registry at $WORK, where we’ve built our own containerization scheduler and orchestration system for FreeBSD Jails and Linux runc.
                                                                      5. Write a blog-post in Armenian about some of the emotional issues I’ve been having lately due to the crash of my love-life.
                                                                      6. Go out and have drink with my co-founders, haven’t been out in a while :)