• 18 Posts
  • 112 Comments
Joined 3 years ago
cake
Cake day: July 30th, 2023

help-circle






  • Ahmadi was shocked by the number being killed – more than 40 in his small town alone – but with the internet blacked out, no one knew what the national picture was. To piece it together, Ahmadi assembled a network of more than 80 medical professionals across 12 of Iran’s 31 provinces to share observations and data, and to build a clearer picture of the violence

    Their observations, shared with the Guardian and combined with accounts from morgues and graveyards across the country, begin to reveal the vast scale of violence inflicted on Iranians during the state’s crackdown. Ahmadi and his colleagues are hesitant to provide a figure for the toll but agree “all publicly cited death tolls represent a severe underestimation”. Comparing the number of dead they witnessed with hospital baselines, they estimate it could exceed 30,000, far surpassing official figures. This is based on the conclusion that “officially registered deaths related to the crackdown likely represent less than 10% of the real number of fatalities”.

    Estimates of the number killed vary substantially, hampered by the ongoing internet shutdown. The Iranian government has acknowledged more than 3,000 dead, and the US-based organisation HRANA (Human Rights Activists News Agency), whose figures have been reliable during previous crackdowns, says it has verified more than 6,000 dead and has more than 17,000 more recorded deaths under investigation, giving a possible total of about 22,000. Other estimates from doctors based outside Iran range up to 33,000 or more.

    The language Ahmadi uses is measured and clinical, but he is brought to tears describing the violence the doctors documented. “From a medical standpoint, the injuries we observed demonstrate a brutality without limit – both in scale and in method,” he says. Another doctor, who is based in Tehran, tells the Guardian: “I am on the verge of a psychological collapse. They’ve mass murdered people. No one can imagine … I saw just blood, blood and blood.”








  • You mean: https://www.twz.com/sea/executive-order-to-go-back-to-steam-catapults-on-new-aircraft-carriers-coming-trump

    President Donald Trump says he plans to sign an executive order that would compel the U.S. Navy to use steam-powered catapults and hydraulic elevators on new aircraft carriers. Trump has railed against the Electromagnetic Aircraft Launch System (EMALS) catapults and Advanced Weapons Elevators (AWE) on the USS Gerald R. Ford, the Navy’s newest supercarrier, for years now. Ford‘s catapults and elevators have faced reliability and maintenance issues, but swapping out these features, even just for future ships in the class, would involve an extremely costly and time-consuming redesign that would further delay new carriers entering service.

    Trump announced his intention to issue an executive order regarding carrier catapults and weapons elevators during often free-wheeling remarks to servicemembers aboard the Nimitz class carrier USS George Washington earlier today. The George Washington is currently in port in Yokosuka, Japan, where it is forward deployed. The President is in Japan as part of a larger tour of Asia.



  • Jurors showed no appetite for the Justice Department’s case against “sandwich guy,” the D.C. resident who chucked a Subway sandwich at the chest of a federal officer, finding him not guilty Thursday after several hours of deliberations.

    The jury — which feasted on sandwiches for lunch Thursday, according to a person familiar with jury lunches — deliberated the charges for several hours Wednesday and Thursday before delivering the verdict.

    Someone is feeling cute. And rightful so. When you lie about a sandwich exploding on you, and it can still be seen in the package after… Not to mention trying to take a hamfisted hogie slap to federal court, you deserve the pickling.






  • A dishwasher has two major cycles that are relevant to dish soap. One is the I’ll show about 15 minutes. And the there is the main wash, which is like an hour plus depending. If you don’t use powdered dish soap and split it up then you’re missing the advantage of the prewash.

    Second half is focused on the effect of heat and why you should drain your water line of cold water through your faucet before you start your dishwasher. By doing that, you increase the heat and you increase the longevity of that heat on is that are in your dishwasher. It’s worth noting that heat is good for dishwashing liquid both because it helps the enzyme break down and also probably breaks down with the food material at some cases.

    Beyond that, he was very enthusiastic about his new soap, which he helped create, and rightfully so. Double blind test, it came out very well against premium pods, and he was able to prove his whole point about pods not being useful in a prewash.



  • Try this Python script:

    from PIL import Image, ImageDraw, ImageFont
    import os
    from pathlib import Path
    
    def watermark_from_filename(input_dir, output_dir=None, 
                               position='bottom-right', 
                               font_size=36,
                               color='white',
                               opacity=200):
        """
        Add watermark to images using their filename (without extension)
        
        Args:
            input_dir: Directory containing images
            output_dir: Output directory (if None, creates 'watermarked' subfolder)
            position: 'bottom-right', 'bottom-left', 'top-right', 'top-left', 'center'
            font_size: Size of the watermark text
            color: Color of the text ('white', 'black', or RGB tuple)
            opacity: Transparency (0-255, 255 is fully opaque)
        """
        
        # Setup directories
        input_path = Path(input_dir)
        if output_dir is None:
            output_path = input_path / 'watermarked'
        else:
            output_path = Path(output_dir)
        
        output_path.mkdir(exist_ok=True)
        
        # Supported image formats
        supported_formats = {'.jpg', '.jpeg', '.png', '.tiff', '.bmp'}
        
        # Process each image
        for img_file in input_path.iterdir():
            if img_file.suffix.lower() not in supported_formats:
                continue
                
            print(f"Processing: {img_file.name}")
            
            # Open image
            img = Image.open(img_file)
            
            # Convert to RGBA if needed (for transparency support)
            if img.mode != 'RGBA':
                img = img.convert('RGBA')
            
            # Create transparent overlay
            txt_layer = Image.new('RGBA', img.size, (255, 255, 255, 0))
            draw = ImageDraw.Draw(txt_layer)
            
            # Get filename without extension
            watermark_text = img_file.stem
            
            # Try to load a nice font, fall back to default if not available
            try:
                font = ImageFont.truetype("arial.ttf", font_size)
            except:
                try:
                    font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", font_size)
                except:
                    font = ImageFont.load_default()
            
            # Get text size using textbbox
            bbox = draw.textbbox((0, 0), watermark_text, font=font)
            text_width = bbox[2] - bbox[0]
            text_height = bbox[3] - bbox[1]
            
            # Calculate position
            margin = 20
            if position == 'bottom-right':
                x = img.width - text_width - margin
                y = img.height - text_height - margin
            elif position == 'bottom-left':
                x = margin
                y = img.height - text_height - margin
            elif position == 'top-right':
                x = img.width - text_width - margin
                y = margin
            elif position == 'top-left':
                x = margin
                y = margin
            elif position == 'center':
                x = (img.width - text_width) // 2
                y = (img.height - text_height) // 2
            else:
                x = img.width - text_width - margin
                y = img.height - text_height - margin
            
            # Convert color name to RGB if needed
            if color == 'white':
                rgb_color = (255, 255, 255, opacity)
            elif color == 'black':
                rgb_color = (0, 0, 0, opacity)
            else:
                rgb_color = (*color, opacity) if isinstance(color, tuple) else (255, 255, 255, opacity)
            
            # Draw text
            draw.text((x, y), watermark_text, font=font, fill=rgb_color)
            
            # Composite the watermark onto the image
            watermarked = Image.alpha_composite(img, txt_layer)
            
            # Convert back to RGB for JPEG
            if img_file.suffix.lower() in {'.jpg', '.jpeg'}:
                watermarked = watermarked.convert('RGB')
            
            # Save
            output_file = output_path / img_file.name
            watermarked.save(output_file, quality=95)
            print(f"Saved: {output_file.name}")
        
        print(f"\nDone! Watermarked images saved to: {output_path}")
    
    # Example usage:
    if __name__ == "__main__":
        # Watermark all images in current directory
        watermark_from_filename(
            input_dir=".",
            position='bottom-right',
            font_size=48,
            color='white',
            opacity=200
        )
    

    To use this script:

    1. Install Pillow: pip install Pillow

    2. Save the script as watermark_dates.py

    3. Run it in your image directory:

      python watermark_dates.py
      

    Customization options:

    • position: Choose where the watermark appears
    • font_size: Adjust text size
    • color: ‘white’, ‘black’, or RGB tuple like (255, 0, 0) for red
    • opacity: 0-255 (lower = more transparent)


  • While the team working with Dogs of Chernobyl was investigating the blue dogs, they came upon an old portable toilet, or porta-potty.

    “We are suspecting that this substance was from an old portable toilet that was in the same location as the dogs; however, we were unable to positively confirm our suspicions,” says Betz.

    Thanks to the photos of the blue dogs that have a geotag, the team accurately pinpointed the location of the dogs in conjunction with the portable toilet.

    Many portable toilets contain a blue liquid that serves as a deodorizer, and they suggest the dogs may have rolled in it. However, until the team can catch and analyze one of the blue Chornobyl dogs, they won’t know for sure what caused the blue fur.



  • In a major breakthrough for the digital rights movement, the German government has refused to back the EU’s controversial Chat Control regulation yesterday after facing massive public pressure. The government did not take a position on the proposal. This blocks the required majority in the EU Council, derailing the plan to pass the surveillance law next week. Jens Spahn, Chairman of the conservative CDU/CSU parliamentary group in the Bundestag, said in a public statement: “We, the CDU/CSU parliamentary group in the Bundestag, are opposed to the unwarranted monitoring of chats. That would be like opening all letters as a precautionary measure to see if there is anything illegal in them. That is not acceptable, and we will not allow it.”



  • For this who need more then a headline.

    For the first time ever, the top two “ports” for U.S. merchandise trade are airports.

    This is particularly counterintuitive given that the nation’s top three trade partners largely rely on border crossings (Canada, Mexico) and seaports (China) and account for more than one-third of all U.S. trade.

    Through May, New York’s JFK International Airport and Chicago’s O’Hare International Airport ranked first and second for the value of their trade, according to my analysis of the latest U.S. Census Bureau data.