In my experience, the beer always turns out better than I thought it would. As long as you followed a recipe and the beer did not get contaminated, it should be tasty. Good luck with your brewing!
I just got back into homebrewing last week after taking a year break. I am currently fermenting a chocolate stout. I will add some dried peppers to some of my bottles for some heat. Good spicy beers are hard to find at the store, so I have had to make my own.
The fact that it took me 5 minutes to realise that you aren’t bottling up some international phonetic alphabet C-library (IPA kit?) for homebrew but rather literally making beer probably means I should shut down for maintenance too.
Meanwhile I’m making kvass for the first time. It’s still fermenting after 3 days because of cold temperature in room. Making kvass is too easy compared to beer, with much less requirements to asepticity.
My wife went to Paris for the weekend, so me, our son and our dog are just going to hang out. If the weather will be bad (like all this summer, way to go NL) we’ll maybe go to the science museum so he can push some buttons with lights. It’ll be good times.
Today is my last day with Rented.com; Tuesday I join the team at DigitalOcean. So this weekend will be the first time in many years during which I will be technically unemployed! I am going to sleep in, go for a long trail run in the mountains outside of my home city of Salt Lake, bbq in the back yard with my wife and dog and cat, and get ready for the next big step in my career :)
I’ll be writing an AJP3 client in C in order to debug intermittent client disconnects when uploading large files through mod_jk on my backup server (was working for 6 years with zero problems). It has been taking (on average) about 5 minutes every morning to double-check the backups, and that has added up to about 6.5 hours (since May), which is about the amount of time I’ve spent so far trying to solve the problem. I’ve run into the limit of what curl and wget can do for debugging - I need to see what is going on with the connection on both the client and server at the exact moment the connection drops.
House work (replacing some hinges, yard maintenance), and then heading to the Niagara wine region sans kids to meet up with some friends from California who will also be sans kids.
Flying to California for a week of camping and hanging out with old friends on the beach and in the trees.
Speaking of which, any book recommendations? Genre or subject is irrelevant so long as the book is good. I just loaded Hallucinations by Sacks onto my ereader but that will probably not last the week.
Last weekend of “I can do nothing at all!” before I have to start getting my shit together for my apartment move in August. Going to have a BBQ with the Girlfriend and her mother at some point too.
I may be helping a friend around her house because she broke her foot. Otherwise a local brewery is hosting a beer tasting/yarn buying event, which is basically Christmas in July for me!
Working with architects on renovating a 150-year old Kyōmachiya and trying to imagine ways to move back to Kyoto while continuing working on engineering challenges I’m passionate about. Sadly, Kyoto’s not exactly a major tech hub.
I have written lot of scrapers too in Python (I also create my own basic framework based on BS4 + aiohttp in order to plumb my own scraping pipeline), but right now I think Golang is a lot faster and very easy (using colly+goquery). I am not using REPL for Python, then it’s not an issue me. Anyway you can use Go Playground in order to have something similar to REPL.
Golang is less “battery included” comparing to Python, but concurrency is amazing
Taking my one year old son to a birthday party and trying to get started with an initial build of a VR app for a client so stress then a bit of a learning curve! I’ll mainly try to get my head around the pro’s/con’s of unity vs unreal for a project this small. Maybe do a simple room in each to see what works best. Unity looks interesting as seems like a lot of pre-made assets can buy to get moving quickly.
Changing the language I’m working on to use X[T] for generics (instead of X<T>) and array(1) instead of array[1] for array operations. (For the obvious reasons.)
Probably writing some language design notes on why properties as an alternative/replacement for getters/setters are a bad idea. That properties got popular after C# looks like a historical accident, and it’s sad that newer languages like Kotlin are copying things verbatim.
Properties are only trying to address the symptoms of a bigger problem (languages provide poor separation between implementation code and code using it) and are doing it rather poorly.
If you look at how languages evolved, it looks a bit like this:
We have fields, great syntax to access them, no fluff!
But we maybe want to be able to evolve the implementation without the consumer of our class/struct/type seeing it later on!
Let’s wrap all our fields in getters and setters, even if in 95% of the cases we only return the original field! This loses us the convenient field access syntax, but it’s worth the cost!
Ugh, look at all this boilerplate! Let’s invent another syntax – properties – to make the declaration of getters/setters less cumbersome, and restore the field-access syntax for consumers of our code!
One example where pretty much this happened is C#, and sadly many languages copied C#’s properties with all the C#-specific baggage without any pressing need, a good example is Kotlin.
Here is a better design:
Have constants, variables and functions and use the same use-site syntax. This lets people evolve their implementation without breaking users (or being forced to define getters/setters just in case).
If the language is compiled to some intermediate format, do not have separate opcodes for accessing a field and calling a function, let the runtime deal with it.
Have the IDE assign different colors to constant/variable/function accesses.
Example:
class Person(let firstName: String, let lastName: String) {
let name: String = firstName ++ " " ++ lastName
}
User code:
let joe = Person("Joe", "Doe")
joe.firstName // "Joe"
joe.lastName // "Doe"
joe.name // "Joe Doe"
Now requirements change:
We want to be able to change the lastName, because people marry and stuff.
Do we really need to store name, can’t we just compute it?
So the developer changes the class to:
class Person(let firstName: String, var lastName: String) {
fun name: String = firstName ++ " " ++ lastName
}
And nothing changes for the existing code:
let joe = Person("Joe", "Doe")
joe.firstName // still accesses a constant
joe.lastName // accesses variable, but who cares?
joe.name // calls a function instead of accessing a constant
// new possibility since the constant was changed to a variable:
joe.lastName = "Miller"
This
gets rid of needless boilerplate like getters/setters and properties,
makes the language much simpler, because there is one way to access data, not three (fields, getters/setters, properties),
gives users of the code the nice, convenient syntax (joe.lastName instead of joe.getLastName/joe.setLastName)
allows evolution of the implementation,
does not break existing code,
provides more information to users before, because IDEs can assign different colors to let, var and fun accesses.
The cost of this design is very minor: You can’t have separate namespaces for fields, methods and properties.
I think this is actually a good thing – not being able to write code where a class has both a field fooand a method called foo is an improvement in my book.
Ramen to be honest, esp. “Shiro Tan Tan Men”, if I can get it. But the place we go to tonight is known for Tokoyaki, which I never had before, so I am looking forward to try that.
Saturday morning yoga. Hopefully get my deck stained. Brush up on my “tech skills” for a technical interview next week. Watch Stranger Things S3 with son. Work on a side project. Sleep.
I am interested in getting more into lambda calculus, so I will see if I can find any good material on it and start to learn a lisp derivative like Racket or Guile. I think my first project in lisp will be to draw different fractals.
My girlfriend and I are considering adopting a cat, so we may go to a shelter just to check things out and learn more. We are both more dog-type people, but we don’t have enough time to devote to a dog, so we will be looking for a dog-like/affectionate cat.
Write a new entry for my blog and have the draft for the first post of my “Skills to get past entry level programming” (Need help with that name).
Get everything set up to start recording videos for YouTube next week. Trying not to overlap to much the content I want there with what I’ll be posting on my blog.
Start a project (any) in Rust just to get familiar with the language.
Possibly exploring elixir, since Pascal wrote a lib for the social network. XD
Hopefully writing more Rust, because that’s fun.
Adding my footage of bees washboarding to my list of beehaviors.
Gotta swap out hard drives on the production server. How to do that? It’s just two single drives, no RAID. I want to move to RAID. I think that means I’ll start from scratch on my spare server, then swap servers and copy database.
Most likely shopping for clothes, definitely playing more Pathologic 2, possibly getting back to cycling (uphill), maybe getting my ass kicked some more by ATS’s type checker.
I am exhausted from this week, so not much probably. I had a flat tire and some bad luck with the public transport, and I worked a bit longer, and as a result I’ve been away for 12+ hours almost every day. I also take care of my parents cats and plants for this week, which takes some time in the evenings.
Tomorrow I’ll go running. Maybe I’ll do some writing and some chores, and after that my weekend will probably be over already
Going to build a new PC for my parents tomorrow, then have dinner with them and will go for drinks with friends in the evening.
On Sunday I’ll go play boardgames with a few friends.
So a slow and chill weekend :-)
It’s good with some relaxation, I’m off for Tomorrowland on thursday.
Finishing Smartifying the lights in my house. Taking apart an old (c. 1950s) Table Saw to start restoring it (the motor finally died so I don’t have much choice but to take it apart now). Getting remaining voice and tablet devices set up around the house too, plan out a move from smartthings -> Hass.io (maybe, I’m still only mostly decided on it).
I found out today that I wasn’t readmitted to university because of a mistake I made on the application. I guess now I have to figure out what I’m going to do. For interesting things, I’ll work on my compiler a bit. I might take another crack at understanding dependent types.
Going with my wife to her former workplace (a very nice seafront touristic village). She will hang out with former colleagues, I will relax reading “Deep Learning” by Goodfellow, Bengio and Courville and improving my Golang scraper.
How do you like scraping in go? I have done tons of scraping with python, and I imagine (perhaps wrongly) that not having a REPL to create scrapers is pretty difficult. Of course, ease of concurrency might make up for it.
This course has been full of good surprises for me. Thought the refactoring section would be a cakewalk, and it hasn’t been hard, but what’s been great about this course for me is the practice - take a small code base, write unit tests, refactor. These are things I don’t do often enough at all in my day job. Lots of anciliary wins like getting really cozy with Pycharm (I knew how to use it - but small yet important stuff like creating run-time configurations, integrating with pyenv / virtualenv, etc.)
Oh, and doing lots of lazing in the sun with my wife and dog :)
I was reminded that I didn’t solve some AoC 2018 tasks (I’ve lost my motivation for the whole thing when I saw day 15), so I decided it is time to revisit them and see what can be solved without too much of a hassle (that means I don’t plan to solve day 15 ;)).
Working on the web site for my main non-work project. A placeholder / information dissemination site that I’ll hopefully get up and running this coming week and will serve to let people know about the project until it’s ready for general consumption.
Other than that, possibly doing a little wood-working, and as always spending as much time as I can with the kiddos! Maybe a camp-out in the living / movie night that seems to be becoming the standard for weekends.
With the risk of showing this too early: I’ll try to get out a 0.1 version of my service-daemon, so some friends can start crashing start/stopping their java service on the server. This will also be a nice study for using pretty edge-features in rust[1] for a quite simple service that ships with 2FA and a user system.
I’d really like to get some possible input about some design decisions (local DB currently, configuration etc).
[1] Actix-web 1.0, futures 0.1 with sled 0.24 and no framework on top.
I’ll also have to attend a musical and a birthday party or I’ll get some angry looks, so let’s see how good my train connection is for this weekend :)
I’m shutting down for maintenance :)
Bottling my first homebrew attempt (IPA from a kit). I’m looking forward to tasting my mistakes in another two weeks.
In my experience, the beer always turns out better than I thought it would. As long as you followed a recipe and the beer did not get contaminated, it should be tasty. Good luck with your brewing!
I just got back into homebrewing last week after taking a year break. I am currently fermenting a chocolate stout. I will add some dried peppers to some of my bottles for some heat. Good spicy beers are hard to find at the store, so I have had to make my own.
IMO that’s often because the volatile oils in hot peppers don’t survive the pasteurization process well.
Here in Somerville, MA. Slumbrew (which runs a taphouse steps from my apartment :) makes a delightful spicy porter called Porter for Pyros. Love it :)
The fact that it took me 5 minutes to realise that you aren’t bottling up some international phonetic alphabet C-library (IPA kit?) for homebrew but rather literally making beer probably means I should shut down for maintenance too.
It’s all about the carbonation.
Meanwhile I’m making kvass for the first time. It’s still fermenting after 3 days because of cold temperature in room. Making kvass is too easy compared to beer, with much less requirements to asepticity.
My wife went to Paris for the weekend, so me, our son and our dog are just going to hang out. If the weather will be bad (like all this summer, way to go NL) we’ll maybe go to the science museum so he can push some buttons with lights. It’ll be good times.
I’m playing with Nim. Gonna see if it’s a viable target for my computational linguistics code.
Although I don’t always understand everything, your Lojban and Toki Pona work is really interesting, good luck this weekend!
Today is my last day with Rented.com; Tuesday I join the team at DigitalOcean. So this weekend will be the first time in many years during which I will be technically unemployed! I am going to sleep in, go for a long trail run in the mountains outside of my home city of Salt Lake, bbq in the back yard with my wife and dog and cat, and get ready for the next big step in my career :)
Very cool! I’ve been using DO for years. So simple, fast, and fairly priced! Good luck!
I’ll be writing an AJP3 client in C in order to debug intermittent client disconnects when uploading large files through mod_jk on my backup server (was working for 6 years with zero problems). It has been taking (on average) about 5 minutes every morning to double-check the backups, and that has added up to about 6.5 hours (since May), which is about the amount of time I’ve spent so far trying to solve the problem. I’ve run into the limit of what curl and wget can do for debugging - I need to see what is going on with the connection on both the client and server at the exact moment the connection drops.
House work (replacing some hinges, yard maintenance), and then heading to the Niagara wine region sans kids to meet up with some friends from California who will also be sans kids.
Wanted to go mountainbiking but it seems to be raining all weekend so probably playing computer games :/
Camping while attending a massive paintball game.
Flying to California for a week of camping and hanging out with old friends on the beach and in the trees.
Speaking of which, any book recommendations? Genre or subject is irrelevant so long as the book is good. I just loaded Hallucinations by Sacks onto my ereader but that will probably not last the week.
Hyperion by Dan Simmons
Cat’s Cradle by Kurt Vonnegut
Thanks for the suggestions! I’ve never read Simmons, but I’ll check this out. And Vonnegut is always fun.
Common Ground: A Turbulent Decade in the Lives of Three American Families
Thanks, added to the list.
Eat Like A Fish
This seems pretty interesting. Thanks!
The Three Body Problem Trilogy. My favorite Sci-Fi series.
I’ll download it and add to the list. Thanks!
Last weekend of “I can do nothing at all!” before I have to start getting my shit together for my apartment move in August. Going to have a BBQ with the Girlfriend and her mother at some point too.
I may be helping a friend around her house because she broke her foot. Otherwise a local brewery is hosting a beer tasting/yarn buying event, which is basically Christmas in July for me!
If all goes well I’ll be cracking open a book next to the sea :~)
Awesome. Which sea?
The Salish Sea.
Working with architects on renovating a 150-year old Kyōmachiya and trying to imagine ways to move back to Kyoto while continuing working on engineering challenges I’m passionate about. Sadly, Kyoto’s not exactly a major tech hub.
I have written lot of scrapers too in Python (I also create my own basic framework based on BS4 + aiohttp in order to plumb my own scraping pipeline), but right now I think Golang is a lot faster and very easy (using colly+goquery). I am not using REPL for Python, then it’s not an issue me. Anyway you can use Go Playground in order to have something similar to REPL. Golang is less “battery included” comparing to Python, but concurrency is amazing
Taking my one year old son to a birthday party and trying to get started with an initial build of a VR app for a client so stress then a bit of a learning curve! I’ll mainly try to get my head around the pro’s/con’s of unity vs unreal for a project this small. Maybe do a simple room in each to see what works best. Unity looks interesting as seems like a lot of pre-made assets can buy to get moving quickly.
Visiting a friend for the weekend, and I think the current plan involves all of:
Changing the language I’m working on to use
X[T]
for generics (instead ofX<T>
) andarray(1)
instead ofarray[1]
for array operations. (For the obvious reasons.)Probably writing some language design notes on why properties as an alternative/replacement for getters/setters are a bad idea. That properties got popular after C# looks like a historical accident, and it’s sad that newer languages like Kotlin are copying things verbatim.
Curious about why do you think they’re a bad idea
Properties are only trying to address the symptoms of a bigger problem (languages provide poor separation between implementation code and code using it) and are doing it rather poorly.
If you look at how languages evolved, it looks a bit like this:
One example where pretty much this happened is C#, and sadly many languages copied C#’s properties with all the C#-specific baggage without any pressing need, a good example is Kotlin.
Here is a better design:
Example:
User code:
Now requirements change:
lastName
, because people marry and stuff.name
, can’t we just compute it?So the developer changes the class to:
And nothing changes for the existing code:
This
joe.lastName
instead ofjoe.getLastName
/joe.setLastName
)let
,var
andfun
accesses.The cost of this design is very minor: You can’t have separate namespaces for fields, methods and properties.
I think this is actually a good thing – not being able to write code where a class has both a field
foo
and a method calledfoo
is an improvement in my book.I’m also curious. Also, I could probably send OP some data on trends in that pattern if that would help.
Thanks, I would appreciate that!
Here is the write-up with some explanations: https://lobste.rs/s/cmeb99/what_are_you_doing_this_weekend#c_mrvbhi
Okay, this week’s looking a bit hectic, so if I don’t send it to you by end of next weekend ping me!
Sure, don’t worry, thanks!
Favourite Japanese dish?
Toss up for me between really good ramen and una-don. (roast freshwater eel over rice.)
Ramen to be honest, esp. “Shiro Tan Tan Men”, if I can get it. But the place we go to tonight is known for Tokoyaki, which I never had before, so I am looking forward to try that.
Takoyaki is hands down my favourite dish. I am very into seafood so they are just a delight to eat.
Never had one and now I want one :) Thanks!
Saturday morning yoga. Hopefully get my deck stained. Brush up on my “tech skills” for a technical interview next week. Watch Stranger Things S3 with son. Work on a side project. Sleep.
Please share if Stranger Things S3 is worth watching. Wife and I are watching Chernobyl now, which is great so far (2/5).
I finished ST3 yesterday and it was great!
That’s on my list. Need to watch it before my HBO sub expires on the 25th.
I am interested in getting more into lambda calculus, so I will see if I can find any good material on it and start to learn a lisp derivative like Racket or Guile. I think my first project in lisp will be to draw different fractals.
My girlfriend and I are considering adopting a cat, so we may go to a shelter just to check things out and learn more. We are both more dog-type people, but we don’t have enough time to devote to a dog, so we will be looking for a dog-like/affectionate cat.
The Realm of Racket book is fun!
There are some things I want to do this weekend.
Most likely shopping for clothes, definitely playing more Pathologic 2, possibly getting back to cycling (uphill), maybe getting my ass kicked some more by ATS’s type checker.
I am exhausted from this week, so not much probably. I had a flat tire and some bad luck with the public transport, and I worked a bit longer, and as a result I’ve been away for 12+ hours almost every day. I also take care of my parents cats and plants for this week, which takes some time in the evenings.
Tomorrow I’ll go running. Maybe I’ll do some writing and some chores, and after that my weekend will probably be over already
Playing board games and preparing to DM a Dungeons & Dragons campaign.
Going to build a new PC for my parents tomorrow, then have dinner with them and will go for drinks with friends in the evening. On Sunday I’ll go play boardgames with a few friends. So a slow and chill weekend :-)
It’s good with some relaxation, I’m off for Tomorrowland on thursday.
Finishing Smartifying the lights in my house. Taking apart an old (c. 1950s) Table Saw to start restoring it (the motor finally died so I don’t have much choice but to take it apart now). Getting remaining voice and tablet devices set up around the house too, plan out a move from smartthings -> Hass.io (maybe, I’m still only mostly decided on it).
I found out today that I wasn’t readmitted to university because of a mistake I made on the application. I guess now I have to figure out what I’m going to do. For interesting things, I’ll work on my compiler a bit. I might take another crack at understanding dependent types.
Going with my wife to her former workplace (a very nice seafront touristic village). She will hang out with former colleagues, I will relax reading “Deep Learning” by Goodfellow, Bengio and Courville and improving my Golang scraper.
How do you like scraping in go? I have done tons of scraping with python, and I imagine (perhaps wrongly) that not having a REPL to create scrapers is pretty difficult. Of course, ease of concurrency might make up for it.
Days 37-39 of 100 days of Code in Python.
This course has been full of good surprises for me. Thought the refactoring section would be a cakewalk, and it hasn’t been hard, but what’s been great about this course for me is the practice - take a small code base, write unit tests, refactor. These are things I don’t do often enough at all in my day job. Lots of anciliary wins like getting really cozy with Pycharm (I knew how to use it - but small yet important stuff like creating run-time configurations, integrating with pyenv / virtualenv, etc.)
Oh, and doing lots of lazing in the sun with my wife and dog :)
I was reminded that I didn’t solve some AoC 2018 tasks (I’ve lost my motivation for the whole thing when I saw day 15), so I decided it is time to revisit them and see what can be solved without too much of a hassle (that means I don’t plan to solve day 15 ;)).
I really dislike that one. It’s very fiddly and making a small mistake can cost you a lot of debugging. I haven’t solved it yet either. :)
Trying to load code onto an open source hearing aid, blog post in progress. Should be able to hear ultrasonics.
Working on the web site for my main non-work project. A placeholder / information dissemination site that I’ll hopefully get up and running this coming week and will serve to let people know about the project until it’s ready for general consumption.
Other than that, possibly doing a little wood-working, and as always spending as much time as I can with the kiddos! Maybe a camp-out in the living / movie night that seems to be becoming the standard for weekends.
With the risk of showing this too early: I’ll try to get out a 0.1 version of my service-daemon, so some friends can start
crashingstart/stopping their java service on the server. This will also be a nice study for using pretty edge-features in rust[1] for a quite simple service that ships with 2FA and a user system.I’d really like to get some possible input about some design decisions (local DB currently, configuration etc).
[1] Actix-web 1.0, futures 0.1 with sled 0.24 and no framework on top.
I’ll also have to attend a musical and a birthday party or I’ll get some angry looks, so let’s see how good my train connection is for this weekend :)