Latest Posts (10 found)
Maurycy 1 months ago

You already have a git server:

If you have a git repository on a server with ssh access, you can just clone it: You can then work on it locally and push your changes back to the origin server. By default, git won’t let you push to the branch that is currently checked out, but this is easy to change: This is a great way to sync code between multiple computers or to work on server-side files without laggy typing or manual copying. If you want to publish your code, just point your web server at the git repo: … although you will have to run this command server-side to make it cloneable: That’s a lot of work, so let’s set up a hook to do that automatically: Git hooks are just shell scripts, so they can do things like running a static site generator: This is how I’ve been doing this blog for a while now: It’s very nice to be able to type up posts locally (no network lag), and then push them to the server and have the rest handled automatically. It’s also backed up by default: If the server breaks, I’ve still got the copy on my laptop, and if my laptop breaks, I can download everything from the server. Git’s version tracking also prevents accidental deletions, and if something breaks, it’s easy to figure out what caused it.

0 views
Maurycy 1 months ago

Some hot rocks:

I recently went on a rock collecting trip, but apart from the usual — quartz, K feldspar crystals, garnet, etc — I found some slightly radioactive rocks: All of these were found using my prospecting scintillator , but I took measurements with a Radiacode 102 — a very common hobbyist detector — so that other people can compare readings. Despite being small, it is still a gamma scintillator, so the count rates are much higher then any G-M tube. None of these are crazy hot, but they were all collected off the surface: I didn’t bring any good digging equipment on the trip. (Really should have considering how my detector is able to pick up deeply buried specimens) The biggest hazard with my rocks is dropping them on your toes. Even if you were to grind them up and inhale the dust, the host rock is much more of a danger then the radioactivity. I’ve personally been in multiple residential and office buildings that are more radioactive then my specimens because of the stone that was used to construct them. Also, if you have any “Anti-Radiation” or “Bio Energy” or “Quantum Energy” wellness products: they are quite the opposite. (and many are spicier then my rocks.) … or how about some nice decorative glass ? It glows

0 views
Maurycy 1 months ago

Please don't give Reflect Orbital money:

There’s this company promising to generate solar power at night using space based mirrors to bounce sunlight down to solar farms. This is the single dumbest startup I’ve ever seen… and people are actually giving them money. “We could do solar power at night.” There stated plan is to produce a ground brightness roughly equivalent to the full moon, but that’s not nearly enough for anything. The full moon is around a million times dimmer then the sun — 0.3 lux compared to 1,000,000 lux 1 — so a solar farm that normally produces 5 megawatts (enough to power a small town) would produce only 5 watts: About enough for a small lightbulb or to run a single cell phone. A single AA battery can produce around 3 watts: your TV remote has access to more power then a million dollar solar farm with this Sunlight-as-a-Service. They would gain hundreds of times more from installing a single panel: … and that’s if you believe the marketing claims: Doing some basic math using the published parameters — a 10 by 10 meter reflector 625 km above the ground — the maximum possible brightness is one 288,000th 2 of the sun’s. But if you’ve ever seen reflective mylar, you will know it’s far from an optically perfect mirror: The actual spot size will be hundreds of times theoretical, so “full moon” brightness is quite the stretch. “… but once the satellite’s up there, we an use it forever.” No. The planned 625 km altitude is well within Low Earth orbit, and is not fully outside of the earth’s atmosphere. The proposed satellite will be lightweight and with a huge surface area: It’s a sail in 30,000 kilometer per hour winds 3 trying bring it crashing down to earth. Without continual refueling, it will deorbit in somewhere between a few weeks to few months. Predicting the exact time is hard without knowing more details, but it won’t take very long. “… but search and rescue and all that stuff.” A bigger problem is that Low Earth orbit is, well, low. If you don’t have sunlight, odds are, the satellite doesn’t either: They will be useless at night. “Assume a spherical cow in vacuum that isotropically emits…” Ok, let’s give the satellites thrusters with infinite fuel, portals so they have sunlight when behind the earth, and use thermodynamics violating million percent efficient solar panels. Even if everything magically works, it still wouldn’t be a good idea. You can’t turn a mirror off, and satellites travel over the surface at 8 kilometers per second. The inevitable result of this is random flashes of light all over the earth. These flashes would only be about as bright as the full moon, but because they come from a point source, they will be dangerous for the same reasons lasers are: A 5 watt light bulb is kinda dim, but a 5 watt laser is a retina destroying beast that can cause instant blindness if mishandled. If you happen to be looking in the same area of the sky, these satellite-flares-from-hell could damage your eyes. If observed though optical aids like binoculars or telescopes, they could blind for much the same reason a looking at a solar eclipse can. … and I don’t think I have to explain how big of a problem this would be for anyone (or any animal) trying to get a good night’s sleep. “…” Right now, the company is likely an outright scam: It’s making impossible promises and has an impossible plan. These are not “we don’t have the technology yet” problems, but it’s a “the earth isn’t transparent” problem. However, people throw enough money at them, they will try to do something, and it won’t end well. In either case: Do not give them any of your money, and don’t trust it to anyone who will. [1]: Yes, I know that 100,000 / 0.3 is just above 300 thousand, not a million. But this is not a calculation where a factor of 3 in either direction would change anything. This is the same reason you can safely ignore anyone talking about “percentage increases” in solar panel efficiency: It’s not a matter of a few percent, but that the idea won’t work by a factor of several hundred thousand. [2]: Per the conservation of etendue, the spot size produced by a perfect mirror is limited by the angular size of the light source: The rest is just some simple geometry: [3]: Satellites don’t stay up because they are too far to experience gravity: They stay up because they are moving so fast that they fall and miss the ground . The lower a satellite is, the less time it has before hitting the atmosphere, so the faster it has to move. In Low Earth orbit, the needed speed is around 8 kilometers per second, or 30,000 kilometers per hour.

