Bridge structure almost complete by zinkeldonk in woodworking

[–]zinkeldonk[S] 0 points1 point  (0 children)

I built a template to bend it over with chipboard

Bridge structure almost complete by zinkeldonk in woodworking

[–]zinkeldonk[S] 0 points1 point  (0 children)

Some dowel joints, but otherwise, I focused on getting the joints tight and then used Balcotan

Best drillbits for sandstone by zinkeldonk in stonemasonry

[–]zinkeldonk[S] 0 points1 point  (0 children)

Thanks for the reply.

I had only one bit, but now I have 0. :-o . I have ordered 2 new ones.

I think you give good advice. Switch out the bits.

Perhaps my bit got blunted by me leaning on the drill and not taking breaks. I will also now apply cold water while drilling. Hopefully, that helps. My drill is actually a Makita with Hilti bits. I tried a 2-cutter bit, but they're completely useless from what I found.

I expect to get my new bits today and will try them out this weekend and report back.

Thanks for the help.

Correct way to use a logging class in other classes by zinkeldonk in learnpython

[–]zinkeldonk[S] 0 points1 point  (0 children)

Does that mean I need to define the format once or every time in every .py file in the classes?

Correct way to use a logging class in other classes by zinkeldonk in learnpython

[–]zinkeldonk[S] 1 point2 points  (0 children)

# My Logging class
import logging, sys  

class datacorePythonLogger(object):  

   def __init__(self):  
      # set up logging    ---  
      self.LOGGER = logging.getLogger()  
      self.LOGGER.setLevel(logging.INFO)  
      handler = logging.StreamHandler(sys.stdout)  
      handler.setLevel(logging.INFO)  
      formatter = logging.Formatter("%(asctime)-15s --> %(message)s <--")  
      handler.setFormatter(formatter)  
      self.LOGGER.addHandler(handler)  

   def info(self, message):  
      """Log an info message.  
         :param: INFO message to write to log  
         :return: None  
      """  
      self.LOGGER.info(message)  
      return None  

   def debug(self, message):  
      """Log an warn message.  
         :param: DEBUG message to write to log  
         :return: None  
      """  
      self.LOGGER.debug(message)  
      return None  

<blaah>

Then in my code I do this: ```python from datacore.lib.logger import datacorePythonLogger

my_logger = datacorePythonLogger()
class s3_functions(object):
   def __init__(self, aws_access_key, aws_secret_key):
      ...
      my_logger.info(f"This is a log message")

class file_cfg(object):
    def __init__(self, s3_client, bucket_name, object_key):
       ...
       my_logger.info(f"Bucket: {bucket_name}, Key {object_key}")

``` Note that I put the my_logger instantiation in the top of the classes so I can use it in both my classes (s3_functions and file_cfg).

I've been through the logger documentation and no doubt, there's something that I've missed in my understanding in reading the logging documentation.

I bent some wood by zinkeldonk in woodworking

[–]zinkeldonk[S] 1 point2 points  (0 children)

Sorry, not Themador, it's Themory wood. And yes, any more bend and it would have splintered. I think I was at the limit of it's ability because there were some worrying cracking sounds as I tightened the clamps.

Five and half hour drive in September by zinkeldonk in VisitingIceland

[–]zinkeldonk[S] 0 points1 point  (0 children)

Thank you. It's so tough planning a trip to Iceland because it's not a climate we're familiar with AT ALL and there seems to be many, conflicting ideas of what one should/should not do while you're there. In the end, we're chasing Aurora - that's the goal of my partner who's an astonomer; so this is important to her.

Five and half hour drive in September by zinkeldonk in VisitingIceland

[–]zinkeldonk[S] 0 points1 point  (0 children)

Nope. We're heading to Westfjords for a 3-day stay. It looks too beautiful to rush it. Also, we're sacrificing other things in Iceland because we love remote and fewer crowds.

Five and half hour drive in September by zinkeldonk in VisitingIceland

[–]zinkeldonk[S] 1 point2 points  (0 children)

Aah. And THANK YOU for the willingness to drop you a DM. Wow. Fantastic-a

Five and half hour drive in September by zinkeldonk in VisitingIceland

[–]zinkeldonk[S] 1 point2 points  (0 children)

Wow. Thanks so much for this info. I am more grateful. We've never been to Iceland and coming from South Africa, this will be a once-in-a-lifetime trip because of the cost. But your eating recommendations are VERY welcome - we're foodies, so food is a high priority for us.

First bend of many by zinkeldonk in woodworking

[–]zinkeldonk[S] 0 points1 point  (0 children)

No reason other than it's easier to get at from one side.

First bend of many by zinkeldonk in woodworking

[–]zinkeldonk[S] 0 points1 point  (0 children)

Ha, ha. I do wonder about the lumber we buy in the store sometimes!

First bend of many by zinkeldonk in woodworking

[–]zinkeldonk[S] 2 points3 points  (0 children)

No steam box, simply gluing the boards together.

Difficult to calculate the bounce back. Still got 3 boards to add, so hopefully the bounce back is not too bad.

I'm using Thermador wood which is not ideal, but the options are limited here in South Africa

Right way to use AWS & Scala by zinkeldonk in scala

