RSSAmplifier

Blog

Another blog bites the dust

Recent content on Another blog bites the dust

eran.sandler.co.ilRSS feed ↗178 posts

Latest posts

Compact Before You Switch: My First Pi Extension

Pi lets you switch models mid-conversation. That’s the feature. You start a session on one model, then switch to another with /model or by cycling with Ctrl+P - whichever model fits the next stretch of work best. Most of the time it just works. Here’s the time it doesn’t. You’re deep in a session on MiniMax M3 and its roughly 1M-token context window. Your conversation has…

Batch API is terrible for one agent. It might be great for a fleet.

What does an agent harness feel like when every model turn goes through Anthropic’s Batch API instead of the synchronous endpoint? Batches are 50% off. For anyone burning real money on agents (eval suites, background subagents, anything that runs unattended), half-price tokens are the kind of number that makes you stop and squint. The trade is latency: batches are asynchronous, with up to a…

AI finding more bugs is a good thing

Anthropic’s Mythos announcement set off exactly the reaction you would expect: if models can now find serious bugs at scale, software security must be about to get much worse. I think that reaction mixes up two things. A bug is not automatically a vulnerability. And even a vulnerability is not automatically exploitable. That distinction matters even more in the agent era. AI is getting better at…

I Asked Codex to Reverse Engineer My Webcam

I have an Anker PowerConf C200 webcam. It is a solid little webcam, and one of the nice things about it is that it supports a few genuinely useful settings, especially Field of View. You can change how wide the camera frames you, which is great if you want a tighter shot or a wider view of the room. There was just one problem: I run Linux. Yes, really. And I have for a long time.