0 views
Maurycy 2 months ago

Modifying a radiation meter for (radioactive) rock collecting:

The Ludlum Model 3 is quite a nice radiation meter, as long as you like analog displays and don’t mind it weighing one and a half kilograms: These can be found used for a reasonable price, are easy to fix, nearly indestructible, and have an adjustable HV power supply that will drive just about any Geiger tube or scintillation detector you can throw at it. Geiger tubes are mostly sensitive to alpha and beta particles: great for detecting surface contamination and measuring weakly active specimens but nearly useless for finding them: All it takes is a bit of dirt on top of the rock it and the counter will detect nothing. Scintillation counters are super super sensitive to gamma radiation, which punches right though dirt and rock. However, because of this, they pick up background of several hundred counts per second, making the audio clicks completely useless. Without audio, you have to constantly look at the meter face, guaranteeing that you trip on something. Using the meter for rock hounding is certainly possible, but it’s not fun. The most obvious solution is to divide down the clicks with a counter. While this is a huge improvement over the raw output, it’s not perfect: All the background radiation picked up by a scintillator makes weaker signals imperceptible. Would you notice if one click came a few milliseconds earlier then the last? I certainly can’t, but a computer has no problem: Source code: tone.c Prebuilt binary: tone.elf The microcontroller measures the current count rate, subtracts a background reading and converts the difference into an audible tone. On my meter, I got switch controlled power from the reset button and the event signal from pin 3 of the CD4093BE IC. Because the CD4093BE runs at a high voltage then the battery, I added a 22k resistor to protect the MCU. The Ludlum Model 3 has had multiple redesigns, your meter will probably be different: find an appropriate manual or poke around with an oscilloscope. Here’s what the circuit looks like wired into my meter: The microcontroller is wrapped in tape to avoid shorts, and fits in the gap between the board and case when the meter is closed. I made sure to keep wires away from the high voltage section: a stray arc could easily destroy the microcontroller. After taking the photo, I tapped the microcontroller to the board so it doesn’t get trapped under one of the transformers or other large parts. Here’s the circuit detecting some weakly active granite, that measures ~10% above background: (10 CPS on my detector, and around 0.5 CPS a Radiacode 102) This is a good demonstration of the squelch and background subtraction: A ten percent increase over background would normally be imperceptible. In the field, an increase like this can indicate a deeply buried specimen that would otherwise be missed. The same circuit should also work in other meters, but you’ll be on your own have to find needed signals: The circuit needs power, ground and a digital event signal. You might need to adjust some parameters in the code depending on your scintillator’s sensitivity. Because it relies on making fast and accurate measurements, I wouldn’t recommend it for small detectors like the Radiacode, Raysid, or Better Geiger: Anything with a background rate below 30 counts/second is unlikely to work well. If you want something cheap, look around for used scintillators: The 1.25*1.25*3 inch CsI(Tl) detector in the video cost me $60 delivered, and it’s got a crystal 76 times bigger then the Radiacode 102’s. When powered on, the meter will beep once, take a three second calibration measurement, and then beep a second time to indicate that it is ready to use. During operation, it takes a one second sliding-window average and outputs a tone depending on the measured count rate. The audio is turned off if the count rate is not significantly above the background measurement, which preserves power and makes hot spots easier to notice. If the sound activates, simply go towards the direction in which the pitch increases until you find the source. If … … No audio is produced: Try disconnecting the “Audio switch” line. If this fixes it, you wired it to the wrong side of the switch. Otherwise, check that the microcontroller has power, has been programmed, and that the speaker amplifier is wired correctly. … The meter beeps 10 times after calibration: No counts were detected during calibration. Make sure the probe is connected and working, and check the wiring. … The meter makes noise even with no radiation source: This happens if the meter is taken to an area with more background radiation then during calibration. Recallibrate the background by turning it off, and then on again. … The meter is beeping: This happens if the reading is below the callibrated background, usually because the meter was taken to a different area. Reset the background by turning it off, and then on again. … The meter randomly screams and pegs the needle: This is usually caused by a bad connection somewhere, most commonly in the cable.

0 views
Maurycy 2 months ago

No adblocker detected.

