1. 14

What are you doing this week? Feel free to share!

Keep in mind it’s OK to do nothing at all, too.

  1. 5

    Wondering if Java is worth learning. I see a lot of jobs requiring Java experience. I know to write code in C++ and Python. Never was attracted to Java. I see no point in it especially since it is slower than C++ by reputation.

    1. 6

      Lots of strong opinions in this thread. Java is more than a language; it’s a platform. Java and JVM are used interchangeably a lot. Java is verbose, probably a little slower than C++ in some cases, but the JVM is the platform for almost all, modern day data engineering libraries. Hadoop, Spark, etc. You don’t have to write Java code, you can use Scala or Clojure if you want a different language on the JVM, but still want to interop with the vast ecosystem of Java libraries.

      Java and C# still seem to be pretty prevalent for enterprise development, so it’s up to what you want your career path to look like. If you are wanting to do data engineering the JVM will be useful to work with. If you want to work in enterprise apps, Java or C# are useful.

      tl;dr Don’t learn Java just to learn something fast. The virtual machine (JVM) is a powerful platform to use, which can leveraged by learning Kotlin, Clojure, or Scala. If an interviewer refuses you a job because you haven’t done Java, you probably are looking for the wrong job(E.g. senior java developer) or looking at the wrong workplace(e.g. you must check all the boxes to get this job)

      1. 2

        A thousand times this.

        If you were going to work with java day-to-day, I’d suggest learning any of the following over studying the language:

        • An IDE, in depth (java and c# are the only languages I’d use an IDE for; they need it).
        • How code gets loaded (dependency management, the classpath)
        • A smattering of JVM bytecode (relevant if your code needs performance or you are integrating with non-java code).
      2. 4

        This may be more of an advanced topic, but instead of trusting reputation of being ‘slower’, I’d recommend playing with tools and techniques for benchmarking and profiling. It’s not only relevant to choice of programming languages: even within the same language you might have different opinions on performances of algorithms, data structures and language features. (e.g. lambdas are slow! virtual functions are slow! etc.)

        Different parts of different systems require different performance, and in many cases it doesn’t matter which language you choose at all. Being able to measure what actually matters and justify your choices would make you more pragmatic and essentially give you higher ground in arguments over choice of languages and technologies.

        1. 4

          Don’t bother. The language’s market share is in gradual decline for years, and there is nothing to be learned except the Platonic meaning of ‘cumbersome’.

          1. 3

            Arguments this bold are rarely true… I don’t write Java and I do vaguely agree with the sentiment, but I also would write C before C++ so.

            1. 1

              shrug I do have some experience with Java (and would also choose C before C++). Its killer feature was restricting C++ programmers from shooting themselves in a foot. Which is hardly a special selling point nowadays, with so many fairly nice, popular languages out there.

              1. 1

                I suppose it may just be a knee jerk reaction, I don’t like it when people say “Don’t learn X” without even proposing an alternative. I never did enjoy Java, it was quite verbose and quite ceremonious. Still I’m hesitant to say that someone shouldn’t learn it at all.

          2. 3

            I’m not recommending either learning java or not, but java is hardly slow. there’s a good reason many large companies with performance requirements swear by it. The jvm is underrated in general and the JIT is especially underrated.

            1. 3

              If you’re coming from C++, there isn’t that much to learn. My opinion..learn something new like a functional language if you want to broaden your horizons. If you need Java experience for a role, you can obtain enough in a short period to pass their “test” and learn the rest on the job.

              1. 2

                Lots of code is in Java, and there is a career path in knowing a JVM language.

                Lack of speed is overrated, and Java’s JIT is reasonable.

                I am not a Java Guy though I would become one for a job. The standard library is too massive and ever expanding for my tastes, and I refuse to spend time memorizing obscure classes that will make a possible future job easier. I’d rather have Google when I need it.

                1. 2

                  Java is slower and more memory intensive but it’s also easier and faster to write correct code. It’s a conscious trade off, and depending on the task may be a worthwhile trade. Rust is a good compromise, but I think it is important to be mindful that it is a compromise.

                2. 4

                  Work:

                  • chewing through a bunch of small bugs in our new editor that are collectively driving our users up a wall
                  • trying to further the use of Immer in our code base

                  Hobby:

                  • trying to land some actual improvements to Factor, since I’ve basically been absent for months
                  • getting a Nebula VPN up so I can hit my home network on my upcoming road trip
                  • finishing a blog post I’ve been working on about CouchDB/PouchDB being a great tool to use for the personal web
                  • figuring out whether one of my DeLorean’s lights is actually burnt out, or the circuit board went bad again (I replaced a bunch of physical bulbs with LEDs, which required a custom circuit board due to the lower voltages; this is my second circuit board already)

                  Personal:

                  • go the entire week while never having my phone out while playing with my son
                  1. 2

                    trying to further the use of Immer in our code base

                    Check this out! https://github.com/tc39/proposal-record-tuple

                    1. 2

                      I’ve complained in other threads about more and more features being added to JS, but this one I can get behind :)

                  2. 4

                    Starting my game idea over from a completely non-visual angle.

                    1. 2

                      Tell us more?

                      1. 2

                        I realized that I was focusing too much energy on how the game would be displayed. Instead I’m going to build the game with events and no display to start. Then I’m probably going to build a CLI to test ideas. Originally I put all my energy into visuals and I’m realizing that it’s not my strength. Instead I’m going to create a “back end” that has all the game logic and interactions and later worry about visualizing the information. This also would allow me to create many projections of the game data.

                        1. 1

                          I think that’s a great approach. I hope you find success.

                    2. 3
                      • Working on planning for that personal API idea
                      • Getting CGI support in wasmcloud (demo here)
                      • iSH blogpost
                      1. 3

                        If I can get some dedicated time, I’m planning to start implementing write support in this project: https://github.com/libyal/libpff

                        I need to be able to merge Outlook PST files in a programmatic fashion. libpff only supports reading PST files, not writing. This is part of a privacy tech tool I’m writing, horribly named The Migrationator.

                        1. 3

                          Implementing the visitor pattern for the Inko compiler, which is needed for various compiler passes (e.g. type checking the code). I don’t like the visitor pattern much, but without pattern matching (lots of work to implement this) and multimethods (also a lot of work, and can be confusing while debugging) I am not left with many options. Fortunately, I don’t anticipate the AST types to change much, so most of the visitors setup cost is a one-time cost.

                          1. 1

                            I’m not sure if you have any involvement with the Inko website, but I like the little code snippets on the front page, and the dropdown that lets me select examples. It’s a simple way to give me a feeling of how the language looks in different scenarios.

                            1. 1

                              I do, I’m the author of said website/language. Thanks for the feedback! :)

                          2. 3
                            • Learning Nim by working through Nim in Action.
                            • Writing some Haskell for a project I’m working on.
                            • Skimming the Lightning Network paper. I’m way behind on lots of things cryptocurrency/blockchain.
                            • Writing down some thoughts I have about a personal cloud project that I’ve been pondering for a while.
                            • Maybe publish the source for a paperkey proof of concept utility that I built as an experiment. It’s in a non-public monorepo right now, so I’d have to make some effort. I doubt its utility as a standalone tool so I’m not sure if it’s worth doing.
                            1. 3
                              • finishing writing post about exporting and liberating your data (followup to this). Also related to the personal API thing posted last week!
                              • final touches for cachew, Python serialization/caching library powered by type hints
                              1. 3

                                Recovering from Advent of Code, to be quite honest :P

                                1. 1

                                  I didn’t finish, but I’m glad I started!

                                2. 3

                                  So far, trying to cause this jquery accessibility bug to be fixed: https://bugs.jqueryui.com/ticket/4739

                                  1. 3

                                    I’m working on a Telegram bot, primary for my wife and me, that will reply with a video file from a given link.

                                    We share a lot of stuff to each other, mostly memes, funny videos, etc. from Reddit, Facebook, Instagram, but we hate that we have to visit them to view them.

                                    Other families wanted to use it as well so I’m adding a bit more functionality and resources. Currently, it’s using the free tier in Heroku, Redis lab and ElephantSQL (Postgress as a service).

                                    Feel free to try it: https://t.me/replyVideoBot

                                    Some old family members want to try it as well, but they don’t use Telegram, so I’m making it so you can email the service and it will reply with a link to the file as well.

                                    Might add a Slack bot instance as well, who knows.

                                    1. 2

                                      Wrapping up loose ends from Abstractions, marketing a fundraiser for Code & Supply Scholarship Fund, trying to settle on a new laptop in the next 36 hours so the purchase is on the 2019 tax year (wither another Mac or something else), and remembering what I was doing two weeks ago before I left for my first real holiday time off in four years.

                                      1. 2

                                        Reading facebook’s mononoke and eden for monorepo mercurial support.

                                        Traveling, flights….

                                        1. 2

                                          Well I spent the last two days installing 3 external IP cameras (nothing quite like the combination of spools of Ethernet and a masonry hammer drill to start the week) and in ~12 hours I’m flying to Singapore for a few days.

                                          Oh and I still need to get a Proprietary API ~> SMTP change tested and merged for $CLIENT so their site doesn’t stop working when a certain mail provider has a ridiculously long planned outage window in ~9 days

                                          1. 2

                                            Deploying my second Ansible configuration with my newly packaged ut2004-server-linux for Debian buster. Next will be packaging and deploying a few mutators / mods.

                                            1. 2

                                              Working on bug fixes in some Lua code.

                                              Continuing to learn Rust by working through the rust book.

                                              Finishing the first book of the Masters of Rome series.

                                              1. 2

                                                Only working Thursday/Friday this week—hopefully will get some project work done without much distraction.

                                                $HOME

                                                • will try and install NetBSD on my 11” Pinebook, since I am not doing anything else with it.
                                                • lots (more) of parenting due to sick partner.
                                                • Maybe a little work on this scheme compiler…
                                                1. 2

                                                  I just released https://www.keepmeon.top/ It’s rather basic now and after some feedback I’m working on some new features.

                                                  I’m thinking about creating another game for my collection of TypeScript games: https://xojoc.pw/games2d/

                                                  1. 2

                                                    whole week: cure my cold, drink tea, sleep a lot.

                                                    done:

                                                    • get and use feature phone (new years resolution).
                                                    • build a ignition-proof 60×60cm² single ceramic tile side table (yes, a “Fliesentisch”) with six sockets, chargers and cables for loading gadgets (I had one defect accumulator cell last year, and it was a close call…)

                                                    to do, in my awake phases:

                                                    • get firm with h2o webserver.
                                                    • search for a fixer-upper house.
                                                    • dabble with rust on a blue pill ARM board.