HN user

gorkempacaci

171 karma
Posts0
Comments41
View on HN
No posts found.

Tacton Systems | Multiple roles | Hybrid, Stockholm

Full stack Java, JavaScript / TypeScript

We make a Configure-Price-Quote SaaS for complex product portfolios. For example, one customer is Tetra Pak, that sells machines that build packaging (milk, juice, etc). These machines are like a two-story building with many variations, every aspect has to be well-defined and validated before it's ordered.

In our solution products can be modeled in detail with constraints, and during a sale options are chosen and validated, often visualized parametrically, pricing is done, and a quote is prepared. All based on the well-defined model.

It's a 30-year old company that started as a research startup, grew organically, and has a stable customer base. After a recent acquisition it's aiming to grow, therefore many positions are open. I started working here just a year ago, but I can say the work environment is healthy and relaxed, lots of competent people and everyone I interacted with so far have been very nice and professional.

Senior Software Developer https://careers.tacton.com/jobs/5313129-senior-software-deve...

Technical Lead https://careers.tacton.com/jobs/5591471-development-lead

Technical Frontend Architect https://careers.tacton.com/jobs/5714212-technical-frontend-a...

Technical Enterprise Architect https://careers.tacton.com/jobs/5591490-technical-enterprise...

The generated programs are only technically Prolog programs. They use CLPFD, which makes these constraint programs. Prolog programs are quite a bit more tricky with termination issues. I wouldn’t have nitpicked if it wasn’t in the title.

Also, the experiment method has some flaws. Problems are hand-picked out of a random subset of the full set. Why not run the full set?

If I may nitpick, the call to children’s accept methods should be in the visitor, not the parent. Imagine you’re writing an XMLGeneratorVisiter. The visit method for the parent would print <parent>, call child accepts, and then print </parent>. If you do it the way it is done here you lose the control on when the children are visited.

Also, the point of the visitor pattern is not just pattern matching/polymorphism. Of course you could do it with polymorphism or conditionals or whatever. But the visitor pattern reduces coupling and increases cohesion. So you get a more maintainable, testable code base. Pattern matching with a candied switch doesn’t give you that.

Prolog was never good at the things they thought it would be at, like AI, which is better done by ML today, specifically often like you said, with NNs. But it turned out to be good for other things, and those use cases are still alive today, even though there are many competitors. Look at Tiobe index, Prolog's usage is constant just under 1 percent, and has been for decades. So it's good for something.

Indeed Prolog programs are also called databases sometimes. Some things Prolog can do over SQL:

- infinite data defined by recursive predicates

- flexible data structures (think JSON but better, called complex terms) and a way to query them (called unification algorithm)

- execution strategy fine-tuned for reasoning (called resolution algorithm). You can do this with SQL but you’d have to formalize things using set operations and it’d be very very slow.

On the other hand, SQL can query plain data very very fast.

Yes :) we make software that helps sell complex products (If your product has a million options and takes up a whole factory floor you can’t just have a series of dropdowns)

Prolog, and Constraint Programming especially are great to have in your toolbox. I’ve done research in the field for years, and my job in the industry today is writing Prolog. There are real issues with Prolog:

- no proper module nor package system in the modern sense.

- in large code bases extra-logical constructs (like cuts) are unavoidable and turn Prolog code into an untenable mess. SWI prolog has single-sided unification guards which tackle this to a degree.

- lack of static and strong types makes it harder to write robust code. At least some strong typing would have been nice. See Mercury as an example of this.

All being said, Prolog is amazing, has a place in the future of programming, and gives you a level-up understanding of programming when you get how the types in every OO program is a Prolog program itself.

I love the veiled threat in Page 4 about Journal of Logic Programming all editors abandoning Elsevier and starting a new journal (Theory and Practice of Logic Programming (TPLP)), noting the TPLP thrived after this and Elsevier's own restart having gone off the map. Especially with the balancing note at the end saying the cost per page of this new journal wasn't much cheaper.

I took one of those (Alva labs) multiple times for different companies. My “intelligence” (or whatever they call it) score was 7/10 first, then 8/10, and then 9/10 I think in the last one. Just got better each time I took it. And the results for the personality test kept changing dramatically for each take too. Total pseudoscience.

Not seaweed but in Turkey we still eat marsh samphire (Salicornia europaea), barilla plant (Salsola soda), and rock samphire (Crithmum). These grow in the tidal marshes on the sea. Very salty and delicious. It is not a rare thing either, in Izmir every other fish restaurant will serve these in season.

True baklava is not boring. The one you describe is boring because it has no finesse. I’ve had it in Greece, and I make it at home, it’s just a sugar fix. True baklava is an experience. Most baklava in Turkey is bad too. The one mentioned in the article is pretty good but the bests are the other ones in Gaziantep. Something about the combination of worlds best pistachios and grass fed clarified butter. It is sublime. Michelin star level shit. Worth flying to Gaziantep for. Too bad it’s the butt of the world. I order from here [0] when I’m in Turkey. I think it’s the brother or cousin of the guy mentioned in the article. They fly it out the day it’s made. I think they send to some European cities too. It loses its amazing smell after a couple days, though so tough luck for other parts of the world.

0:https://www.farukgulluoglu.com.tr/fistikli-midye-baklava-1-k...

Statistical approaches are good for telling us where to look, and then we still have the symbolic approaches to precisely construct the correct proofs. I do research on the symbolic part and the statistical approach has a lot to offer, like suggesting what bits are likely to be used in a given proof context. Then there is a whole lot of stuff with Neuro-symbolic “AI” where the search efficiency of ANNs are leveraged. But yeah, you can’t “smoke and mirrors” your way to generating a proof like you can with generating natural languages (GPTs) but it is not that far out I think.