Internet ads are horrible: They waste your time, and the advertising industry makes the internet a worse place. Payouts are so small that the only way to survive is to turn your site into an ad filled hellhole with no real substance. If you want to support your favorite authors: send them money. A dollar helps more than viewing ads ever would. However, most people see advertising as a part of the internet experience, which is why I added this message to my site: It’s shown off to the side, and never covers content. It won’t be shown if there isn’t enough space. The close button actually works and it stays closed. The specific recommendation is important because a lot of people have only heard of adblockers from ads . Commercial adblockers range from sketchy to outright scams: If they are paying to be promoted, they must expect to make money from users. The page itself contains a div to hold the message and tries to load a script called “nativeads.js”: The script adds the actual message into the document: Finally, there’s a bit of CSS to make it look nice: The message won’t be visible if an adblocker removes the <div> element – which has a lot of ad-like class names – or blocks the network request for “nativeads.js”. The network request ensures that it doesn’t miss blockers like uBlock Origin Lite, which by default will only filter network requests, not page content. Unfortunately, I have no way to detect DNS based blocking short of loading an actual ad. Instead, I made the message unobtrusive and easy to close. The message won’t be shown in browsers that don’t support JavaScript, because those don’t need adblockers to begin with. It should be functional without CSS, but I can’t think of any browsers that support JS but not CSS. (but if you use external CSS, it’s quite common for the request to fail resulting in an unstyled page.) Thanks to Stefan Bohacek for the original idea. I’ve modified it to reduce false positives and explicitly scoped the cookie so the message is only shown once.

0 views
Maurycy 3 months ago

Spotting AI articles:

