Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo) | Probably Dance

Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo) | Probably Dance

All of my hash tables now use Fibonacci hashing by default. For my flat_hash_map the property of breaking up sequential numbers is particularly important because I have had real problems caused by sequential numbers. For the others it’s just a faster default. It might almost make the option to use the power of two integer modulo unnecessary.

Vanhoja ideoita kannattaa kokeilla uudelleen. Niiden seasta löytyy välillä helmiä, jotka ratkaisee sekä vanhoja että tuoreita ongelmia.

The Door Problem of Combat Design - Andrew Yoder

The Door Problem of Combat Design - Andrew Yoder

As a designer, I want my players to interact with the deeper game of map control. I want to offer prioritization choices and opportunities to form plans and tactics instead of reducing gameplay to a shooting gallery.

I hope this article will help you identify door problems in your own work. And I hope some of the techniques I outlined will prove useful in overcoming those problems.

Tiivis introartikkeli kenttäsuunnitteluun liittyviin ongelmiin ja niiden ratkaisuihin.

The Animal is tired - Robin Hobb

The Animal is tired - Robin Hobb

I reflect, sheepishly, that it is the only animal I have ever treated this way. Would I have fed a beloved dog stimulants to keep it working when it needed sleep? Never. Would I have dosed a cat with a mild poisoning of alcohol to relax it among strangers? Of course not.

But this one animal received no mercy from me. And I regret that now.

And so we enter our 70th year together. Me, and the animal I live inside.

Muista pitää huolta kaikista eläimistä.

Behavior Trees in Robotics and AI: An Introduction - Michele Colledanchise, Petter Ögren

Behavior Trees in Robotics and AI: An Introduction - Michele Colledanchise, Petter Ögren

A Behavior Tree (BT) is a way to structure the switching between different tasks in an autonomous agent, such as a robot or a virtual entity in a computer game. BTs are a very efficient way of creating complex systems that are both modular and reactive. These properties are crucial in many applications, which has led to the spread of BT from computer game programming to many branches of AI and Robotics. In this book, we…

Linkin takaa ladattavissa hyvä intro-PDF “behavior tree”/käyttäytymispuu -nimiseen tekoälytekniikkaan, jolla itsenäisesti toimivia järjestelmiä saadaan toimimaan perinteisiä tilakoneita ja päätöksentekopuita joustavammalla tavalla. Tekniikkaa käytetään nykyään paljon peleissä ja on alkanut tulla käyttöön myös muilla aloilla.

Omassa korttipelissä mietin tämän tekniikan käyttöä korttien monimutkaisten efektien ja niihin tarvittavien käyttäjän tekemien valintojen toteuttamiseen. En varmaan tee tätä vielä ensimmäiseen versioon.

Dataprojektien ‘saat mitä tilaat’ -ongelma - emblica

Dataprojektien “saat mitä tilaat” -ongelma - emblica

Saat mitä tilaat -ongelmaan onkin siis yksinkertainen ratkaisu: jos projekti ei tuota haluttua lopputulosta, muuta tilaustasi. Esimerkissämme oli kyse asiakasvaihtuman minimoimisesta, mutta johtuen menetelmien luonteesta (…) sama ongelma toistuu jossain muodossa lähes kaikissa algoritmisissa ratkaisuissa. Siksi on tärkeää tunnistaa hätiköidystä ongelman määrittelystä aiheutuva riski ja yrittää kiertää se.

Hyvä esimerkkitapauksen käsittely, jossa pureudutaan koneoppimis-/dataprojektien kysymyksenasetteluun.

Varsinkin asiakasvetoisten projektien ulkopuolisena toteuttajana pitää olla erityisen tarkkana ettei asiakas pääse vetämään projektia sivuraiteelle liian nopeasti tehdyllä määrittelyllä tai projektin suunnasta kiinni pitämisellä.

Surge Pricing, Artificial Intelligence, and Responsibility - Dominic Widdows

