Another note to myself before I forget about this nifty usage
of socat again.
I was looking for something to mock a serial device, similar to
a microcontroller which usually ends up as /dev/ttyACM0 and might
output some text. What I found is a very helpful post on
stackoverflow
showing an example utilizing socat.
$ socat -d -d pty,rawer pty,rawer
2020/12/20 21:37:53 socat[29130] N PTY is /dev/pts/8
2020/12/20 21:37:53 socat[29130] N PTY is /dev/pts/11
2020/12/20 21:37:53 socat[29130] N starting data transfer loop with FDs [5,5] and [7,7]
Write whatever you need to the second pty, here /dev/pts/11, e.g.
$ i=0; while :; do echo "foo: $ i " > /dev/pts/11; let i++; sleep 5; done
Now you can listen with whatever you like, e.g. some tool you work on, on the fist pty,
here /dev/pts/8. For demonstration purpose just use cat:
$ cat /dev/pts/8
foo: 0
foo: 1
socat is an awesome tool, looking through the manpage you need some knowledge about
sockets, but it's incredibly vesatile.
The people who are pro-Government and in this case pro-Corporate do not have any success stories that they can share. Hence, most of the time the arguments are that the other are bad. For e.g. quite a few people argue that we don t need farmers, we can just order from restaurant. They have completely disassociated the idea that even then you need farmers as unless the farmers put the seed in, till the soil and wait for the rains or have irrigation you won t get ripe vegetables which then has to be taken out, and somehow sold to the wholesaler from where it comes to the restaurant and then to your plate. Sadly, even the farm-to-fork infographics are so depressingly sad, you want to look away. If you see the infographic you see it is just not non-veg but also vegetarian food grains which go under lot of questionable practices. Even, with such scenarios that is done by corporations our people want to go ahead. I will share stories from other countries which tell how they are doing more.
The Soldier-Farmer
Another sad part of these protests have been soldiers who have been returning their medals. The ones who oppose have the gall to say they should return the cash rewards they got. So just like farmers, seems soldiers also do not need money to survive. They are supposed to live only on air and water. This is after the present Govt. has reduced their pensions after retirement and that too without any discussion
GOI pensions to ex-servicemen
Now I nor anybody else would have minded if these conditions were shared going forward rather than doing it retrospectively. People who usually go to the army are not in it for money but for the adventure and glory they bring. But they do also have a family and have a family responsibility. In most other countries, the soldier and his families are well-looked after. If you know that even after you die, the Government would look after your family, you will do your best. Unfortunately, many veterans in India themselves are asked to help by many war widows as the widows don t get family pensions. The proposal naturally has left many miffed. In fact many of the veterans who used to advise people to join the armed forces now advise young people to pursue civilian life and careers. This is when Indian Army has been ironically having shortage of officers from well over a decade and stresses felt by Army personnel also known for a long time.
Even under this nationalistic Government, if it cannot take care of its soldiers, then forget about others.
India Defence Spending vis-a-vis other countries.
Now it is nobody s argument that India needs to improve its tooth-to-tail ratio but this is the wrong way to go about it. I would probably talk about that some other time as that totally needs its whole place.
Even OROP, which was the mandate of this Government hasn t had been done in full as there are quite a few cases in the Supreme Court. Almost all the cases have been heard and only decisions have to be given which the SC for whatever reason doesn t want to give. They just keep changing the date of the hearing. Nowadays, in many suits/cases, the SC asks for fresh hearings even though all the old records are there. This is a newish phenomena which is being observed in SC. Why is it being done? Your guess is as good as mine. One thing for sure has changed, the SC which used to be citizen-focussed or enabler of human rights and used to be held as a beacon for judicial activism has changed but these are other topics which need their own space.
Update 16/12/2020 The SC recommends setting up a committee to discuss farmer issues. And this is nothing new. This is called death by committee. When there is already so much literature on the subject, including the works done by Swaminathan Commission. There has been 6 reports which do look at farmer issues in a holistic manner. This is the Supreme Court giving an escape route to GOI. They also have abstained from having a whole session citing Covid. This is when the ruling Govt. is putting a massive 1000 crore on a new building on which the SC has put on hold. And even then the GOI went ahead and did a Bhoomi-Pujan (traditional ceremony when making a new construction from scratch.)
Naturally due to the double whammy of both the pension reforms and now the laws to make corporate farming more aggressive has left a deep impact on the soldier-farmer that the state does not think or feel for him.
Even the United States farm-aid eloquently describes how corporate farming has made independent farmers suffer. You read that, and it seems it is as the state of our farmers here in India. Even their average land-holding has dropped a bit. I have shared about the state of farmers in India, in twoblog posts previously. And it is not just farm owners who have had it bad, even farm workers in U.S. The issue may look to be about the pandemic but goes far deeper.
The Israeli Model
The Israelis have always used collective farming and do have a large share in farming there. The old model called Kibbutz is what made Israelis self-sufficient in food and water and actually are world-leaders where they export their services to other nations on the same thing.
France
Just like many other countries, France also seems to have favored farmer co-operatives. Almost 75% of all farmers are in co-operatives.
Italy
The country world-famous for its wines and cheese are made by its co-operatives. In fact co-ops are the buzzword it seems in Italy, more so in Northern Italy.
Asian economies
Even Asian economies, especially East Asian economies by and large have been turning to co-operatives.
Brazil
Now Brazil is almost 40% more than India. In fact, in most of the indices, Brazil beats India handsomely. So one would be forgiven to think that Brazil must have corporate farming. But nothing could be further from the truth. The only downer is that they have high crime in some areas. Otherwise, they are in many ways better than India. In fact, I was surprised a few years ago to learn about Mercsour. I would have to admit though I learned much about Brazil when Debian was holding a debconf about a year back. Otherwise, I had known about the country for number of years but apart from its carnival and samba, hadn t known much about it. I did come to know that most of Latin America also loves spices as much as Indians do. They show that love by using hot sauces. I do one day wanna try one of their sauces to see what makes it tick. I do know they like to barbecuevegetables as much as barbecuing non-veg food. This is going a bit OT but then that s the foodie in me Conclusion
I could have shared more countries which have chosen the co-operative way rather than corporate farming and that is simply because they know what is best for their people and what is best even politically. The new farm laws are neither grounded in farmer s welfare nor anything else. The Govt. has been trying to undermine the farmers for years together. In fact, Madhya Pradesh has openly said that they will not allow farmers from other states to sell in their state. Although, even before these laws there was nothing to restrict the farmer from selling his produce anywhere in the country. Angering the farmers is not good politics as was found sometime back but guessing some lessons need to be re-learned.
One comment though, on social media I have seen many people especially youngsters having no real understanding of what inflation is all about. For e.g. if you ask them how come we are having a sort of record inflation in a technical recession (there has been a contraction, actually) and you see them putting themselves into bigger and bigger ditches. This does explain in part why the BJP wins in elections. If you do more rhetoric, which BJP is good as, rather than educating people than you are bound to win. You don t need plans, you don t need a vision, just rhetoric will do. What more evidence is needed when the economy is and was in a worse shape even before the pandemic and BJP won. I would probably write about that as that again needs lot of background and understanding as well as related terms.
The Hetzner server that hosts my blog among other things has 2*256G SSDs for the root filesystem. The smartctl and smartd programs report both SSDs as in FAILING_NOW state for the Wear_Leveling_Count attribute. I don t have a lot of faith in SMART. I run it because it would be stupid not to consider data about possible drive problems, but don t feel obliged to immediately replace disks with SMART errors when not convenient (if I ordered a new server and got those results I would demand replacement before going live).
Doing any sort of SMART scan will cause service outage. Replacing devices means 2 outages, 1 for each device.
I noticed the SMART errors 2 weeks ago, so I guess that the SMART claims that both of the drives are likely to fail within 24 hours have been disproved. The system is running BTRFS so I know there aren t any unseen data corruption issues and it uses BTRFS RAID-1 so if one disk has an unreadable sector that won t cause data loss.
Currently Hetzner Server Bidding has ridiculous offerings for systems with SSD storage. Search for a server with 16G of RAM and SSD storage and the minimum prices are only 2E cheaper than a new server with 64G of RAM and 2*512G NVMe. In the past Server Bidding has had servers with specs not much smaller than the newest systems going for rates well below the costs of the newer systems. The current Hetzner server is under a contract from Server Bidding which is significantly cheaper than the current Server Bidding offerings, so financially it wouldn t be a good plan to replace the server now.
Monitoring
I have just released a new version of etbe-mon [1] which has a new monitor for SMART data (smartctl). It also has a change to the sslcert check to search all IPv6 and IPv4 addresses for each hostname, makes freespace check look for filesystem mountpoint, and makes the smtpswaks check use latest swaks command-line.
For the new smartctl check there is an option to treat Marginal alert status from smartctl as errors and there is an option to name attributes that will be treated as marginal even if smartctl thinks they are significant. So now I have my monitoring system checking the SMART data on the servers of mine which have real hard drives (not VMs) and aren t using RAID hardware that obscures such things. Also it s not alerting me about the Wear_Leveling_Count on that particular Hetzner server.
Like many other people, I first became aware of Anne Helen Petersen's
journalism when her Buzzfeed article
"How Millennials Became the Burnout Generation" went viral. Can't
Even is the much-awaited (at least by me) book-length expansion of that
thesis: The United States is, as a society, burning out, and that burnout
is falling on millennials the hardest. We're not recognizing the symptoms
because we think burnout looks like something dramatic and flashy. But
for most people burnout looks less like a nervous breakdown and more like
constant background anxiety and lack of energy.
Laura, who lives in Chicago and works as a special ed teacher, never
wants to see her friends, or date, or cook she's so tired, she just
wants to melt into the couch. "But then I can't focus on what I'm
watching, and end up unfocused again, and not completely relaxing,"
she explained. "Here I am telling you I don't even relax right! I
feel bad about feeling bad! But by the time I have leisure time, I
just want to be alone!"
Petersen explores this idea across childhood, education, work, family, and
parenting, but the core of her thesis is the precise opposite of the
pervasive myth that millennials are entitled and lazy (a persistent
generational critique that Petersen points out was also leveled at their
Baby Boomer parents in the 1960s and 1970s). Millennials aren't slackers;
they're workaholics from childhood, for whom everything has become a
hustle and a second (or third or fourth) job. The struggle with
"adulting" is a symptom of the burnout on the other side of exhaustion,
the mental failures that happen when you've forced yourself to keep going
on empty so many times that it's left lingering damage.
Petersen is a synthesizing writer who draws together the threads of other
books rather than going deep on a novel concept, so if you've been reading
about work, psychology, stress, and productivity, many of the ideas here
will be familiar. But she's been reading the same authors that I've been
reading (Tressie McMillan Cottom,
Emily Guendelsberger, Brigid Schulte, and even Cal Newport), and
this was the book that helped me pull those analyses together into a
coherent picture.
That picture starts with the shift of risk in the 1970s and 1980s from
previously stable corporations with long-lasting jobs and retirement
pensions onto individual employees. The corresponding rise in precarity
and therefore fear led to a concerted effort to re-establish a feeling of
control. Baby Boomers doubled down on personal responsibility and
personal capability, replacing unstructured childhood for their kids with
planned activities and academic achievement. That generation, in turn,
internalized the need for constant improvement, constant grading, and
constant achievement, accepting an implied bargain that if they worked
very hard, got good grades, got into good schools, and got a good degree,
it would pay off in a good life and financial security.
They were betrayed. The payoff never happened; many millennials graduated
into the Great Recession and the worst economy since World War II. In
response, millennials doubled down on the only path to success they were
taught. They took on more debt, got more education, moved back in with
their parents to cut expenses, and tried even harder.
Even after watching our parents get shut out, fall from, or simply
struggle anxiously to maintain the American Dream, we didn't reject
it. We tried to work harder, and better, more efficiently, with more
credentials, to achieve it.
Once one has this framework in mind, it's startling how pervasive the
"just try harder" message is and how deeply we've internalized it. It is
at the center of the time management literature: Getting Things Done focuses almost entirely on individual
efficiency. Later time management work has become more aware of the
importance of pruning the to-do list and doing fewer things, but addresses
that through techniques for individual prioritization.
Cal Newport is more aware than most that
constant busyness and multitasking interacts poorly with the human brain,
and has taken a few tentative steps towards treating the problem as
systemic rather than individual, but his focus is still primarily on
individual choices. Even when tackling a problem that is clearly
societal, such as the monetization of fear and outrage on social media,
the solutions are all individual: recognize that those platforms are bad
for you, make an individual determination that your attention is being
exploited, and quit social media through your personal force of will.
And this isn't just productivity systems. Most of public discussion of
environmentalism in the United States is about personal energy
consumption, your individual carbon footprint, household recycling, and
whether you personally should eat meat. Discussions of monopoly and
monopsony become debates over whether you personally should buy from
Amazon. Concerns about personal privacy turn into advocacy for using an
ad blocker or shaming people for using Google products. Articles about
the growth of right-wing extremism become exhortations to take
responsibility for the right-wing extremist in your life and argue them
out of their beliefs over the dinner table. Every major systemic issue
facing society becomes yet another personal obligation, another place we
are failing as individuals, something else that requires trying harder,
learning more, caring more, doing more.
This advice is well-meaning (mostly; sometimes it is an intentional and
cynical diversion), and can even be effective with specific problems. But
it's also a trap. If you're feeling miserable, you just haven't found the
right combination of time-block scheduling, kanban, and bullet journaling
yet. If you're upset at corporate greed and the destruction of the
environment, the change starts with you and your household. The solution
is in your personal hands; you just have try a little harder, work a
little harder, make better decisions, and spend money more ethically
(generally by buying more expensive products). And therefore, when we're
already burned out, every topic becomes another failure, increasing our
already excessive guilt and anxiety.
Believing that we're in control, even when we're not, does have
psychological value. That's part of what makes it such a beguiling trap.
While drafting this review, I listened to Ezra Klein's interview with
Robert Sapolsky on poverty and stress, and one of the points he made is
that, when mildly or moderately bad things happen, believing you have
control is empowering. It lets you recast the setback as a larger
disaster that you were able to prevent and avoid a sense of futility. But
when something major goes wrong, believing you have control is actively
harmful to your mental health. The tragedy is now also a personal
failure, leading to guilt and internal recrimination on top of the effects
of the tragedy itself. This is why often the most comforting thing we can
say to someone else after a personal disaster is "there's nothing you
could have done."
Believing we can improve our lives if we just try a little harder does
work, until it doesn't. And because it does work for smaller things, it's
hard to abandon; in the short term, believing we're at the mercy of forces
outside our control feels even worse. So we double down on
self-improvement, giving ourselves even more things to attempt to do and
thus burning out even more.
Petersen is having none of this, and her anger is both satisfying and
clarifying.
In writing that article, and this book, I haven't cured anyone's
burnout, including my own. But one thing did become incredibly clear.
This isn't a personal problem. It's a societal one and it will not
be cured by productivity apps, or a bullet journal, or face mask skin
treatments, or overnight fucking oats. We gravitate toward those
personal cures because they seem tenable, and promise that our lives
can be recentered, and regrounded, with just a bit more discipline, a
new app, a better email organization strategy, or a new approach to
meal planning. But these are all merely Band-Aids on an open wound.
They might temporarily stop the bleeding, but when they fall off, and
we fail at our new-found discipline, we just feel worse.
Structurally, Can't Even is half summaries of other books and
essays put into this overall structure and half short profiles and quotes
from millennials that illustrate her point. This is Petersen's typical
journalistic style if you're familiar with her other work. It gains a lot
from the voices of individuals, but it can also feel like argument from
anecdote. If there's a epistemic flaw in this book, it's that Petersen
defends her arguments more with examples than with scientific study. I've
read enough of the other books she cites, many of which do go into the
underlying studies and statistics, to know that her argument is
well-grounded, but I think Can't Even works better as a roadmap and
synthesis than as a primary source of convincing data.
The other flaw that I'll mention is that although Petersen tries very hard
to incorporate poorer and non-white millennials, I don't think the effort
was successful, and I'm not sure it was possible within the structure
of this book. She frequently makes a statement that's accurate and
insightful for millennials from white, middle-class families, acknowledges
that it doesn't entirely apply to, for example, racial minorities, and
then moves on without truly reconciling those two perspectives. I think
this is a deep structural problem: One's experience of American life
is very different depending on race and class, and the phenomenon that
Petersen is speaking to is to an extent specific to those social classes
who had a more comfortable and relaxing life and are losing it.
One way to see the story of the modern economy is that white people are
becoming as precarious as everyone else already was, and are reacting by
making the lives of non-white people yet more miserable. Petersen is
accurately pointing to significant changes in relationships with
employers, productivity, family, and the ideology of individualism, but
experiencing that as a change is more applicable to white people than
non-white people. That means there are, in a way, two books here: one
about the slow collapse of the white middle class into constant burnout,
and a different book about the much longer-standing burnout of being
non-white in the United States and our systemic failure to address the
causes of it. Petersen tries to gesture at the second book, but she's not
the person to write it and those two books cannot comfortably live between
the same covers. The gestures therefore feel awkward and forced, and
while the discomfort itself serves some purpose, it lacks the insight that
Petersen brings to the rest of the book.
Those critiques aside, I found Can't Even immensely clarifying.
It's the first book that explained to me in a way I understood what's so
demoralizing and harmful about Instagram and its allure of cosplaying as a
successful person. It helped me understand how productivity and
individual political choices fit into a system that emphasizes individual
action as an excuse to not address collective problems. And it also gave
me a strange form of hope, because if something can't go on forever, it
will, at some point, stop.
Millennials have been denigrated and mischaracterized, blamed for
struggling in situations that set us up to fail. But if we have the
endurance and aptitude and wherewithal to work ourselves this deeply
into the ground, we also have the strength to fight. We have little
savings and less stability. Our anger is barely contained. We're a
pile of ashes smoldering, a bad memory of our best selves.
Underestimate us at your peril: We have so little left to lose.
Nothing will change without individual people making different decisions
and taking different actions than they are today. But we have gone much
too far down the path of individual, atomized actions that may produce
feelings of personal virtue but that are a path to ineffectiveness and
burnout when faced with systemic problems. We need to make different
choices, yes, but choices towards solidarity and movement politics rather
than personal optimization.
There is a backlash coming. If we let it ground itself in personal
grievance, it could turn ugly and take a racist and nationalist direction.
But that's not, by in large, what millennials have done, and that makes me
optimistic. If we embrace the energy of that backlash and help shape it
to be more inclusive, just, and fair, we can rediscover the effectiveness
of collective solutions for collective problems.
Rating: 8 out of 10
It has been almost a year since I got a different implementation of my
PDP-8/e replica project for my birthday.
Yes, it was a cake, and I have neglected to share it with the world so far. To
be fair, there was a time this year where everything was a cake, at least on
Twitter, and adding another one would have just been pouring gasoline on the
fire.
But here it is, first a side by side comparison of the implementations:
Some detail to admire:
Afterwards I got to see some of the planning that went into it:
I can t say that the other implementation was as functional as mine, but it was
definitely tastier.
VDPAU is the Video Decode and Presentation API for Unix [1]. I noticed an error with mplayer Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory , Googling that turned up Debian Bug #869815 [2] which suggested installing the packages vdpau-va-driver and libvdpau-va-gl1 and setting the environment variable VDPAU_DRIVER=va_gl to enable VPDAU.
The command vdpauinfo from the vdpauinfo shows the VPDAU capabilities, which showed that VPDAU was working with va_gl.
When mplayer was getting the error about a missing i915 driver it took 35.822s of user time and 1.929s of system time to play Self Control by Laura Branigan [3] (a good music video to watch several times while testing IMHO) on my Thinkpad Carbon X1 Gen1 with Intel video and a i7-3667U CPU. When I set VDPAU_DRIVER=va_gl mplayer took 50.875s of user time and 4.207s of system time but didn t have the error.
It s possible that other applications on my Thinkpad might benefit from VPDAU with the va_gl driver, but it seems unlikely that any will benefit to such a degree that it makes up for mplayer taking more time. It s also possible that the Self Control video I tested with was a worst case scenario, but even so taking almost 50% more CPU time made it unlikely that other videos would get a benefit.
For this sort of video (640 480 resolution) it s not a problem, 38 seconds of CPU time to play a 5 minute video isn t a real problem (although it would be nice to use less battery). For a 1600*900 resolution video (the resolution of the laptop screen) it took 131 seconds of user time to play a 433 second video. That s still not going to be a problem when playing on mains power but will suck a bit when on battery. Most Thinkpads have Intel video and some have NVidia as well (which has issues from having 2 video cards and from having poor Linux driver support). So it seems that the only option for battery efficient video playing on the go right now is to use a tablet.
On the upside, screen resolution is not increasing at a comparable rate to Moore s law so eventually CPUs will get powerful enough to do all this without using much electricity.
As a followup to the previous post, here's an update on the iOS
14 USB tethering problem on Linux. After some investigation, Matti
Vuorela
found that reducing the USB packet size by two bytes would
actually fix the issue. A small patch was later
commited to the Linux kernel and found its way to Linux and
distributions stable releases. On Debian stable you'll need to
upgrade to Buster 10.7 to get the
fix.
Like each month, here comes a report about the work of paid contributors to Debian LTS.
Individual reports
In November, 239.25 work hours have been dispatched among 13 paid contributors. Their reports are available:
Evolution of the situation
In November we held the last
LTS team meeting for 2020 on IRC, with the next one coming up at the end of January.
We announced a new formalized initiative for
Funding Debian projects with money from Freexian s LTS service.
Finally, we would like to remark once again that we are constantly looking
for new contributors. Please contact Holger
if you are interested!
We re also glad to welcome two new sponsors, Moxa, a device manufacturer, and a French research lab (Institut des Sciences Cognitives Marc Jeannerod).
The security tracker currently lists 37 packages with a known CVE and the dla-needed.txt file has 40 packages needing an update.
Thanks to our sponsors
Sponsors that joined recently are in bold.
What did I learn about WebRTC in 2020.
Because of remote life I needed new tools for every day
life, around video and recording. I figured that HTML5 had
most of ffmpeg and OBS features that I needed, and thought I
could make equivalent tools with just web technology.
Learning curve was relatively steep because many of examples
on the web that I could find was stale and
nonfunctional. Most sample code are still not ES2015. What
year is this? This is 2020.
Busy rewriting var to const, functions to await.
For a while I ve had a problem with my Thinkpad X1 Carbon Gen 1 [1] where storage pauses for 30 seconds, it s become more common recently and unfortunately everything seems to depend on storage (ideally a web browser playing a video from the Internet could keep doing so with no disk access, but that s not what happens).
echo 3 > /sys/block/sda/device/timeout
I ve put the above in /etc/rc.local which should make it only take 3 seconds to recover from storage problems instead of 30 seconds, the problem hasn t recurred since that change so I don t know if it works as desired. The Thinkpad is running BTRFS and no data is reported as being lost, so it s not a problem to use it at this time.
The bottom of this post has an example of the errors I m getting. A friend said that his searches for such errors shows people claiming that it s a SATA controller or cable problem, which for a SATA device bolted directly to the motherboard means it s likely to be a motherboard problem (IE more expensive to fix than the $289 I paid for the laptop almost 3 years ago).
A Lenovo forum discussion says that the X1 Carbon Gen1 uses an unusual connector that s not M.2 SATA and not mSATA [2]. This means that a replacement is going to be expensive, $100US for a replacement from eBay when a M.2 SATA or NVMe device would cost about $50AU from my local store. It also means that I can t use a replacement for anything else. If my laptop took a regular NVMe I d buy one and test it out, if it didn t solve the problem a spare NVMe device is always handy to have. But I m not interested in spending $100US for a part that may turn out to be useless.
I bought the laptop expecting that there was nothing I could fix inside it. While it is theoretically possible to upgrade the CPU etc in a laptop most people find that the effort and expense makes it better to just replace the entire laptop. With the ultra light category of laptops the RAM is soldered on the motherboard and there are even less options for replacing things. So while it s annoying that Lenovo didn t use a standard interface for this device (they did so for other models in the range) it s not a situation that I hadn t expected.
Now the question is what to do next. The Thinkpad has a SD socket and micro SD cards are getting large capacities nowadays. If it won t boot from a SD card I could boot from USB and then run from SD. So even if the internal SATA device fails entirely it should still be useful. I wonder if I could find a Thinkpad with a similar problem going cheap as I m pretty sure that a Windows user couldn t make any storage device usable the way I can with Linux.
I ve looked at prices on auction sites but haven t seen a Thinkpad X1 Carbon going for anywhere near the price I got this one. The nearest I ve seen is around $350 for a laptop with significant damage.
While I am a little unhappy at Lenovo s choice of interface, I ve definitely got a lot more than $289 of value out of this laptop. So I m not really complaining.
A new release 0.3.3.9.1 of RcppEigen arrived on CRAN today (and just went to Debian too) bringing support for Eigen 3.3.9 to R. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
The release started with a gentle nudge from the Stan team to package Eigen 3.3.8. And once I got around to it and sat down, Eigen 3.3.9 had just been released the previous day. The freshly prepared release 0.3.3.9.0 was then announced on Twitter (and the rcpp-devel mailing list) along with a request for testing alongside the usual extended reverse dependency checking we do (just like CRAN asks us to). And it turns out that Eigen 3.3.9 required an update to StanHeaders, a CRAN package that is itself quite widely used. This took a couple of days and its round of testing, but Ben Goodrich shipped it to CRAN last night, so we were able to ship RcppEigen in turn today.
So this release once again bring few required changes to Eigen (see this directory for details). As we said for the previous three releases:
One additional and recent change was the accomodation of a recent CRAN Policy change to not allow gcc or clang to mess with diagnostic messages. A word of caution: this may make your compilation of packages using RcppEigen very noisy so consider adding -Wno-ignored-attributes to the compiler flags added in your ~/.R/Makevars.
I actually find this requirement rather annoying. Eigen is then only usable if you set, say,
as g++ options in ~/.R/Makevars. But CRAN makes the rules. Maybe if a few of us gently and politely nudge them they may relent one day. One can only hope.
The complete NEWS file entry follows.
Changes in RcppEigen version 0.3.3.9.1 (2020-12-17)
Today, the Debian website displays a new homepage.
Since the most recent web team sprint
in March 2019, we have been working on renewing the structure, content, layout
and scripts that build the site.
There has been work mainly in two areas: removing or updating obsolete content,
and creating a new homepage which is more attractive to newcomers,
and which also highlights the social aspect of the Debian project
in addition to the operating system we develop.
Although this took longer than we would have liked,
and we don't consider this new homepage final,
we think it's a good first step towards a much better web site.
The web team will continue to work on restructuring the Debian website.
We would like to appeal to the community for help, and are also considering
external assistance, since we're a small group, whose members are also involved
in other Debian teams. Some of the next steps we expect to walk are
improve the CSS, icons, and layout in general, and review of the content,
to have a better structure.
If you would like to help, contact us. You can reply to the version of this
article (with some more details)
published in our public mailing list
or chat with us in the #debian-www IRC channel (at irc.debian.org).
I have a secret: risotto doesn't have to involve standing over a pot,
stirring for 30 minutes. There is a better way.
I've made risotto using the "stir 5ever" method and frankly this one is half
the work and just as good. I took inspiration from Kenji
Lopez-Alt, who describes how you can make risotto with only a few
minutes of stirring at the end! Yes, this is a secret too good to keep to
myself.
The linked recipe is too rich for a weeknight dinner, at least for my tastes,
so I've included my typical modifications below, which omits the heavy cream. I
usually make mushroom risotto, because all the ingredients are long-lived
pantry ingredients, which means I can make this on a whim without having to
grocery shop!
Mushroom risotto
Serves 3 as a main course. Active time: 25m. Total time: 45m.
Ingredients:
1oz (28g) dried mushrooms, such as porcini (or morels!)
3 cups chicken or vegetable stock
1 cups short-grained rice (I use arborio)
cup white wine
2 tbsp olive oil
2 tbsp unsalted butter
4 cloves garlic, minced
1 small onion, small diced
3oz (85g) grated Parmesan cheese
herbs for garnish (optional)
Recipe:
Leave mushrooms to rehydrate in 1 cup of hot water for at least 10 minutes.
Set a wide saucepan (about 3.5qts) or skillet on medium heat.
Mix stock and wine for a total of 4 cups. You can used homemade stock (the
best), boxed, or reconstitute from bouillon (my usual). If you use bouillon,
I find you get the best flavour if you use a mix, so I tend to use half
"no-chicken" and half "organic chicken" of the Better than Bouillon brand.
Let this cool if you used boiling water; you don't want it to be too hot.
Mix the rice and stock in a large bowl, agitating it to release the starch.
Reserve stock and set the rice in a strainer to drain.
Small dice an onion. Add olive oil and butter to the pan, and then add
the onion. Cook the onion until it's translucent, but don't brown it.
Increase the heat to high and add the rice to the pan to toast until it
becomes a little bit brown, stirring occasionally, about 3-4 minutes. Set a
timer so it doesn't burn
Meanwhile, drain the mushrooms, making sure you reserve the broth. Chop
mushrooms and mince the garlic. Once the rice is toasted, add mushrooms and
garlic and stir.
Stir the reserved stock. Add all of the mushroom liquid and all but 1 cup of
the starchy stock to the pan. Bring to a boil.
Once it has reached a boil, cover, reduce to the lowest heat, and allow the
rice to simmer undisturbed for 10 minutes. In the meantime, you can grate
the cheese.
After 10 minutes, stir the rice once, shake the pan to ensure it is level,
and return to the heat for 10 more minutes. Sit back, relax, and bask in the
very little stirring you are doing.
At this point, the rice should be nearly cooked. Give it a stir, and add
the remaining cup of broth. Stir until fully incorporated, turn the heat up
to high, and cook until the risotto reaches your preferred consistency. I
like mine rather thick.
Once the rice is fully cooked, turn off the heat and stir in the grated
cheese a bit at a time, reserving some for garnish. Taste, and season with
salt and pepper.
Garnish with the grated cheese, and perhaps some herbs. Serve and enjoy!
Variations
No mushrooms: Okay, okay, you hate mushrooms! Sorry! You can leave them
out. Don't bother with the mushrooms, and add broth to make up for the lost
liquid.
Mushroom lover: Alternatively, if you love mushrooms and you have fresh
ones available, use &frac13 to a pound (150-225g) chopped fresh
mushrooms instead of dried. Add them at the same time you add the onions to
ensure all the liquid cooks off.
Milanese, with stuff: One of my favourite variations on this dish is a
version with shrimp, asparagus, and saffron. Leave the mushrooms out, increase
the wine to or even 1 cup (seafood likes a little extra acidity),
ensure you have a total of 5 cups of broth, and add a few strands of saffron.
Chop asparagus and shrimp, season with salt and pepper, saut them with some
butter or olive oil in a separate pan so they don't overcook, and fold them in
at the very end, after you've added the cheese.
I MUST SUFFER: This was too easy? Want to stir more??? Fine, have it your
$*!#ing way.
I'm sure you can be creative and come up with something on your own...
This time of year, a lot of people are thinking of buying gadgets and phones as gifts. But there are a lot of tech companies that have unethical practices, from terrible working conditions in their factories to spying on their users. Here are some buying guides to help you find gadgets that are fun and not creepy.
The Free Software Foundation s Ethical Tech Giving Guide is a fantastic resource from what s probably the pickiest organization out there when it comes to tech. Not only do they highlight good devices, they also explain why and why you should, for instance, avoid the iPhone (their history of silencing political activists and spying on users).
The FSF also has a Guide to DRM-Free Living talks about books, video, audio, and software that respects your freedom by letting you make your own backups, move it to other devices, and continue to use your purchases even if you have no Internet or the company you bought them from goes bankrupt. This is a fantastic and HUGE resource; there are hundreds of organizations out there that provide content in a way that respects your rights and many of them do it for free, legally, as well.
PrivacyTools has a fantastic series of guides on everything from email providers to operating systems, as well as links to a number of other guides.
The DeGoogle wiki on Reddit (as well as the sidebar) has a lot of fantastic alternatives to things like Chromebooks, Chrome, Gmail, etc.
Related resources
Here are some resources for education (what the issues are) and information about what companies and products to avoid.
In addition to the FSF s other fantastic resources above, they also have a list of proprietary malware. It lists things, practices, and companies to avoid, and talks about the reasons why. Their addictions page is particularly good and relevant to my recent post on the problems of the attention economy.
The Surveillance Self-Defense site from the Electronic Frontier Foundation is a fantastic introduction into how corporate surveillance works and how to defend against it.
Use with a grain of salt:
Mozilla, the people behind Firefox, have a site called Privacy Not Included that rates products by how creepy they are. They focus more narrowly on privacy than the more expansive set of freedoms the FSF considers (privacy is one of a number of things the FSF looks at), and in some cases I would say Mozilla is too generous (eg, with the Amazon Kindle, a number of their data points are just incorrect.)
Despite having worked on a numberofARMplatforms I ve never actually had an ARM based development box at home. I have a Raspberry Pi B Classic (the original 256MB rev 0002 variant) a coworker gave me some years ago, but it s not what you d choose for a build machine and generally gets used as a self contained TFTP/console server for hooking up to devices under test. Mostly I ve been able to do kernel development with the cross compilers already built as part of Debian, and either use pre-built images or Debian directly when I need userland pieces. At a previous job I had a Marvell MACCHIATObin available to me, which works out as a nice platform - quad core A72 @ 2GHz with 16GB RAM, proper SATA and a PCIe slot. However they re still a bit pricey for a casual home machine. I really like the look of the HoneyComb LX2 - 16 A72 cores, up to 64GB RAM - but it s even more expensive.
So when I saw the existence of the 8GB Raspberry Pi 4 I was interested. Firstly, the Pi 4 is a proper 64 bit device (my existing Pi B is ARMv6 which means it needs to run Raspbian instead of native Debian armhf), capable of running an upstream kernel and unmodified Debian userspace. Secondly the Pi 4 has a USB 3 controller sitting on a PCIe bus rather than just the limited SoC USB 2 controller. It s not SATA, but it s still a fairly decent method of attaching some storage that s faster/more reliable than an SD card. Finally 8GB RAM is starting to get to a decent amount - for a headless build box 4GB is probably generally enough, but I wanted some headroom.
The Pi comes as a bare board, so I needed a case. Ideally I wanted something self contained that could take the Pi, provide a USB/SATA adaptor and take the drive too. I came across the pre-order for the DeskPi Pro, decided it was the sort of thing I was after, and ordered one towards the end of September. It finally arrived at the start of December, at which point I got round to ordering a Pi 4 from CPC.
Total cost ~ 120 for the case + Pi.
The Bad
First, let s get the bad parts out of the way.
I managed to break a USB port on the Desk Pi. It has a pair of forward facing ports, I plugged my wireless keyboard dongle into it and when trying to remove it the solid spacer bit in the socket broke off. I ve never had this happen to me before and I ve been using USB devices for 20 years, so I m putting the blame on a shoddy socket.
The first drive I tried was an old Crucial M500 mSATA device. I have an adaptor that makes it look like a normal 2.5 drive so I used that. Unfortunately it resulted in a boot loop; the Pi would boot its initial firmware, try to talk to the drive and then reboot before even loading Linux. The DeskPi Pro comes with an m2 adaptor and I had a spare m2 drive, so I tried that and it all worked fine. This might just be power issues, but it was an unfortunate experience especially after the USB port had broken off.
(Given I ended up using an M.2 drive another case option would have been the Argon ONE M.2, which is a bit more compact.)
The Annoying
The case is a little snug; I was worried I was going to damage things as I slid it in. Additionally the construction process is a little involved. There s a good set of instructions, but there are a lot of pieces and screws involved. This includes a couple of FFC cables to join things up. I think this is because they ve attempted to make a compact case rather than allowing a little extra room, and it does have the advantage that once assembled it feels robust without anything loose in it.
I hate the need for an external USB3 dongle to bridge from the Pi to the USB/SATA adaptor. All the cases I ve seen with an internal drive bay have to do this, because the USB3 isn t brought out internally by the Pi, but it just looks ugly to me. It s hidden at the back, but meh.
Fan control is via a USB/serial device, which is fine, but it attaches to the USB C power port which defaults to being a USB peripheral. Raspbian based kernels support device tree overlays which allows easy reconfiguration to host mode, but for a Debian based system I ended up rolling my own dtb file. I changed
#include "bcm283x-rpi-usb-peripheral.dtsi"
to
#include "bcm283x-rpi-usb-host.dtsi"
in arch/arm/boot/dts/bcm2711-rpi-4-b.dts and then I did:
and the resulting bcm2711-rpi-4-b.dtb file replaced the one in /boot/firmware. This isn t a necessary step if you don t want to use the cooling fan in the case, or the front USB ports, and it s not really anyone s fault, but it was an annoying extra step to have to figure out.
The DeskPi came with a microSD card that was supposed to have RaspiOS already on it. It didn t, it was blank. In my case that was fine, because I wanted to use Debian, but it was a minor niggle.
The Good
I used Gunnar s pre-built Pi Debian image and it Just Worked; I dd d it to the microSD as instructed and the Pi 4 came up with working wifi, video and USB enabling me to get it configured for my network. I did an apt upgrade and got updated to the Buster 10.7 release, as well as the latest 5.9 backport kernel, and everything came back without effort after a reboot. It s lovely to be able to run Debian on this device without having to futz around with self-compiled kernels.
The DeskPi makes a lot of effort to route things externally. The SD slot is brought out to the front, making it easy to fiddle with the card contents without having to open the case to replace it. All the important ports are brought out to the back either through orientation of the Pi, or extenders in the case. That means the built in Pi USB ports, the HDMI sockets (conveniently converted to full size internally), an audio jack and a USB-C power port. The aforementioned USB3 dongle for the bridge to the drive is the only external thing that s annoying.
Thermally things seem good too. I haven t done a full torture test yet, but with the fan off the system is sitting at about 40 C while fairly idle. Some loops in bash that push load up to above 2 get the temperature up to 46 C or so, and turning the fan on brings it down to 40 C again. It s audible, but quieter than my laptop and not annoying.
I liked the way the case came with everything I needed other than the Pi 4 and a suitable disk drive. There was an included PSU (a proper USB-C PD device, UK plug), the heatsink/fan is there, the USB/SATA converter is there and even an SD card is provided (though that s just because I had a pre-order).
Speaking of the SD, I only needed it for initial setup. Recent Pi 4 bootloaders are capable of booting directly from USB mass storage devices. So I upgraded using the RPi EEPROM Recovery image (which just needs extracted to the SD FAT partition, no need for anything complicated - boot with it and the screen goes all green and you know it s ok), then created a FAT partition at the start of the drive for the kernel / bootloader config and a regular EXT4 partition for root. Copies everything over, updated paths, took out the SD and it all just works happily.
Summary
My main complaint is the broken USB port, which feels like the result of a cheap connector. For a front facing port expected to see more use than the rear ports I think there s a reasonable expectation of robustness. However I m an early adopter and maybe future runs will be better.
Other than that I m pretty happy. The case is exactly the sort of thing I wanted; I was looking for something that would turn the Pi into a box that can sit on my desk on the network and that I don t have to worry about knocking wires out of or lots of cables hooking bits up. Everything being included made it very convenient to get up and running. I still haven t poked the Pi that hard, but first impressions are looking good for it being a trouble free ARM64 dev box in the corner, until I can justify a HoneyComb.
In a recent post, I wrote about how the attention economy in use at big social networks hurts you.
In this post, I m going to suggest what to do about it.
Mastodon and the Fediverse
When you use email, you can send a message from an account at Google to one at Yahoo, Microsoft, or any of millions of businesses and organizations running their own mail server. Unlike, say, Facebook, email isn t a single service, but rather a whole bunch of independent systems that can communicate (or federate) with each other.
The Fediverse is similar, and the most advanced Fediverse client is Mastodon.
Mastodon:
Lets you easily migrate your account from one Mastodon instance to another, similar to how you can migrate a phone number from one carrier to another
Lets you communicate with users across the Fediverse (other Mastodon instances, and those running other software too)
Supports very high-quality conversations through sensible moderation controls
It s easy to get started! Head over to joinmastodon.org and click Get Started . Pick a community don t worry, this isn t a hugely consequential decision, as you can always move or change later. You can browse activity from across the Fediverse, or just on your local community, so if you find a community with similar interests, it can be a neat way to find others to follow.
If you re looking for more details, mastodon.help has a nice guide.
Defeating the Attention Economy
So, why does Mastodon make a difference?
First of all, you get to pick your host (and even software). With Twitter, you pretty much are using Twitter (yes, I know of things like Hootsuite, but for the vast majority of people, it s twitter.com only). With Mastodon, you have choice. Pick the host that runs the software and has the kind of moderation you like.
Secondly, Mastodon is not for profit. There is no money to be made in keeping you on the site. Almost all Mastodon instances are ad-free. And Mastodon s completely open protocols make it easy to go elsewhere if you like.
It s Not Just Mastodon!
There are plenty of other programs in the Fediverse. And, this is really key, they all interact with each other. You can share photos in Pixelfed (sort of like a federated Instagram) and see them and comment in Mastodon! Some things to point out:
And there are many others.
This blog, for instance, runs WordPress and uses an ActivityPub connector; comments from the Fediverse integrate here.
Find me in the Fediverse
You can look me up: just type in @jgoerzen@floss.social in the search box of any Mastodon instance and click Follow. You can also follow this blog at @jgoerzen@changelog.complete.org.
A new maintenance release, now at version 0.0.18, of RcppAnnoy is now on CRAN. RcppAnnoy is the Rcpp-based R integration of the nifty Annoy library by Erik Bernhardsson. Annoy is a small and lightweight C++ template header library for very fast approximate nearest neighbours originally developed to drive the famous Spotify music discovery algorithm.
This release is follow-up to release 0.0.17 which was made four weeks ago, and which brought the new upstream release 1.17 of Annoy. We now have an updated upstream with a PR by Aaron aiming for improved control of RNG seeding to ensure better reproducibility, along with extended tests and new helpers for RcppAnnoy and Annoy version numbers. The release was once again coordinated with Annoy and James whose BiocNeighbors and uwot packages both consume the Annoy header library shipped here.
Detailed changes follow below.
Changes in version 0.0.18 (2020-12-15)
Small tweaks to threading policy header defines (Dirk closing #65)
Vignette code is again compiled during testing (Aaron Lum and Dirk in #66 addressing #64)
Upstream code (with Aaron's PR) was synchronized once more (Dirk in #67)
A new helper function was added to report the Annoy version (Aaron in #68)
Today, hal-flash package was removed from Debian unstable.
hal-flash is wrapper library for HAL which is not used nowadays.
At that time, HAL was required because Adobe Primetime DRM uses libadobecp, but HAL was already replaced to udev or udisks.
So we need emulation layer for HAL. hal-flash was it for such a purpose.
(At least, hal-flash is required to play hulu.jp movies which uses AdobeDRM)
hal-flash package was already orphaned years ago, and removed from unstable now.
O: hal-flash -- Compatibility library to allow playback of Flash DRM content
Thanks hal-flash package!
It s been over 6 years since my last post comparing 3G data plans in Australia.
I m currently using Aldi Mobile [1]. They have a $15 package which gives 3G of data and unlimited calls and SMS in Australia for 30 days, and a $25 package that gives 20G of data and unlimited international calls to 15 unspecified countries (presumably the US and much of the EU). It s on the Telstra network so has good access all around Australia. I m on the grandfathered $20 per 30 days plan which gives me more than 3G of data (not sure how much but I need more than 3G) while costing less than the current offer of $25.
Unlimited National + Unlimited International SMS + 100mins International talk
In the above table I put Aldi at the top because Telstra has the best network. If you want to use a mobile phone anywhere in Australia then Telstra is the best choice. If you only care about city areas then the other networks are usually good enough. The rest of the services are in order of price, cheapest first. For every service I only mentioned the offerings that are price competitive.
I didn t list the offerings that are larger than these. There are offerings of 300G/year or more, but most people don t need them. Every service in this table has more expensive offerings with more data.
Please inform me in the comments of any services I missed.
After an unexpectedly short discussion on debian-project, we re moving forward with this new initiative. The Debian security team submitted a project proposal requesting some improvements to tracker.debian.org, and since nobody of the security team wants to be paid to implement the project, we have opened a request for bids to find someone to implement this on a contractor basis.
If you can code in Python following test-driven development and know the Django framework, feel free to submit a bid! Ideally you have some experience with the security tracker too but that s not a strong requirement.
About the project
If you haven t read the discussion on debian-project, Freexian is putting aside part of the money collected for Debian LTS to use it to fund generic Debian development projects. The goal is two-fold:
First, the LTS work necessarily had an impact on other Debian teams that made the project possible (security team, DSA, buildd, ftpmasters, debian-www mainly) and we wanted to be able to give back to those teams by funding improvements to their infrastructure.
We have always allowed paid contributors to go beyond just preparing security updates for the LTS release. They can pick tasks that improve the LTS project at large (we try to collect such tasks here: https://salsa.debian.org/lts-team/lts-extra-tasks/-/issues) but they should not go over 25% of their allocated monthly hours so this limits their ability to tackle bigger projects and we would like to be able to tackle bigger projects that can have a meaningful impact on the LTS project and/or Debian in general.
We have tried to formalize a process to follow from project submission up to its implementation in this salsa project: https://salsa.debian.org/freexian-team/project-funding https://salsa.debian.org/freexian-team/project-funding/-/blob/master/Rules-LTS.md
We highly encourage the above-mentioned Debian teams to make proposals. A member of those teams can implement the project and be paid for it. Or they can decide to let someone else implement it (we expect some of the paid LTS contributors to be willing to implement such projects), and just play the reviewer role driving the person doing the work in the right direction. Contrary to Google s Summer of code and other similar projects, we put the focus on the results (and not in recruiting new volunteers), so we expect to work with experienced persons to implement the project. But if the reviewer is happy to be a mentor and spend more time, then it s OK for us too. The reviewer is (usually) not a paid position.
If you re not among those teams, but if you have a project that can have a positive impact on Debian LTS (even if only indirectly in the distant future), feel free to try your chance and to submit a proposal.