Fully LLM generated content is increasingly common on the internet. It’s not just random people copying from ChatGPT, there even companies offering fully automated AI-content-as-a-service: Just send them a list of URLs to copy and they’ll send you an “article shaped object”. To get a look at what the output looks like, I ran one of these tools on recent blog post of mine : Maurycy's blog explores the tactile, chemical, and optical pleasures of traditional photography alongside practical advice for contemporary makers. This post focuses on silver-based photographic methods, iron and cyanotype alternatives, and the craft of contact printing, finishing with a look at camera choices and user techniques that help transform an idea into a tangible print. Whether the reader is a newcomer curious about historical processes or a seasoned printer seeking a refresher, the aim is to present clear, engaging explanations that encourage experimentation and thoughtful practice. The tool reused my page’s title, which include the name of my site. This might seem like it would never happen in real life, but remember that are fully automated, churning out thousands of pages with no oversight. If you see a title like that anywhere except a blog by someone named “Maurycy”, it’s stolen. Interestingly, it manages to use almost a hundred words to say nothing. The only real content here is “The post is about silver and iron based photography methods, contact printing and cameras”. The rest is filler and a pointless sales pitch. Silver photography rests on light-sensitive silver halide crystals suspended in gelatin on paper or film. When exposed to light, these crystals form a latent image that becomes visible through chemical development. The technique covers a wide range of practices, from darkroom enlargements to alternative processes that still rely on silver chemistry. Working with silver requires attention to exposure, development timing, agitation, and fixing; each variable shapes the final print's tonal range, contrast, and archival stability. Darkroom practitioners often describe silver processes as a dialogue between intention and serendipity. Choices like developer formula, dilution, and temperature control act like conversational turns that influence highlight rendition and shadow detail. Moreover, paper selection — fiber-based versus resin-coated, warm-toned versus neutral — plays a decisive role in how silver gelatin prints render texture and depth. Mastery comes from experimenting with exposure tests and keeping detailed process notes. Both paragraphs are very general: They don’t talk about any specific film or paper, or how a particular photo was taken, but about photography in general. This isn’t universal, but is the default for most LLMs. Again, it’s mostly filler, like they took a one sentence overview and stretched it out. The second paragraph is entirely fluff: It lists a bunch of factors that could affect the end result, but has no practical advice. There are two primary ways silver is used in traditional photography: silver gelatin prints (paper) and silver halide-based film. In silver gelatin printing, paper coated with a silver halide emulsion is exposed either in contact with a negative or via an enlarger. Development converts the exposed silver halide to metallic silver, producing a visible image. Fixing removes unexposed silver halide to prevent further darkening, while stopping and washing steps stabilize the print. Each chemical bath and rinse contributes to archival permanence and aesthetic quality. Finally, something! Ok, it doesn’t tell us what the chemicals are, or how they work, or how to use them, but it does give us something to google… although it couldn’t stop itself from throwing in some fluff at the end. Ooo, an AI generated image. This isn’t universal, some plagiarism machines grab images from the original or elsewhere on the internet, but it is quite common. Apart from being fake, the image is just wrong. Photographic chemistry is almost always done in the dark and never in metal containers. That being said, factual errors are hard to spot unless you already know a lot about the topic. What’s not hard to notice is the weird placement. Considering that it’s not showing anything in particular, it would make much more sense to have it at the top of the section instead of in the middle — a place where I’d expect a technical diagram or photo of the result. Film photography follows a similar chemistry but inside a flexible film base. Negative films capture the inverse of the scene’s light values; those negatives can then be used for contact printing or enlargement. Sheet film, roll film, and various professional formats give different grain structures and tonal behaviors, making each format suitable for specific visual goals. Cross-processing and alternative developers offer creative deviations that yield unpredictable, often striking results. It would make sense to put the bit about the image being negative at the start of the section. It’s doesn’t only apply to film, and the whole processed is designed around it. … and again, there’s more useless fluff. There’s no mention of when you’d want to use different types or sizes of film, just that you might for some “specific goals”. Silver-based images are renowned for their tonal richness and longevity. Properly processed and fixed silver prints can survive for many decades without significant degradation, a reason museums and archives still value silver materials. The metallic silver particles that form the image provide a depth and three-dimensional quality unmatched by many purely digital or ink-based reproduction methods. Fine gradation between highlights and shadows makes silver prints especially compelling for black-and-white work. This is another AI generated image (look at the camera’s logo and the right edge of the film), which has nothing to do what was just talked about. It would make sense to show examples of negatives or prints: a drawing of a camera adds nothing to the article. The paragraph itself is flowery and just plain wrong: Let’s just say there a reason why chemical photography is left to hobbyists who enjoy the process more then the end result. Beyond archival qualities, silver processes offer tactile pleasures and a direct connection to craft. Darkroom practice encourages a slower, more mindful approach: mixing chemistry, timing development, making contact sheets, and choosing paper textures. This intentional pace often results in prints that carry subtle marks of the maker's hand — slight variations in toning, paper handling, or dodging and burning — which contribute to the work’s uniqueness and character. More fluff. In general, LLMs tend to spew praise: You’ll hardly ever see a fake article saying bad things, even though arguing is a favorite pastime on the internet. Iron processes like cyanotype and other ferric-based techniques present an accessible, low-toxicity alternative to silver. Cyanotype employs a light-sensitive mixture of ferric ammonium citrate and potassium ferricyanide which, after exposure to UV light, reduces to an insoluble blue pigment called Prussian blue. The simplicity of cyanotype chemistry makes it ideal for teaching, outdoor workshops, and creative applications such as printing on fabric, wood, or handmade paper. Despite its signature blue color, cyanotype invites plenty of experimentation through toning and layering. This is the single most specific paragraph of the article, naming two actual chemicals… bit then it goes on to more fluff and names two processes that are never mentioned again: Other iron-based methods include Van Dyke brown and kallitype, which use ferric chemistry combined with different development and toning steps to produce sepia or brown images with varied textures. Kallitype, in particular, can mimic silver prints closely if processed and toned correctly, offering a cost-effective route to warm, detailed prints. Each iron process has its own set of advantages — affordability, distinctive color palette, and relative simplicity — balanced against considerations of permanence and post-processing needs. Will these two different methods be described in any detail, or will see any example photos? Nope: At the heart of iron printing is a light-sensitive ferric compound that undergoes photoreduction to ferrous iron under UV exposure. This chemical change is what allows further reactions during development or when combined with metal salts, producing visible images. Key steps include coating a suitable substrate evenly, allowing it to dry in controlled conditions, exposing it to a UV source with a negative or contact object, and washing to remove unreacted chemicals. Proper washing is crucial to minimize residual reactivity and improve longevity. It starts by just restating the last section, almost as if it was intended to sand alone instead of being part of an article. The rest is just a list of “Key steps”, except it’s not the key steps, it’s a list of all the steps (but without any details). For an article on photography, it doesn’t have very many photos. Coating technique and environmental factors like humidity and temperature influence results significantly. Using a glass rod or brush to lay down an even, consistent coat is essential for smooth tonality and avoidable streaks. Additionally, filtration of sensitizer solutions and working under subdued light lessen contamination. Post-exposure treatments, such as toning with tea, tannic acid, or chemical toners, expand the tonal range and can increase resistance to fading when chosen wisely. Again, this has no specifics. How exactly do I tone a cyanotype print? and what does the result look like? and what chemicals should I use? Cyanotype stands out for its simplicity and immediacy. Its low toxicity and inexpensive materials make it accessible for educational settings and community arts programs. The characteristic cyan-blue image is instantly recognizable and can be manipulated through exposure time, negative density, and toning to produce a surprising variety of hues from pale turquoise to deep navy. Because it relies on ultraviolet light, cyanotype is particularly suited to sunlight exposures for contact prints or photograms, where objects are arranged directly atop the coated surface. Additionally, cyanotype adapts well to non-standard substrates. Fabric printing, paper collage, and mixed-media pieces benefit from the process's ability to adhere to textured or absorbent surfaces. This versatility encourages cross-disciplinary projects where photography blends with textile arts, bookmaking, and printmaking. Cyanotype also offers a forgiving learning curve: slight variations in technique often yield fascinating, serendipitous results rather than outright failure. Almost all of this was said before, and while this section is longer, it adds no further details: It’s a useless section that any human writer would delete outright. … or would unless they are trying to stuff in keywords for search engines, in which case it’s still garbage, just human generated garbage — written to maximize ad revenue instead of helping the reader. Contact printing is the most direct way to turn a negative into a print: the negative lies directly against the photosensitive surface and is exposed to light, producing a print the same size as the negative. This method preserves the negative's sharpness because no enlarger optics intervene, making it ideal for large-format photographers who value exquisite detail and tonality. Contact printing emphasizes discipline in negative preparation — contrast control, dust removal, and consistent exposure — since those factors translate directly into the print. The technique also fosters an appreciation for scale and composition. When the negative and print share dimensions, decisions about framing and cropping must be made at capture rather than in the enlargement stage. This encourages thoughtful camera use and more intentional image-making. For artists who enjoy the craft of making multiples, contact printing is efficient: once exposure time and development recipe are established, producing consistent editions becomes a matter of procedural repetition and careful material handling. More flowery gushing – even claiming some of the problems are advantages – padding out two sentences of substance into two paragraphs. In practice, contact printing requires a vacuum frame or weighted glass to ensure close contact between negative and paper, an accurately timed exposure, and a development process tailored to the chosen paper type. Fiber-based papers typically require longer washing and more delicate handling; resin-coated papers are quicker to process and dry faster but may not offer the same depth of tonality. The exposure source can be a calibrated LED unit, a sodium vapor enlarger bulb, or sunlight, each imparting different practical considerations around evenness and timing. Wait, isn’t this section the same as the last one? … the equipment it recommends is reasonable, but there are no actual procedures or examples. Negative format dictates the working process. Large-format sheet negatives yield exquisite detail and low apparent grain when contact printed, while medium format can produce excellent 2.25" x 2.25" or 6x6 contact prints prized for their immediacy. For those working with smaller negatives, digital enlargements onto transparencies allow the contact printing approach to be used with any digital image, bridging analog technique with digital capture when a traditional darkroom aesthetic is desired. Essential materials for contact printing include a set of graded negatives, photosensitive paper matched to the intended aesthetic, a vacuum contact frame or glass and weights, an accurate exposure light source, and the requisite chemical baths: developer, stop bath, fixer, and washing trays. Quality tongs, lint-free gloves, and a safe, organized workspace help maintain print cleanliness and personal safety. For fiber-based papers, a gentle print washer or a running water setup is beneficial to ensure thorough removal of residual chemicals. Apart from the factual errors, the whole second paragraph is repeating the “What is Contact Printing?” section, but still contains no actually useful information. Supplementary items like densitometers, step wedges, and safelight setups can streamline the workflow. A step wedge helps determine proper exposure and developer times, while a densitometer provides objective measurements of negative density to predict tonal outcomes more reliably. Additionally, a plan for drying and flattening — between blotters or in a print dryer — preserves print quality and prevents unwanted distortions or cockling, which is especially important with humid environments. Is this thing trying to sell me stuff? It’s just listing off a bunch of equipment with nothing about when and how to use it, or if you even need it in the first place. Cameras are tools for translating a three-dimensional scene into a two-dimensional image, and understanding their core functions — aperture, shutter speed, focus, and ISO — is essential regardless of whether the output will be silver prints, iron-based images, or digital files. Aperture controls depth of field and influences sharpness; shutter speed freezes or conveys motion; ISO determines the film or sensor's sensitivity to light. Balancing these variables allows control over exposure and the expressive qualities of a photograph. Yet again, there are no specifics. A real article would at describe the results of using the wrong settings and how to adjust them. A good one would have example photos. Compositional principles remain central to making compelling images. Elements such as leading lines, contrast, negative space, and subject placement help form a coherent visual statement. Attention to light — its direction, color, and quality — determines mood and texture. A camera does not replace observational skills; rather, it captures what the eye and mind have learned to see and prioritize. Mastery comes from consistent practice, purposeful study, and a willingness to analyze both successful and unsuccessful images. I get that describing composition is hard, but it could at least do more then listing a some things that affecting it. Here’s a real article with explanations and fantastic examples . Cameras come in many formats: large-format view cameras, medium-format systems, 35mm SLRs and rangefinders, compact point-and-shoots, and modern mirrorless digital models. Large-format cameras offer movements like tilt and shift for perspective control and produce sheet negatives ideal for contact printing. Medium-format cameras balance image quality and portability, delivering greater negative area and tonal nuance than typical 35mm formats. 35mm systems are versatile and historically significant, favored for documentary and street work due to their compactness and lens availability. Ok, but how much detail can expect from each size of film or sensor? There’s also no criticism here, nothing about what each camera is bad at. Both of these would be very important to know before buying one. Digital cameras have democratized high-quality capture but do not preclude the use of traditional printing techniques; many photographers shoot digitally and then produce analog silver prints from digital negatives or transparencies. Choice of camera depends on desired aesthetic, working conditions, and workflow preferences. Film continues to be cherished for its grain structure and tonal behavior, while digital excels at convenience, immediate feedback, and integration with modern production pipelines. More fluff. Effective camera use blends technical proficiency with intentional decision-making. Pre-visualizing the final print helps determine the appropriate aperture, shutter speed, and film or ISO choice at the moment of capture. Bracketing exposures — taking multiple frames at different exposure values — provides insurance against unpredictable lighting and offers material for selecting the most expressive negative. For landscape and still-life work, using a tripod and a cable release reduces vibration and improves sharpness, particularly important when creating contact prints that reward micro-detail. Finally, a thoughtful approach to maintenance and workflow pays dividends. Keeping lenses clean, checking light seals, and handling film with care prevent avoidable artifacts on negatives. Cataloging exposures and keeping process notes for development and printing ensures reproducibility and helps refine technique over time. Photography, at its best, combines disciplined process with creative curiosity, whether the goal is a silver gelatin masterpiece, a deep-blue cyanotype, or a hybrid work that bridges several traditions. [end of text] Wait, that’s it!? With all the talk on the importance of technique, I’d expect some descriptions of proper technique, or at least pictures of the result. … actually, there is very little large scale structure beyond a paragraph or two. Sections are thrown together no regard for the flow of the article, often repeating or omitting important information. The overall selection of topics is very weird becuase they were lifted from the original article , but are missing everything needed for it make sense: My article starts by describing two simple light sensitive reactions, using silver and iron (III) salts. It then shows how they can be used to record the shadows of objects and copy film/transparencies negatives, and ends with the construction of a simple camera to take photos with nothing but a lens, paper and bottles of chemicals. The LLM missed the whole DIY photography aspect, and the result is a jumble of topics instead of a cohesive article. In short, look for: If you see one or two of these, it could still be a human written work, but if you see most or all of them, it’s almost certainly fake. Text lacking any specific details. Real text will give examples, examples of what can go wrong, examples of results, etc. Articles that are repetitive and rambling. Real text will build on what was said previously instead of repeating it. … and where the whole thing will feel like an introduction and never really gets anywhere. Pointless flowery and very positive wording. A paragraph reads like a sentence that was stretched out using filler written by a PR team. Listing factors instead of effects. For example, it might list “aperture, focus, ISO…” instead of “Aperture, which controls how much light enters the camera…” Encyclopedic tone: There will be nothing about what the author did, what they like and don’t like… It’s like a Wikipedia article instead of a blog post. AI generated or irrelevant images.