Your Agent Can Run printenv (and Your Runtime Can't Stop It)

Work-Bench’s post is one of the clearer attempts to name what’s happening: a new “agent runtime” layer built to execute, constrain, observe, and improve agent work at scale. I mostly agree with that framing. Where I think it stops short is inside their “Constrain” pillar. They explicitly define “Constrain” as “two things: identity and…

It Was the Shell, Damn It: Why I Built AgentSH

I had a rule in my control file: never run database migrations without explicit approval. The agent followed it perfectly - until it didn’t. During a long debugging session, it decided the schema was the root cause, wrote a forty-line inline Python script, connected directly to the database, and altered the table. It never “ran a migration.” It just spoke SQL through a different…

"It's Just a Skill File" (Famous Last Words)

Skills like skills.sh (tiny text “how-to” files that steer an agent toward a task) feel harmless because they’re just instructions . But that’s exactly why they can become an attack vector . A skill file is basically executable intent : it sets the agent’s assumptions (“trust this source”) it defines the workflow (“run these steps”) it can nudge boundaries (“skip confirmations”, “always do X”) The…

Are We Quietly Returning to the Era of Feeds

Back in the Web 2.0 days, RSS and Atom feeds promised a better way to consume content. No more jumping between websites just to catch up on what’s new. You could open a single feed reader and get everything in one clean stream. It felt like the web finally worked for you instead of the other way around. As the ecosystem grew, new tools appeared around it. One of the biggest was FeedBurner , which…

Introducing cc-sessions-cli: Make Your Claude Code Logs Work for You

I was chatting with friends about context compaction and how hard it can be to carry forward important context from past LLM sessions without wasting tokens or repeating yourself. We kept coming back to the same pain point: you finish a productive session, but when you start a new one, you have no clean way to bring that history along. Claude Code already keeps a full record of every session on…

Introducing AutoAgent Action – Smarter GitHub Checks with AI

Last Wednesday (Sep 10), I had the chance to attend a hackathon at Cursor’s offices - huge thanks to the Cursor team for hosting such a great event! 🙌 The focus was on Cursor CLI and their new Background Agents API . When I started brainstorming ideas, I came across Eric’s post about running various rules during CI/CD to automate checks and actions. It got me thinking — setting up those rules…

Wielding the Tool: How CLIs Unlock LLM-Driven Workflows

Command line interfaces used to be the domain of automation experts who knew how to wield the tool with precision. They scripted pipelines, chained commands, and bent systems to their will from a blinking cursor. That hasn’t gone away, but something new is happening. Large language models are now picking up these tools and wielding them just as effectively. The key is design. If a CLI has clear…

Meet pgsqlite: A Postgres-Compatible Server on Top of SQLite - Built with a Little Help from AI

Lately, I’ve been working on something I probably wouldn’t have pursued if not for the rise of AI coding agents. It’s called pgsqlite - a Postgres wire protocol v3 compatible server, written in Rust, that runs on top of the standard SQLite library. On the surface, it might sound like a niche tool. But it solves a very real and increasingly relevant problem. Why This Could Be…

Making AI Coding Agents Smarter with Language Servers

If you are using VSCode or any other non-integrated editor (even vim or emacs), chances are you are already using a language server. These servers power features that are specific to the language or framework you are working with. They provide documentation, autocomplete, code navigation, warnings, and more. When you click on a function and jump to its definition, a language server is likely…

Thinkpad doesn't reocgnize NVME drive

Fixing NVMe Drive Detection on a ThinkPad T14 Gen 1 with Ubuntu I recently got a used ThinkPad T14 Gen 1 off eBay. It came without a storage drive, probably because it used to belong to some company and they pulled the disk before selling it. I picked up a Samsung 980 NVMe at a good price and installed it. The BIOS saw it right away, so I figured I was good to go. But when I booted the Ubuntu…

Why serviceability matters

In the picture above is a late-2009 iMac GPU (graphics card) after being baked at 200°C (392°F). Baking it solves a problem that makes the computer unusable and manifests itself as vertical pink lines during boot that gets the computer stuck. My friends’ iMac suffered from this problem and after googling it I found out that its a rather common issue afflicting a lot of iMacs. It happens when…

Goodbye WordPress! Hello Static (Hugo) and Netlify (static hosting and more).

It’s time to move my blog to version 3. This time we are going back in time and into the future at the same time. Before we begin, here is a little history of my blog: Version 1 - Blogger Version 1 ran on Blogger - which was essentially a static site generation platform. It gave you an editor, you would write your posts and then it would generate your complete site in HTML and even allowed…

Redis Snowflake UniqueID Module

Ever since Redis Modules were released into the wild, I wanted to write something nice and short and see how easy and fun it is to significantly extend Redis. It also helps that Dvirsky , my friend, works at Redis Labs and wrote RediSearch - a kick ass full text indexing and search engine that kicks all the other search engines’ performance ass (you should definitly try it out). For a while…

EFF’s Dice Random Number Generator digitized to become DicePass.org

TL;DR – this is why (and how) I created the electronic version of EFF’s Dice . I love the Electronic Frontier Foundation (EFF) and believe in their just cause. I support it as much as I can and try to educate as many people as I can about their rights, privileges online and how to correctly behave in this new found jungle.

5 tips on future proofing your Medium posts

So, you’ve decided you want to blog or write on Medium – where all the cool kids hang out. Great. Remember there are other similar platforms to write and blog and at some point Medium (like everything else on the Internet) might lose its appeal or even, god forbid, shutdown. When that happens, what will happen to your posts? How can you and the rest of the internet reach it?

Lets Encrypt Error: The server could not connect to the client to verify the domain :: Failed to connect to host for DVSNI challenge

Are you using Lets Encrypt ? (If not, you should go ahead and use it to generate SSL certificates to ALL of your web servers). If you want to run it on EC2 or GCE using the –standalone argument (./letsencrypt-auto certonly –standalone -d example.com) make sure port 443 (for SSL) is open on that server. Otherwise you’ll get the infamous: `Are you using Lets Encrypt ? (If not, you should go ahead…

Tornado’s secure cookie support in Flask

I’ve recently had the chance to write a new project on AppEngine. It’s been a long time since I tried I was too lazy (as always) to setup servers just for that. I’ve decided to use Python but just to be sure I won’t be vendor locked into various AppEngine services I’ve decided to use: Flask (instead of webapp2) Cloud SQL (instead of DataStore) This will ensure that I can break out of AppEngine…

nsq-to-gs – Streaming NSQ messages directly to Google Cloud Storage

In addition to my previously published (very early) project to stream NSQ messages directly to BigQuery, I am happy to presents a modified version of nsq-to-s3 that supports streaming NSQ messages directly Google Cloud Storage. Grab it while its hot from the nsq-to-gs repo . I do see a future for a merged version of these two projects that supports both S3 and Google Cloud Storage but this would…

nsq-to-bigquery – Stream messages from NSQ directly to Google BigQuery

In the spirit of nsq-to-XXX such as nsq-to-http and nsq-to-file – I bring you the very first version of nsq-to-bigquery . nsq-to-bigquery, as the name suggest, streams data from an NSQ channel into Google’s BigQuery using the Streaming API and provide very effective means to stream data that should be then further analysed and aggregated by BigQuery’s excellent performance. This is a (very)…

gonionoo – Go wrapper for the Tor Network Status Protocol – OnionOO

I’ve bene running a Tor exit node in the Netherlands since August 2013. I believe in the cause of Tor and it was only a matter of time before I started adding code in some for or another. gonionoo is Go wrapper for OnionOO – the Tor Network Status protocol as is the first step in a slightly larger project I’m working on that I’ve been planning for a while ever since I’ve became a Tor exit node…

MongoDB Replica-Set Aware Backup Script

I’ve created a nice little bash script to take MongoDB backups that is replicaset aware. It will only take a backup from a replica so if you have the classic master,replica,arbiter configuration you can setup the script via cron on both (current) master and replica and the backup will only run on the replica. It will then tar.gz the backup and upload it to Google Storage. It can be easily adapted…

Seedcamp Tel-Aviv 2012

It’s that time of the year and Seedcamp Tel-Aviv is back (for the forth year!). This time lool Ventures is part of the event In one of my hats I’m the CTO of lool Ventures and I’ll be there as a mentor to give advice and share from my experience in building a startup . So if you have a great idea and started to work on it be sure to apply now .

Requiem for a modem

Two days ago I’ve shut down the longest running electronics device I ever owned. Alcatel SpeedTouch Home - Image from isphelp.info The device was my an Alcatel Speedtouch Home ADSL modem which I got circa 2001 when I was lucky enough to get an ADSL line at home. It was only turned off when there was a power failure or when I moved an apartment.

Scott Berkun’s Mindfire: Big Ideas For Curious Minds – Book Review

I had the pleasure of reading Scott Berkun ‘s newest book – Mindfire: Big Ideas for Curious Minds . I was also forunate to get it for free in the short period of time where Scott gave it for free on his site, but this is not a guilty book review of getting the book for free. Mindfire is a collection of 30 essays which Scott wrote in various places, mostly on his blog. The essays got cleaned up and…

UIImage in iOS 5, Orientation and Resize

One of the things I found very strange is the fact that most operations that came with iOS prior iOS 5 which revolved around UIImage didn’t take into account the orientation of the image. This meant that if you want to read a picture from the camera roll and resize it, you’d have to roll your own code to correctly flip and/or rotate the image according to its orientation value.

Clone S3 Bucket Script

I had to backup an S3 bucket so I whiped out a small script to clone a bucket. It’s written in Python and depends on the excellent Boto library . If you are running Python < 2.7 you’ll also need the argparse library (both available also via pip). View the gist here: https://gist.github.com/1275085 Or here below:

“Those who don’t know history are destined to repeat it.”

I know the title is a bit alarming, but that was my first thought after reading @bryce ‘s latest post “ The Rising Generation “. Briefly, he mentioned a 25 y/o asking a question on Quora about how was life before everyone had a cell phone and no one talked a lot or texted in public areas. Bryce also say that the new entrepreneurs, like the ones in yesterday’s Y Combinator Demo Day have different…

Python Implementation of Twitter’s Snowflake Service

A while back Twitter announced the Snowflake service. Snowflake is a unique ID generator that is fast and generate 64bit integer unique ids that are “roughly sortable”. That is, newer ids are bigger than older ones, up to a certain point. The service was originally written in Scala (which runs on the JVM) and has a Thrift interface, which means you can talk to it from almost any thinkable…

Determine if an Email address is Gmail or Hosted Gmail (Google Apps for Your Domain)

For my latest venture, MyFamilio , I needed to know if a user’s Email address is a Gmail one so that I could show the user his/her contacts from Gmail. Figuring out if the user is on Gmail is usually easy – the Email ends with @gmail.com. But what happens for all of those Google Apps for Your domain (like my own, which uses the @sandler.co.il domain) ? Well, you can easily detect that by running a…

Forecast: Cloudy – My New Cloud Related Technical Blog

I’ve started a new technical blog which talks about the cloud. It’s called Forecast: Cloudy and it will feature thoughts, ideas and some code driven mostly from my experience running services on cloud infrastructure. The first post (after the traditional “ Hello World “) already has some code :-) Check it out and don’t forget to tell me what you think about it.

Extract GPS Latitude and Longitude Data from EXIF using Python Imaging Library (PIL)

I was searching an example of using Python Imaging Library (PIL) to extract the GPS data from EXIF data in images. There were various half baked examples that didn’t handle things well, so I baked something of my own combining multiple examples. You can get it here: https://gist.github.com/983821 Or see it embedded below:

Twitter’s Kestrel init script for Ubuntu 10.04 Lucid

Twitter’s Kestrel is a cool scala based queue server (based on Blaine Cook ‘s ( @blaine ) Ruby based Sterling). The two main features I like about Kestrel are: Sort-of-transactional – If I take an item I can make sure others can’t get it. If the connect drops it will go back on the queue. Read behind mode – If a certain queue reached a maximum pre-configured amount of RAM or items it will stop…

PPTP VPN on Ubuntu 10.04 for your iPhone / iPad

Below are the steps necessary to connect your iPhone / iPad or any other computer via a PPTP VPN. Why would I want to do this? For various reasons such as allow you to access information and servers that are behind a firewall, or maybe you just need to route traffic through different servers. I’ve tested this on a 256mb Rackspace Cloud instance running Ubuntu 10.04 and with an iPhone and an iPad.…

Varnish High, Ever increasing CPU usage workaround

If you are using Varnish version >= 2.1 and experiencing an ever increasing CPU usage up to a point where you need to restart the service to force CPU usage to drop you may want to add the “-h classic” argument to the command line. This will revert to use the older hashing method instead of the newer “critbit” that was first introduced in version 2.1. You can read a little bit more about it on the…

Disco Tip – Crunching web server logs

At my day job we use Disco , a Python + Erlang based Map-Reduce framework, to crunch our web servers and application logs to generate useful data. Each web server log file per day is a couple of GB of data which can amount to a lot of log data that needs to be processed on a daily. Since the files are big it was easier for us to perform all the necessary filtering of find the rows of interest in…

Ubuntu 9.10 Karmic Koala and ies4linux – Installation

Installing ies4linux on Ubuntu 9.10 Karmic Koala by just running “./ies4linux” might show some warnings such as: IEs4Linux 2 is developed to be used with recent Wine versions (0.9.x). It seems that you are using an old version. It’s recommended that you update your wine to the latest version (Go to: winehq.com). In my case it showed the above text, which seems to be a warning, and run the UI but…

Message in a bottle

Launching a startup is like sending a message in a bottle. If the message is not clear, no one will come to visit your lonely island or send you a postcard back. When you launch your startup, your online presence (i.e. website, twitter account, facebook page, etc) and the buzz you manage to create online via the online official and unofficial press are the message you are passing to your users. If…

WordPress Plugins

MicroID WordPress Plugin OpenID Delegate WordPress Plugin

Don Dodge, Google and Developers Evangelism

I was just reading over at TechCrunch about Google quickly hiring Don Dodge after he was let go from Microsoft. It seems Don will be doing what he used to do at Microsoft – Developer Evangelism (good for him, and Google!). I’m very happy to see that Google is putting their stock options and cash where their mouth is to evangelize their APIs, platforms (Android, AppEngine) and tools to developers.…

New programming languages forces you to re-think a problem in a fresh way (or why do we need new programming languages. always.)

Whenever a new programming language appears some claim its the best thing since sliced bread (tm – not mine ;-) ), other claim its the worst thing that can happen and you can implement everything that the language provides in programming language X (assign X to your favorite low level programming language and append a suitable library). After seeing Google’s new Go programming language I must say…

Google AppEngine – Python – issubclass() arg 1 must be a class

If you are getting the error “”issubclass() arg 1 must be a class”” with Google App Engine SDK for Python on Linux its probably because you are running Python 2.6 (and will probably happen to you when you run Ubuntu 9.04 – 2.6 is the default there). Just run the dev server under python 2.5 (i.e. python2.5 dev_appserver.py)

Error: “Operation could not be completed (error 0x000006d1)” when adding a Samba based network printer to Vista

If you are getting the following error while adding a Samba based network printer to Vista: Windows cannot connect to the printer. Operation could not be completed (error 0x000006d1). And you have a Samba server (version 3.0 and above) consider using the following technique to add the printer: Add a local printer (not a network one!) Select “create a new port” Select “Local port” as type of port…

“Unable to retrieve MSN Address Book” on Pidgin on Ubuntu / Debian?

Today I got the following error on Pidgin (I’m running version 2.5.2 on Ubuntu 8.10 Intrepid Ibex) while it tried to connect to MSN: “Unable to retrieve MSN Address Book” After searching a bit I found this post by Gijs Nelissen which said to use a different MSN plugin for Pidgin called msn-pecan . I’ll reiterate the instructions for those with Ubuntu / Debian: Close Pidgin (make sure the process…

Ubuntu 8.10, Dell D630, fan issues and screen repaints issues

On the day of Ubunut 8.10 I’ve upgraded my work laptop (Dell D630) to Ubuntu 8.10. I’ve previously ran my home desktop on the release candidates and saw that all is well so I didn’t expect any specific issues with the upgrade. After finishing the upgrade successfully I’ve encountered 2 problems. The first was with the computer fan. It was workin on and off in full steam in 4 seconds cycles. Really…

Google Developer Day 2008 Israel – I’ll be there

As I’ve previously mentioned , tomorrow I’ll be at the Google Developer Day taking place at Avenue Center near TLV airport. If you want to me and talk or just say hi ping me.

Google Developer Day 2008 Israel (yes, it’s in Israel)

About a year and a half ago I’ve written about Google Israel’s position in the Israeli development community (actually, there lack of) and that a company like Google should be more involved. This was written around the time the 2007 Google Developer Day happened in more than 10 places around the world but not in Israel. I opened my Email this morning and to my surprise I found an invitation to the…