HN user

klemola

116 karma

Enthusiastic software developer and a music nerd. Helsinki, Finland. https://matiasklemola.com

Posts14
Comments19
View on HN
SSH Remoting 2 years ago

I appreciate your concern and I will consider this.

The [VS Code] WSL back-end has access to things in WSL PATH, like compilers and language servers. I don't duplicate them in Windows, and would like to avoid having double installs. It's also nice to be able to open integrated terminal and use `fish` and other unix-only CLI utilities.

SSH Remoting 2 years ago

How's Zed with WSL (now)? I've liked the ability to run the VS Code back-end in WSL and front-end in Windows, is this possible with Zed?

Thank you! Using a pure functional programming language in a game project has been suprisingly easy. I find an event driven, completely asynchoronus architecture well suited for a simulation game such as Liikennematto. Some events are big (a road tile was placed - this will update the tilemap as well as the road network graph), and some are small (UI events). Everything boils down to how an event will transform the game state.

Though many games have been built with Elm, I've had to implement lots of "game engine" code myself. For example, the collision system, physics (acceleration etc.), and path finding are custom code. It's worth mentioning that this is my fist gamedev project, and I've had to read up a quite a bit on the topic. Still the difficult was not in Elm itself, but in math and data structures, as it would be on any language.

Elm's lack of runtime exceptions and mutable state makes any game quite robust. Most of the bugs in Liikennematto have been of omissions (forgot to update something) and in math formulas. 3rd party Elm libraries are often excellent with great docs and have helped along the way.

Lastly Elm is quite performant (pure functions can be inlined and easily optimized) and I can create a single .js file that contains the game code, UI and the assets (which are still SVG in Elm). The whole game is still about 1 megabyte minimized! I think that's amazing, despite not shipping the runtime enviroment (the browser).

Whoa, didn’t expect to make it here. Thanks, OP!

This has been a fun (and rather long) project. I craved for a simple city builder that a toddler could play and understand. You might want to start from the first devlog entry to see where Liikennematto came from.

You can play Liikennematto in your browser on itch.io[1] (the link is buried at the end of the article).

[1] https://yourmagicisworking.itch.io/liikennematto

Hi HN!

I want to share with you this tiny tool that I recently hacked together.

It's trivial in nature - a web version of the Greenwich Time Signal that's often played when a news broadcast starts.

Though you can reset the seconds on your digital watch by visual means (like another synced clock), I think that a sound indicator helps with the timing. With that in mind, this tool fills a very small niche.

The original time signal is slowly being phased out from linear broadcasts, and other official sources are being discontinued [1]. I want to help preserve this part of analogue history in a digital format and provide a fallback.

https://matiasklemola.com/time-signal

[1] https://www.theguardian.com/world/2023/oct/12/canada-officia...

[dead] 5 years ago

All of our Heroku (EU) based services have been down since 45 minutes ago (~5.45 UTC).

I went through quite some trouble to get a react-table v6 based datagrid updated to v7.

I found that the examples showed individual features well, but when you combine features you are on your own. The "Kitchen Sink" example is far from having all features enabled at once.

The reason why I couldn't stay with v6 was that the virtualization examples used a deprecated API from an old minor version. I would have had to support a solution on a non-supported version (v6 has been pretty much abandoned).

So, I had to get these features to coexist peacefully:

- expanded rows

- virtualization

- sorting

- custom cell rendering

- click actions inside the cells (open a dialog, add the row entity to comparison)

Mirroring the GP, I had to use react-window and deal with the complexity from the library. I think that virtualization should be a first-class citizen inside react-table, like sorting.

On top of all of this the TypeScript support/typings are tricky to work with (IIRC you have to maintain a .d.ts file in your codebase and remember to update it when you update react-table). I literally had a headache for hours on while going through the refactoring.

In the end I managed to get everything to work without any bugs or weird behavior. I really was enthusiastic about v7, but was left with a bad feel of it.

I'm sure that things will get better, and luckily most folks don't beed all of these features. It's really the virtualization that makes things complicated. The thing is, pagination is not always a viable solution.

To save other people trouble, I should update the Codesandbox that I originally built (https://codesandbox.io/s/react-table-virtualized-subcomponen...).

Valuemotive | Full Stack Developers | Full time | ONSITE (Helsinki, Finland) | https://www.valuemotive.com/developer

Valuemotive is a software consultancy of ~20 people. Our work varies per project, and it often includes web development, data engineering and cloud/DevOps tasks. What sets us apart from local consultancies is our data science expertise. We combine data science and application development with great results. Some of us also work on Varis (https://www.varis.ai/home), which integrates insights from massive volumes of text data to support business decisions with the help of natural language processing.

We have lately favored JS/TS, React (+ Native), NodeJS, Java, Python (mostly data science), Postgres, Docker, Terraform and Kubernetes in our projects. Our apps tend to run in AWS or Azure. We are friends with Scala, Kafka, Apache Spark, Airflow and Elm, for example.

We are looking for experienced full stack developers to work in our client projects in the Helsinki region. Knowledge of some of the tech above is essential. We appreciate strong communication skills in Finnish and/or English. Data science experience is a plus. As a Valuemotive employee, you have a say in the direction of your career, as well as the direction of the company. Our devs are enthusiastic about emerging tech and will gladly share their insight with each other.

Contact: careers@valuemotive.com. Remember to mention that you heard about the position from HN.

Facebook Horizon 7 years ago

It is a little, but to me mostly because of the apparent time of the day (morning/noon).

Me and my SO often immerse in different things while in the same room. Could be as simple as both reading fiction, or I could be playing video games while she watches TV.

It's not what we do over breakfast, though! If the video showed couples doing their own thing while it's already dark outside, it would be more natural. VR to me is no more escapist than playing an intense team based FPS online.

Not that I am fan of the idea of a Facebook MMO!

Hi!

This is a weekend project kind of application. The goal was to combine HTML5 audio and Soundcloud's streaming capabilities. Vinepeek is obviously an influence, and that's why I wanted to add a picture of the user to give an idea who is behind each sound.

Since the stream is in MP3 format, only Firefox 21+ supports it. Otherwise the app should work on modern browsers. The whole app is written in Javascript.

I have some ideas how to develop the app further: - Now the sounds are between 3 and 6 seconds long. User could choose the timeframe. User could even choose some more specific filters so the app would allow searching for one minute long punk songs, for example. - I left basic controls out intentionally to have a very clean UI and simple user experience. Volume control could be useful.