0 views
Maurycy 3 months ago

Optimized cyanotypes:

As far as I’m aware, this is the most sensitive cyanotype formula on the internet, and is just about usable for in-camera photography (ISO 0.0001): The sensitizer solution must be protected from blue and UV light. The developer very slightly light sensitive, but realistically, it should be fine. The paper should be protected from stay light during the process. The developer solution can be reused multiple times: apply it liberally and collect the excess. My version is around 5 times as sensitive, and has well preserved highlights, allowing it to achieve compatible results in 1/20th the time of the classic formula: enough to turn what would be a 3 hour exposure into a 10 minute exposure. Using sunlight, a good exposure is between 100 kilolux seconds and 1000 kilolux seconds, and the effective ISO is around 0.0001. (The original method has an ISO of around 0.000005) It doesn’t get as dark as the classic formula , maxing out at the dark blue as shown in the image. This can actually an advantage for photography because it keeps the contrast manageable: The original formula tends to have very dark shadows, bright highlights and little in the way of midtones. The standard iron-ferricyanide/cyanotype formula has a number of problems: Because the pigment is formed during the exposure, it blocks light and slows down the reaction. The result is that it needs an exposure that’s much longer then it needs to be. A lot of pigment gets lost during washing. Even though they are insoluble, small particles can get suspended in water and carried away — resulting in missing highlights at best and the entire image disappearing at worst. Alkaline buffered paper just doesn’t work. The base effect the photochemistry itself, leading to a blotchy appearance and also bleaches the pigment over time. The final problem is that citrate really isn’t a good electron donor for photo-reduction. Of all the carboxillic acids, iron (III) oxalate is best at responding to light. The reaction is also pH sensitive, and works best in an acidic environment, something that isn’t present in the classic formula. [1] can be fixed by using a two step process, where the iron (III) salt is applied to paper, exposed and only then treated with ferricyanide. For [4], ferric ammonium oxalate is available, but it’s easier to just add oxalic acid to ferric ammonium citrate. The excess acid also takes care of the pH issue. As a bonus, the oxalic acid also takes care of [2] because it results in larger pigment crystals and [3] because it neutralizes any buffers that may be present. Iron (III) oxalate based formulas tend to leave a yellow stain composed of Iron (II) oxalate on the paper, which can be dissolved in citric acid. Doing this during development also allows the otherwise trapped iron to contribute to image formation. Slowest to fastest: I did not test Mike Ware’s “New Cyanotype”, because I don’t have ferric ammonium oxalate, and don’t want to play with dichromate. This test puts it between classic and two step. This is similar to Herschel’s original, but with a different ratio of citrate to ferricyanide. Probobly the most common contemporary mixture. Note: A concentrated solution should be prepared, which will form crystals of Ferric potassium oxalate. These need to be discarded, and then the remaining liquid is diluted before using. The sensitized paper is blue due to the lack of the intense yellow of ferricyanide and the presence of trace Prussian blue. Similar mixtures are commonly used in commercial blue printing. The main product is the reduced form, Prussian white, so the print must be oxidized with hydrogen peroxide before viewing. The main product is the reduced form, Prussian white, so the print must be oxidized with hydrogen peroxide before viewing. This formula produces a slightly fogged result. No frills, (and least sensitive) two-step process. Popularized by hands-on-pictures.com Acidified two-step process: more sensitive then the standard two-step. This is a usable alternative if you don’t have oxalic acid. Two step acidified with oxalic acid, which is quite strong, and the resulting oxalate ion is better then citrate at photoreduction. Current record holder in my testing. Spread the sensitizer on the paper. It doesn’t take much, just slightly wet the surface. I find spreading with a glass rod works better then brushing it on. Let the paper dry in a dark area. Expose the paper. Apply the developer solution. No finesse required: just pour it on. Wash the print with water for a minute or so to remove the unreacted chemicals. Even an invisible amount of residue can fog the image. The reaction is self limiting. Pigment washout. Limited paper compatibility. Classic [18% of max @ 25s in sun] Mike Ware’s “New Cyanotype” 2-Step classic “Cyanotype Rex” 2-Step: Ferric ammonium citrate + citric acid Blue sheet: Classic with ferr o cyanide 2-Step blue sheet: Ferr o cyanide developer. 2-Step: Ferric ammonium citrate + oxalic acid [18% of max @ 1s in sun]

