Site uses cookies to provide basic functionality.
Javascript rendering is set to off by default when visiting the site via .onion and .i2p domains. It can be enabled back again in user's settings section. Javascript rendering set to off means, that you can disable javascript in your browser now and the site will remain functional.
There is also IRC server now available via native IRC clients or non javascript web based one.
Fonts can be adjusted in user's settings section as well.
Check FAQ for more.

OK

Read Part 1 , Part 2 , and Part 3 first. Introduction This post will try not to be a mess, but it might be. It will be worth it, though; you will get some idea of how Yao looks in my head. It’s my head that is a mess, not Yao. I will use all masculine pronouns for ease. Process To start, I want to talk about how I have designed Yao with regards to the process of software development , since it is the process that I starte..

Read Part 1 , Part 2 , and Part 3 first. Introduction This post will try not to be a mess, but it might be. It will be worth it, though; you will get some idea of how Yao looks in my head. It’s my head that is a mess, not Yao. I will use all masculine pronouns for ease. Process To start, I want to talk about how I have designed Yao with regards to the process of software development , since it is the process that I starte..

Read Part 1 , Part 2 , and Part 3 first. Introduction This post will try not to be a mess, but it might be. It will be worth it, though; you will get some idea of how Yao looks in my head. It’s my head that is a mess, not Yao. I will use all masculine pronouns for ease. Process To start, I want to talk about how I have designed Yao with regards to the process of software development , since it is the process that I starte..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 and Part 2 first. Introduction Okay, Jai has had its time in the limelight; it is Clojure’s turn. Clojure has all the big things to reduce bugs: memory safety, automatic memory management, and others. It also tacks on a few more: immutable by default, managed references, open data types, and others. Memory Safety I don’t know why Jonathan Blow does not have memory safety in Jai; in my opinion, it is the worst mista..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

Read Part 1 first. Introduction Compared to Jai, Clojure is a straitjacket. It is much more unusable, for sure. Why? Jonathan Blow’s personal style of programming seems to be similar to compression-oriented programming . As such, Jai is designed for it. I like that, so Yao will do the same thing. An example: one cool feature of Jai is the way it is designed to handle the life cycle of code, from straight-line execution, to a sepa..

make base case result derived case 1 derived case 2 result result expect happy case expect corner case 1 expect corner case 2 set up verify result exercise modify A diagram of how different tests share common test setup with a shared base fixture Q : How do you know you can trust your test set-up? A : You reuse a well-known test set up in every test. Example code def test_simple(): req = set_up_working_reques....

make base case result derived case 1 derived case 2 result result expect happy case expect corner case 1 expect corner case 2 set up verify result exercise modify A diagram of how different tests share common test setup with a shared base fixture Q : How do you know you can trust your test set-up? A : You reuse a well-known test set up in every test. Example code def test_simple(): req = set_up_working_reques....

make base case result derived case 1 derived case 2 result result expect happy case expect corner case 1 expect corner case 2 set up verify result exercise modify A diagram of how different tests share common test setup with a shared base fixture Q : How do you know you can trust your test set-up? A : You reuse a well-known test set up in every test. Example code def test_simple(): req = set_up_working_reques....

Having recently read Your Money or Your Life , I've been cutting down on personal expenses wherever possible. Specially recurring expenses which include monthly charges from VPS hosting. Let's reduce those charges… My VPS needs are fairly small (mostly hobby and tinkering). Vultr † has a plan for $2.50/month (not seen anything cheaper). The caveat for the price, you get ipv6 access only (ie. 0000:1111:2222:3333:4444:5555:6666:7777:8888)....

Improving a legacy technology system forces you to re-examine business processes and organizational structures as well as technical systems.

I have realized recently that a lot of people think I am just a shill for Kubernetes and I am not. What I have done is write a few blog posts on some interesting problems to be solved in Kubernetes. But I would like to emphasize that those problems are pretty exclusive to the way Kubernetes was designed and you could easily build your own orchestrator without them. Use Containerd If you need an example of a custom, minimal orchestrator ....

Marketing on the internet isn’t much different from Marketing on any other medium. So let’s go back a hundred years to get some inspiration. Inspiration from the 1920s After selling 100 million books of his series Little Blue Book marketer Julius Hadleman wrote a book analysing all the data he had collected. The book title is “The First Hundred Million” and it came out in 1928 (email me if you need help finding it) and features an..

I don’t like Codes of Conduct. They can be easily misused . So Yzena doesn’t have one and never will. But I do reserve the right to eject people from the community who, I believe, have behavior that is detrimental to the health of the project(s), community, and any other members of the community. In other words, I am BDFL , and I take direct responsibility for maintaining a healthy community .

I don’t like Codes of Conduct. They can be easily misused . So Yzena doesn’t have one and never will. But I do reserve the right to eject people from the community who, I believe, have behavior that is detrimental to the health of the project(s), community, and any other members of the community. In other words, I am BDFL , and I take direct responsibility for maintaining a healthy community .

I don’t like Codes of Conduct. They can be easily misused . So Yzena doesn’t have one and never will. But I do reserve the right to eject people from the community who, I believe, have behavior that is detrimental to the health of the project(s), community, and any other members of the community. In other words, I am BDFL , and I take direct responsibility for maintaining a healthy community .

I don’t like Codes of Conduct. They can be easily misused . So Yzena doesn’t have one and never will. But I do reserve the right to eject people from the community who, I believe, have behavior that is detrimental to the health of the project(s), community, and any other members of the community. In other words, I am BDFL , and I take direct responsibility for maintaining a healthy community .

I don’t like Codes of Conduct. They can be easily misused . So Yzena doesn’t have one and never will. But I do reserve the right to eject people from the community who, I believe, have behavior that is detrimental to the health of the project(s), community, and any other members of the community. In other words, I am BDFL , and I take direct responsibility for maintaining a healthy community .

I don’t like Codes of Conduct. They can be easily misused . So Yzena doesn’t have one and never will. But I do reserve the right to eject people from the community who, I believe, have behavior that is detrimental to the health of the project(s), community, and any other members of the community. In other words, I am BDFL , and I take direct responsibility for maintaining a healthy community .




Doing Continuous Integration is a lot easier if you have the right tools. In our project at a german car manufacturer, we were tasked with developing new services and bringing them to the cloud. We had a centralized Jenkins instance, shared by all the teams in the department. It didn’t fit our needs and made it harder for us to deliver software quickly and reliably.

A while back Steve wrote about auto-renewing subscriptions and I recently got a chance to implement such a subscription in an app. However, it seems that all the changes in the world of in-app purchase created a situation where API’s work in some cases and don’t work for all of them. __ After publishing this post we walked back on this, you now need to use subscribe for subscriptions again! In the blog post, Steve used the purch..

Do you need something to cheer you up? You got it: I should explain this costume a little bit. At the US Digital Service, we do a thing called “crab claws.” Crab claws is like visual applause–you pinch your fingers up and down to say “great job” or “congratulations” or “way to go.” We do […]

113 visitors online