When I first introduced Lancert , it answered a fairly specific question: Can publicly trusted TLS certificates be issued for services running on private networks, without exposing those services to the public Internet? Once that part became reliable, the interesting questions changed. Lancert already knew how to issue certificates, cache them and renew them automatically. Users remained…
BeeBuzz has been in private use for a while. The change now is that I’m starting to open the gates: approving users for hosted access and making the source code public under the GNU AGPLv3 . This is a practical release, not a broad product announcement. BeeBuzz is still small, still focused, and still shaped by the same constraint that started the project: send private push notifications to…
BeeBuzz E2E is shaped by a hard limit: 4KB. That’s the maximum size of a Web Push payload. You can’t encrypt a full notification and send it directly — it won’t fit. The architecture follows from that constraint. The starting constraint Encrypted content can’t travel inside the push payload. So it doesn’t. The encrypted content is stored as a separate attachment The…
I was working on BeeBuzz , a privacy-first push notification service I’m building in my spare time. BeeBuzz is a Progressive Web App — web-only by design, as I explained in the first devlog post . That choice keeps the surface area small and avoids the complexity of native apps. But it also means I depend on the browser for everything — including push notifications. Push notifications on the…
Building BeeBuzz, I kept coming back to one idea: design for the worst case, not the best one. Not because I expect things to go wrong — but because assuming they might forces better decisions. No server is perfect. Dependencies have bugs. People make mistakes. So instead of pretending everything is secure, I designed BeeBuzz to limit the damage if something does break. Keeping Scope Small BeeBuzz…
BeeBuzz is a small project that I’m building in my spare time. There’s no VC behind it, no growth roadmap, no team pushing features every week. It started from a very practical need. I use Home Assistant for my automations, and I needed a reliable way to send push notifications. The first step was obvious: look for existing open source solutions. I strongly believe in open source, and…
Cross compiling with Go is usually straighforward: set GOOS and GOARCH environement variables and then go build . Unfortunately for projects that uses CGO dependencies things can be harder. Depending on the target architecture it requires to install a C compiler like gcc, clang or x86_64-w64-mingw64-gcc and configure additional environment variables like CC along with the CGO_ENABLED=1 one. In…
To compile a PECL extension with phpize we usually do: $ cd extname $ phpize $ ./configure $ make # make install But this could not work if you have multiple PHP installations on your Ubuntu server (i.e. 5.6, 7.0, 7.1). To ensure the extension is installed only for a specific version you have to specify the correct version for the phpize and php-config binaries. Example for version 7.0 $ cd…
Today I’ve released a first version of easeljs-arctext , an EaselJS extension that allows drawing of text along arc path. See below for sample code. // javascript Sample code canvas = document . getElementById ( 'canvas' ); var stage = new Stage ( canvas ); //Draw the text 'Text Arc' with font '20pt Arial', color 'black' and radius 100 var text = new TextArc ( 'Text Arc' , '20pt Arial' ,…
Default LDAP installation on Ubuntu server allows anonymous binding and directory access. If you want avoid this behavior you may set the olcRequires to authc using the ldif format with the following command: $ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldap_disable_bind_anon.ldif where ldap_disable_bind_anon.ldif is: dn: cn = config changetype: modify add: olcDisallows olcDisallows: bind_anon dn:…
If you want to speed up Drupal Simpletest bootstrap a simple trick is to use the live database instead of the sandbox enviroment created by Simpletest. To do this simply override setUp and tearDown methods as reported below: <? php class SampleTest extends DrupalWebTestCase { function setUp () { $this -> setup = TRUE ; } function tearDown () { } //Your test here... Please note now you are using…
If you want to display a block in your template: <? php $block = block_load ( $module , $delta ); print render ( _block_gAet_renderable_array ( _block_render_blocks ( array ( $block ) ))); where: $module Name of the module that implements the block to load. $delta Unique ID of the block within the context of $module. Pass NULL to return an empty block object for $module. Reference links:…
Download the PHP source in according with your environment: $ php -v PHP 5.2.11 ( cli ) ( built: Dec 12 2009 13:19:08 ) Extract in a temporary folder $ cd ~ & amp ;& amp ; tar zxvf php-5.2.11.tar.gz & amp ;& amp ; cd php-5.2.11 Patch the ext/iconv/iconv.c file remove the lib on #define iconv libiconv so that the code reads like this: #ifdef HAVE_LIBICONV #define iconv iconv #endif Patch the…
I’ m happy to announce Ortro is also used in Telecom Italia now. An older version of Ortro (updated to the latest version right in these days) was already used in such departments of Telecom Italia as an experimental software for application monitoring. But in the last time I had a confirm Ortro is, as I like to define it, mainly a “ Framework ” helping you to solve the daily problems encountered…
If you need a static version of your dynamic web application maybe you may interested to configure Nginx as reverse proxy cache so it can cache also dynamic contents (pages with ? in the URI). Well, if this is your scenario, let’s go to configure Nginx. Requirements Nginx up, running and listening on port 80 A web server, like Apache, listening on port 8080 server { listen 80 ; server_name…
If you use both Pear and Zend framework you may want to extend the Zend_Auth adapters to use all the containers shipped with the Pear::Auth package. Let’s go to create the class implements the Zend_Auth_Adapter_Interface starting from the Zend_Auth_Adapter_Ldap class. My_Zend_Auth_Adapter_PearAuth <? php class My_Zend_Auth_Adapter_PearAuth implements Zend_Auth_Adapter_Interface { /** * The…
~ $ cat example.txt first line second line third line another line ~ $ sed -n '/second/{n;p;}' < example.txt third line ~ $ sed -n '/second/{n;p;n;p;}' < example.txt third line another line
On Linux or Unix systems perform recursively a command on items might contain white space, quote marks, or backslashes can be a problem when using find | xargs combination. To solve this you may use: find -type d -print0 | xargs -0 <command> find -type f -print0 | xargs -0 <command> For example to fix recursively permission: find -type d -print0 | xargs -0 chmod 755 find -type f -print0 | xargs -0…