0 views
Maurycy 3 months ago

Let's take a photo:

It’s been almost 200 years since the oldest surviving photograph was taken: This isn’t a description of reality, like a painting or a sculpture. This is a piece of reality caught in a trap and pinned up for viewing – even two centuries later. To take our own pictures, we’ll need a light sensitive material: I recommend using silver chloride or iron citrate because they are relatively forgiving and don’t require any super nasty chemicals. One catch is that a lot of nicer paper has a base added, which can interfere with the chemistry: If your paper says something about being “buffered” or “archival”, add some citric acid to the first solution or soak the paper in vinegar before using it. For the silver chloride process, brush some 10% (by weight) silver nitrate solution onto watercolor paper, let it dry, and apply 3% table salt solution: The two salts react to white colored silver chloride, but when exposed to light, the precipitate turns black due to the formation of finely powdered silver: To end the exposure, wash the paper in water followed by a 5% sodium thiosulfate solution to remove remaining silver chloride: I recommend doing a final wash with water to remove any residual chemicals. Everything between applying the table salt and thiosulfate should be done in a dimly lit environment to avoid unintended darkening. The sensitivity is quite low by photographic standards, so you don’t need a dark room, but having a dim room is a good idea. If washed to remove residual silver nitrate, and protected from light, the sensitized paper will stay usable for years. Just don’t let it directly touch any metals… and mark which side was treated, because the front and back look identical once dry. For the iron based process, paint a solution containing 5 parts ferric ammonium citrate and 2 parts potassium ferricyanide onto paper: When exposed to light, the citrate reduces the iron from +3 to +2 ions, which react with the ferricyanide to from Prussian blue: Because the Prussian blue is insoluble, the residual chemicals can be removed by washing the paper in water: When overexposed, some of the Prussian blue can be reduced, bleaching the color. In this case, the blue can be restored with dilute hydrogen peroxide or by waiting a few days for the air to do its thing. The ferric ammonium citrate must be protected from light, even while it’s still in the bottle. If kept in the dark, the chemicals should last for years, but the solutions can develop mold. The paper is highly variable, and can last anywhere from days to years depending on what’s in it. The easiest way to record an object is to place it directly on the sensitive paper and shine a light on it: For the light source, I recommend the sun (fastest), UV lamps or bright white lights (slowest). You can also print out inverted image onto transparency sheet and expose though it: (This also works with film negatives if you have any) Another option is to draw something onto clear glass or plastic, and use the paper to make copies. Doing this was actually quite popular before computers and it’s why so many old technical diagrams are blue. If you’ve played with a magnifying glass, you’ve probably seen a lens projecting an image – if not, you’re part of today’s lucky ten thousand : Hold a lens parallel to a piece of white paper, and adjust the distance until an image of what the lens is facing forms on the paper. I find this works the best when pointing the lens out a window on a sunny day. … so now we have a way to project an image of an object and a way to permanently record an image falling on paper: The key design parameter is the distance between the lens and photographic paper: if it’s wrong, everything will be out of focus. You’ll need to measure the a good distance for your lens, and leave some adjustability for focusing. Before taking a photo, go somewhere dark, load in a piece of treated paper, close the camera and cover the lens. When your ready to take a picture, just uncover the lens and wait. Once the exposure is done, cover the lens and take it somewhere dark to process the paper: You really need a lot of light for this to work. Direct sunlight or bright long wave UV illumination is best. Lenses with a longer focal length will produce a larger image, and can record more detail, but the light will be spread out. However, physically larger lenses will catch more light. Avoid lenses that are small and have a long focal length, because those will need very long exposures. For my lens, I used a 25mm Plössl telescope eyepiece, which is small, but has a correspondingly short focal length. Even so, I still had to leave the camera for 45 minutes in direct sunlight. On the bright side, I didn’t need a viewfinder because I could just look at the photographic paper to check on focus and framing. If your images have too much contrast, you can try pre-flashing, where the whole paper is exposed to a bit of light outside the camera. When done right, this gets the paper out of the flat region of the transfer function and prevents the darker areas of the image from being clipped.

