Lamp Posts: correctly oriented instances on a 3D curve
You almost got it. You can do it by using an array + curve modifier, you just need to use the plane as an instancer.
Select the plane, add an array modifier and set the length to &quot;fit curve&quot;, and set your curve.
Add a curve modifier, set it to your curve again.
Make sure to parent the lamp post to your plane, then go to the plane's object properties and select &quot;Faces instancing&quot;. Here you go :

Note that this will not work well if you use a 3D curve.
How to tweak the workflow for a 3D curve :
Instead of using a simple plane for the array + curve combo, use an elongated plane in the Y axis.

Then after the Array and Curve modifiers, add a Weld modifier and tweak the distance until the vertices in the local X axis merge. You should now have a series of segments, with both vertices of each segment on the same XY plane. These segments follow the 2D curvature of the curve object.

Add a Screw modifier on the X axis, set the angle to 0°, the steps to 1 and the screw property to a small value.

Now enable instancing on faces.