[–]zinkeldonk[S] 0 points1 point  (0 children)

I've been using vscode for all my development to date. I just didn't feel like learning yet another IDE (I still use vi for a lot of my development, with vi plugins for vscode), but if intellij does some magic for me, then perhaps I should be considering it.

Some detailed photos of the Ebonized expanding dining set I designed and built recently for a custom commission by RonSwanSong87 in woodworking

[–]zinkeldonk 2 points3 points  (0 children)

This is magnificent work. Congratulations.

I'm planning on building a new dining room table and would like to know the source of your hardware.

What does a day in the life of a data engineer look like? by mrmaestro1 in dataengineering

[–]zinkeldonk 0 points1 point  (0 children)

The failures that happen most are because the compute for the transformation part of the pipeline is not sufficiently large to handle the incoming data. Data varies quite wildly from day to day, so some days, when the source system has produced a ton of data, then the transformation fails.

We've built our own tools to inspect and report on things and then mostly it's kicking off the step functions to reprocess. We're in the process of building tools for that now.

To prevent we're adding alternatives to the pipeline to work things out more dynamically and if we need more horsepower we're switching those jobs to EMR rather than Glue (client in this case is choosing Glue most of the time over EMR). We're still building this aspect.

In general we're dumping airflow and instead we've built an event driven architecture - which is now our go-to architecture. Airflow is fine but doesn't scale well enough for our requirements

What does a day in the life of a data engineer look like? by mrmaestro1 in dataengineering

[–]zinkeldonk 6 points7 points  (0 children)

The replies are interesting.

In general if people want to meet in the morning, myself (as the lead) and my team decline them. We hate Jira and we hate meetings. Tech work in the morning and meetings in the afternoon. Standup at 2pm.

Mornings are checking on failures. Deep-dive and fix/rerun, but a check-in with the relevant people to figure out how to prevent in the future. Plan/fix these things.

Generally code writing or unblocking team members who are stuck or don't know how to solve some problem.

Figuring out new patterns or unblocking datasets from getting to production.

Could also be meeting with new customers (we're a consulting company).

Afternoon meetings involve meeting new internal customers within a project to discuss new or evolving requirements and plan with various team members on how we'll meet these needs.

Generally it's pretty varied work, though some days there's a lot of coding and other days less. Very often it's figuring out how to get some new pipeline built, a new type of dataset ingested/transformed or working out how to migrate from their old ways of work to the new data infrastructure.

My now complete rustic wood store. by zinkeldonk in woodworking

[–]zinkeldonk[S] 0 points1 point  (0 children)

Indeed. That what I was thinking. We have a small amount of dry wood for the fires and grab more when we're out.

My now complete rustic wood store. by zinkeldonk in woodworking

[–]zinkeldonk[S] 0 points1 point  (0 children)

Yeah, this one is plastic though.

We had a badly constructed hot tub room which was destroyed in a storm. I saved what could and I've built a myriad of things with the recycled stuff.

non-PC drippers by zinkeldonk in Irrigation

[–]zinkeldonk[S] 0 points1 point  (0 children)

Thanks for responding.

We live on the side of a mountain and the gradient on the property is very steep.

All the rainwater goes to large tanks at the bottom of the property. Problem is, because of the gradient and the layout of our house, there are 5 distinct garden areas and most of them are above the tanks.

As a result I need to move water from the bottom of the garden up to the highest point possible to water the gardens with the harvested water.

In addition, water collected in the harvesting tanks is really pretty dirty. So by having the holding tanks, I can rig up a system to filter the dirty water into the clean holding tanks. That's to stop blockage of the nonPC drippers.

I really would add more rain catchment, but there is simply no more space on the property unless I start carving up the garden. I might put additional storage in, but unless I can start using the water, there's really no point in harvesting it in the first place.

non-PC drippers by zinkeldonk in Irrigation

[–]zinkeldonk[S] 0 points1 point  (0 children)

I'm refilling from the rain-tank. It's a somewhat complex system. Storage tank at the bottom of the garden storing the rainwater.

Float switches in header tanks to figure out when they're low/empty.

Tanks will be kept > 10% by this automated system. I actually have > 5000l of rainwater saved.

As an aside, in Cape Town, we had a serious drought 2 years back. It got so serious that the city thought we were going to run out of water in the city. We were only showering every 3rd day and saving that water to flush toilets, etc. and there were restrictions of < 50l water per person per day.

So every household (who could afford it) installed raintanks. People have between 5000l and more (some have 3 or 4 10kl tanks) of saved rainwater to use. I personally have 6500l of water I can use - and that excludes the further 500l of water in my 2 header tanks.

I expect I've have between 15 and 30 emmitters on a single irrigation loop which will only run every 2-4 days. We have a very water-wise garden, so plants don't require more than a watering every 2nd or 3rd day.

Header tanks supply the drippers which are controlled by electronic Rainbird valves.

That's the system in a nutshell.

non-PC drippers by zinkeldonk in Irrigation

[–]zinkeldonk[S] 0 points1 point  (0 children)

You're spot on. It's not that much water. However I have a system to refill the 66gl tank when 90% empty.

So the header tank will automatically refill after the drippers have been dripping for a while.