0 views
Maurycy 3 months ago

Trap bots on your server:

Here’s the code for my infinite nonsense crawler trap: What follows is an explanation of how to set it up… First, you’ll want to find three long-ish sources of text, between 1000 and 50,000 words. I used ebooks from Project Guttenberg , but long blog posts or Wikipedia articles will also work. Save the text in files named “ ”, “ ” and “ ”. Remove any page numbers, headings, copyright notices and similar. If your texts are somewhat short (less then 3000 words), change the “ ” variable in process.py to 1. This results in less repetitive text, but for longer bodies of text, setting it to 2 produces more coherent results. With the text prepared, run the python script : You should now have 3 “ ” files full of framented text. First, configure your web server to forward all requests under an unused path to . Here’s what that looks like using NGINX: Next, open the C code and change “ ” to the chosen port number and “ ” to the path that your server is forwarding: With the configuration done, compile the garbage server: … and run it in the same directory as the “ ” files: It may take a few seconds to parse the files if they are particularly big. Once finished, you should be able to visit a URL under the configured path and get garbage: If you see a 5XX (500, 502…) error, make sure you set the right path and port number in your web server’s configuration. If the page loads but the links are broken, check the “ ” and recompile the code. If everything works, you’ll want the program to run in the background. With systemd on Linux, create a file called: … with the following content: (don’t forget to change the file paths) … and run these commands as root: If you run some other init system, you probobly know enough to figure it out youself. You don’t really need any bot detection: just linking to the garbage from your main website will do. Because each page links to five more garbage pages, the crawler’s queue will quickly fill up with an exponential amount of garbage until it has no time left to crawl your real site. If you don’t want your site to disappear from search results, exclude the garbage URLs in : If you want prevent bots from ever seeing any of your content, ai.robots.txt has nice lists of User-Agents. Just change the rules to rewrite or redirect instead of blocking. Here’s what that looks like NGINX: This will also ensure that AI chatbots and summarizers only ever get garbage… after all, the easiest thing to turn into garbage is garbage – See, we’re just helping! Just beware that there is a significant amount of scraper using residential IP and browser User-Agents, so I’d recommend hiding a link even if you filter by User-Agents. On my machine, generating a page takes anywhere from 50-200 thread micro-seconds and the server uses 100k to 5 MB of RAM depending on configuration. Unless you are using a very slow server, CPU load will be minimal even when hit with hundreds of requests per second. Each response weighs around 1 kB gzipped, so bandwidth shoundn’t be a problem. Just be careful if you’re behind any cloud service that bills by request. The python script breaks the source material into overlapping word pairs (if is 1) or tripplets (if is 2). Then, the server’s able to string the chunks together to produce plausable, if nonsensical text: A glass is not impossible to make the file and so deepen the original cut. Now heat a small spot on the glass, and a candle flame to a clear singing note. — . The source material is a book on glassblowing. Capitalization is normalized to lower case, periods are treated as a word (“END”), and commas kept as part of the word. To prevent the generator from running into dead ends, the source material is padded with periods. Word chunks are chosen deterministicly based on the requested path, so they output’s appear to be static files. Each line in the files stores the word pairs begining with a particular word. For example, “and the” “and a”, “and then”, “and therefore” are packed together like this: Once the generators picked a word, it will look up that word’s line and repear the process. When is set to two, instead of storing words, the files store hypenated word pairs, in reversed order: … is “the difficulty experienced”. The generation process is identical except that only the charaters before the hypen are appended to the ouput. The python script places more common groupings earlier in each line, which are picked more often by the pseudeo random number generator. process.py : Text preprocessor babble.c : Garbage server

