Services Blog Français

Django + Snowpack How To = djsnowpack

| by jpic | django webpack snowpack javascript python html css sass

Snowpack is the fastest and easiest way ever to benefit from npm and imports in frontend code without going full SPA.

What this does

MUCH faster frontend development !

Elected Productivity Booster OS Award 2020, Snowpack is a frontend builder with a startup time of 50ms, which typically can be 30s in a typical Webpack project.

Change your CSS or JS and your Django page will reload !

Changing a frontend file will typically not cause a Django view reload because Django doesn’t want to provide JS by default: djsnowpack provides a solution for that.

Read More

django-autocomplete-light 3.8.0 release

| by jpic | django-autocomplete-light python django

WARNING 3.8.0 did not contain the proper built JS, please use 3.8.1 that was just released.

Django-autocomplete-light 3.8.0 was released, and features all your contributions of the year, and tested with a pre-release for the last 3 months or so.

It promises to fix all your JS loading issues, but comes at the price of a small backward compatibility breaks affecting users with custom init functions. If unsure: you probably don’t have any and the upgrade should just work for you.

As you will see, this is a pretty big release, we’ll also briefly talk about the future of django-autocomplete-light in this post.

Read More

Why CRUDLFA+

| by jpic | python django crud iommi crudlfap best-practice framework

This post describes how I feel Django could be even more awesome to use out of the box !

1. Non admins ?

The problem is pretty obvious: Django admin provides barely anything that’s usable for non-admin, not even working base templates and sane default features such as searchable lists with some kind of row level security.

2. No templates ?

For your internet users, Django only generates basic HTML forms without even a default template that calls {{ form }} and {{ form.media }} and {% csrf_token %}.

Read More

cli2: Dynamic CLI for Python objects

| by jpic

image image image

Break free from the POSIX standard for more fluent CLIs, by exposing simple Python functions or objects with a minimalist argument typing style, or building your own command during runtime. For me, it’s in between google/python-fire, microsoft/knack, and Django.

Demo

Before becoming a generic CLI framework, back 10 rewrites prior to the latest release, cli2 was supposed to just bring Python callables on the CLI without even a single line of code:

Read More

Practice of eXtreme DevOps Demo @ Traefik Online Meetup

| by jpic

How weak is a Continuous Deployment when you can’t just deploy the master branch to production at any time? Merging unfinished patches to publish them on a staging deployment blocks production deployment of the master branch…

eXtreme DevOps is the practice of an extremely aggressive Continuous Delivery strategy where each patch push deploys an ephemeral deployment such as branchname.ci.example.com. Of course, this would be quite hard to achieve with configuration files, even with NGINX and Ansible.

But, with Traefik it becomes so easy that we couldn’t resist and make it the standard practice for all our developments, from private companies of all sizes, and to government organizations. In this session, James demos and discusses his expertise using Traefik to practice eXtreme DevOps for his customers.

Read More

Arch & Alpine Linux YourLabs Mirrors & Scripts

| by jpic

This articles describes how to use the scripts we use to maintain public and private mirrors for Arch and Alpine Linux packages (more distros to come): arch.yourlabs.org and alpine.yourlabs.org.

The whole point of having this is that we also have arch.yourlabs.org and alpine.yourlabs.org on our local networks, as such upgrades are extremely fast at the hackerspace.

Read More

BigSudo eXtreme DevOps: Hacking Operations

| by jpic | devops

BigSudo is a command line generator wrapping around Ansible: the excellent tool for automating operations which has proven itself in an extremely heterogenic ecosystem over the course of the last years, and currently maintained by Red Hat.

eXtreme DevOps is when code traditionnaly known as network and infrastructure operations automation meet continuous integration, merges with continuous delivery, made it almost trivial to deploy per-branch ephemeral deployments on each git push, say on test-$GIT_BRANCHNAME.ci.example.com, so that the product team can review a feature during development without forcing the developer to merge unfinished code into master, in order to keep the master branch clean and deployable at any moment.

Read More

Developping on Tezos with custom gas restrictions

| by Thomas Binetruy

Then next Tezos Protocol update, Carthage net, will increase the gas restrictions allowing the development of hungrier smart contracts. In this post, we document how to update these hard limits to arbitrary values letting developers implement contracts in view of protocol updates. For instance, the gas restrictions will increase by multiple folds before the end of the year.

We develop on the Tezos sandbox, the simplest is to pull Yourlabs' docker image:

Read More

Python 3.8 AST updates

| by Thomas Binetruy

On this Friday night, I decided to give my mini Python to pseudo-Michelson compiler 1 a little polish. I remembered leaving it working flawlessly, so that it’d be easy to get back grinding at it anytime I so desired to. Using the Python AST module as a compiler frontend, I was sure it’d be pretty stable, unlike Marshall code, purposely left undocumented 2.

So I gave my code a go, and somehow, my integration test wasn’t working anymore! What could possibly have gone wrong. I noticed I was using the Python 3.8 interpreter and that I had only tested my code on Python 3.7. Could this update contain breaking changes with respect to my code? I figured if this had been the case, then surely it’d be in the AST module. I compared the bytecode output I was getting with the one my test expected and surprisingly, it was not the same! It wasn’t pushing my constants onto the stack when assigning them to variables. A little more digging, with the help of Python’s new breakpoint(), until I noticed that my condition on ast.Num, to push a number on the stack, had been replaced by ast.Constant… Hence the weird bug I was noticing. A little Googling to find that indeed:

Read More
Previous Page 2 of 32 Next Page

They trust us

Contact

logo