Surge Pricing, Artificial Intelligence, and Responsibility - Dominic Widdows

During Grab’s Jakarta bombing response, the automated pricing surge algorithm was just switched off — we knew that part would do harm. For those few hours, business-as-usual was no more, and it was mainly the finance, promotion, and driver operations leaders scrambling to improvise together.

Ajatuksia yritysten algoritmipohjaisten hinnoittelujärjestelmien käyttäytymisestä erilaisten ongelma- ja kriisitilanteiden aikana. Artikkeli herätti itsellä mietteitä toteutuspuolelle, miten saadaan järjestelmistä rakennettua niin modulaarisia, että artikkelissa mainittuja poikkeustiloja saataisiin käsiteltyä fiksummin.

Programming is hard - dorinlazar.ro

Programming is hard - dorinlazar.ro

What I’m saying should not discourage beginners. It should just prepare them for what’s ahead. So if you want to tell a beginner something like this: „when it comes to programming, some things are easy, and some things are hard. If you’re patient enough, in time, the hard things will be exciting, and the easy things will become harder”.

But don’t tell them that programming is easy. It’s not.

Pohdiskelua ohjelmoinnin “helppoudesta”, hankaluudesta ja “kaikkien pitää osata koodata” -ajattelun pakottamisesta.

No-code/low-code/Excel tuo uusia ihmisiä ohjelmoinnin ja koneoppimisen pariin lähivuosina. Asioita ei pidä kaunistella alalle tuleville, mutta ne pitää viestiä sopivalla positiivisuudella.

Why I’ve tracked every single piece of clothing I’ve worn for three years - Reaktor

Why I’ve tracked every single piece of clothing I’ve worn for three years - Reaktor

Find what you need AND love, then only buy that. Sounds easy. Yet building this discipline is hard. There is a difference between need and “need”, as there is a difference between love in the store, and love two weeks later.

Focus on use, not price. Use is about value. As with any value-cost tradeoff, it makes sense to look for value first, then work out what constraints the cost might bring. Remember that pricier clothes may actually be less expensive.

Kiinnostava tarina vaatteisiin ja niiden käyttöön liittyvien data keräämisestä, tilastojen laskennasta ja käytännöllisten päätelmien tekemisestä.

Haluaisin rakentaa alustan, jonka kautta tällaisten tilastojen kokaminen olisi helppoa.

Etäkurssin videotallenne: Piirilevyjen suunnittelu KiCAD-ohjelmalla

Pidin Vaasa Hacklabin alla etäkurssin piirilevyjen suunnittelusta KiCAD-ohjelmalla. Aihetta pitää opiskella lisää, että pystyn suunnitella jotain hyödyllistä testiprojektien lisäksi.

Livepuoli kurssista tuntui menevän oikein mukavasti, mutta editointivaiheessa hirvitti täytesanojen määrä ja epämääräiset ilmaisut. Lisäksi muutamia tiedostolistoja ja alt-tab -ikkunavaihtoja piti editoida piiloon. Streamista ja videon editoinnista tuli lista huomioita joilla hommaa saa helpotettua ja selkeytettyä seuraavilla kerroilla.

Alla video upotettuna:

No-Code and the Ikea Effect: How software lock-in evolved and made us never want to churn - capiche.com

No-Code and the Ikea Effect: How software lock-in evolved and made us never want to churn - capiche.com

We’ve made the software our own, customized it just enough for the Ikea effect to keep us hooked. We invented it here, or so it seems, and the traditional objections to using pre-made software or the arguments to upgrade to the next shiny thing melt away.

Pohdiskelua erilaisista tavoista saada sitoutettua asiakkaat palveluusi. Näistä järjestelmän osittainen rakentaminen itse näyttää olevan tehokkaimpia, koska se ei ole keinotekoinen vaan muodostuu asiakkaan oman paneutumisen ja välittämisen kautta.