0 views
Maurycy 3 months ago

You should feed the bots:

A week ago, I set up an infinite nonsense crawler trap – now it makes up 99% of my server’s traffic. What surprised me is that feeding scrapers garbage is the cheapest and easiest thing I could do. These aren’t the indexing bots of old, but scrapers collecting data to train LLMs. Unlike search engines, which need the websites they crawl to stay up, AI companies provide a replacement. It should come as no surprise that these bots are aggressive and relentless : They ignore robots.txt, and if block them by user agent they just pretend to be a browser. If you ban their IP, they switch addresses. … all while sending multiple requests per second, all day, every day. So what if we let them access the site? Serving static files is is relatively cheap, but not free. SSD access times are in the tens milliseconds, and that’s before you pay the filesystem tax. Bots also like to grab old and obscure pages, ones that are unlikely to be in cache. As a result, it doesn’t take all that many requests to bog down the server. Then there’s the matter of bandwidth: Many blog posts also include images weighing hundreds to thousands of kB, which can add up quite quickly . With an average file size of 100 kB, 4 requests per second adds up to a terabyte each month – not a huge amount of data, but more then I’m willing to throw away. Simply making a list of IPs and blocking them would for normal bots… … but these are hardly normal bots. Because they are backed by billion dollar companies, they don’t just have a few addresses, but many thousands. If you managed to ban all of their addresses, they’ll just buy more. Rate limits fail for the same reason: They just switch IPs. I’ve even seen them using new IP for each request. Ok, what about a pay-wall, login-wall, CAPTCHA-wall, or a hash based proof-of-work ? All of these inconvenience users. Requiring an account guaranties that no one will read what I wrote. Even just a simple JavaScript challenge will block anyone who’s browser doesn’t support JS … and when it works, anything that must load before the does content still hugely slows down page loads . “Serve them few gzip bombs, that’ll teach them” — Half the internet . Gzip only provides a compression ratio of a little over 1000: If I want a file that expands to 100 GB, I’ve got to serve a 100 MB asset. Worse, when I tried it, the bots just shrugged it off, with some even coming back for more. Ok, what if we just send them 404s – try and make them think my site doesn’t exist. These tricks only work if your adversary has a mind to trick. If a link is posted somewhere, the bots will know it exists, and if they can’t access it, they’ll just become more aggressive:. sending more requests, with more user agents and using more addresses. Keeping them happy keeps them tolerable. But surely sending them dynamically generated content would be expensive right? Well… no. CPU and RAM are the fastest parts of a modern computer. Dynamic content has the reputation of being slow because it often involves a database (lots of disk IO), a million lines of JavaScript, or both. My lightly optimized Markov babbler consumes around ~60 CPU microseconds per request. There’s no disk IO, and the memory cost is only around 1.2 MB. There’s also no rules or blacklists to maintain: the bots come to it and it consumes them.

0 views