log in
This is a partial draft (July 28, 2005 of part 9 of The Emotion Machine by Marvin Minsky. Do not distribute this because it will change. All comments welcome: send them to [email protected] Chapter §9. The Self............................................................................ 1 We need Multiple Models of Ourselves........................................... 4 Multiple Sub-Personalities............................................................... 5 The Sense of Personal Identity......................................................... 6 §9-2. Personality Traits....................................................................... 7 Self-Control...................................................................................... 8 Dumbbell Ideas and Dispositions..................................................... 9 §9-3. Why do we like the idea of a Self?........................................... 12 §9-4. What is Pleasure, and why do we like it?................................. 14 The Pleasure of Exploration........................................................... 16 §9-5. What controls the mind as a whole?.......................................... 17 Mental Bugs and Parasites............................................................. 21 Why don’t we have more bugs than we do?................................... 21 §9-6. Why makes feelings so hard to describe?................................. 22 §9-7. How do you know when you’re feeling a pain?...................... 24 Feelings are hard to describe because they are complex!................ 25 §9-8. The Dignity Of Complexity..................................................... 27 §9-9. Some Sources of Human Resourcefulness.............................. 27 Could be I only sang because the lonely road was long; and now the road and I are gone but not the song. I only spoke the verse to pay for borrowed time: and now the clock and I are broken but not the rhyme. Possibly, the self not being fundamental, eternity breathes only on the incidental.             —Ernesto Galarza, 1905-1984 What makes each human being unique? No other species of animal has such diverse individuals; each person presents a different set of appearances and abilities. Some of those traits are inherited, and some come that person’s experiences—but in every case, each of us ends up with different characteristics. We sometimes use ‘Self’ for the features and traits that distinguish each person from everyone else. However, we also use Self in a sense which implies that all our activities are controlled by powerful creatures inside ourselves, who do our thinking and feeling for us. We call these our Selves or Identities, and sometimes we tend to think of them as like separate persons inside our heads. Daniel Dennett: “A homunculus (from Latin, 'little man') is a miniature adult held to inhabit the brain … who perceives all the inputs to the sense organs and initiates all the commands to the muscles. Any theory that posits such an internal agent risks an infinite regress …
(read more)
Welcome to LWN.net The following subscription-only content has been made available to you by an LWN subscriber. Thousands of subscribers depend on LWN for the best news from the Linux and free software communities. If you enjoy this article, please consider accepting the trial offer on the right. Thank you for visiting LWN.net! Free trial subscription Try LWN for free for 1 month: no payment or credit card required. Activate your trial subscription now and see why thousands of readers subscribe to LWN.net.
(read more)
In the movie “Falling Down,” the character played by Michael Douglas is stranded in a Los Angeles traffic jam. He abandons his car, starts walking with briefcase in hand and ultimately has a mental breakdown. Cargo shippers trying to get their containers through the ports of Los Angeles and Long Beach can relate. The pileup of ships offshore in San Pedro Bay and congestion onshore at the terminals have reached epic proportions. And the situation could become even more maddening in the weeks ahead. 32 container ships at anchor American Shipper interviewed Kip Louttit,
(read more)
Crime 2020 Saw Unprecedented Murder Spike In Major U.S. Cities In late December the Associated Press reported that 2020 was on track to become the deadliest year in U.S. history with the total number of deaths forecast to rise 15 percent compared to 2019, primarily due to the coronavirus pandemic. There were also several other smaller contributory factors, however, including higher death tolls from heart & circulatory diseases as well as from the country's opioid crisis. The U.S. also experienced its most violent year in decades with an unprecedented rise in homicides. The Gun Violence Archive reported that more than 19,000 people died in shootings or firearm-related incidents in 2020, the highest figure in over two decades. New Orleans-based crime analyst Jeff Asher took a closer look at the number of murders in 57 major American cities and he found that the number of offenses grew in 51 of them. He only focused on agencies where data was available and most of them had figures through November or December of 2020. Growth in violent crime varied by city with Seattle seeing a 74 percent spike in homicides between 2019 and 2020 while Chicago and Boston saw their offenses grow 55.5 percent and 54 percent, respectively. Elsewhere, Washington D.C. and Las Vegas saw growth in their murder offences, albeit at a slower pace of less than 20 percent. New York's homicide count went up by nearly 40 percent with Mayor Bill de Blasio stating that the figures should worry all New Yorkers and it has to stop. He attributed the situation "in part, to the coronavirus and to the fact that people are cooped up", according to NPR, adding that "it's certainly related to the fact that the criminal justice system is on pause and that's causing a lot of problems". The rise in homicide has not been confined to cities and Asher says that the problem is also increasingly rural. He told NPR that the numbers for 2020 are by no means final and that the official end of year statistics will tell a startingly grim story. He also said that the U.S. is on course for the largest one-year rise in its murder count ever recorded. Description This chart shows the percentage change in homicides in se
(read more)
This is a pure 6510 assembly program for the Commodore 64 made by Bright Pixel in 2019, because why not. The C64 was a famous 8-bit machine in the 80s and the highest-selling single computer model ever. Its hardware and architecture set it appart from other 8-bit personal computers at the time. Unlike most of the others, the C64 had dedicated advanced MOS chips for graphics and sprites (the VIC-II), sound (the SID), I/O (the CIA), and many others. These chips were not only powerful for the time, but they could perform their tasks autonomously, independently of what the main CPU, a MOS technology 6510 microprocessor, was doing. For instance, the VIC-II could generate interrupts on automatic sprite collisions. The CPU and the other chips also shared common data and memory BUSes. To cope with all these chips inside 64Kbytes of addressable memory, the C64 had something called memory overlay, in which different chips would access different physical data locations for the same memory address. For instance the $D000-$DFFF block could be used for RAM, I/O or access to Character ROM, by the CPU, depending on a $0001 setting. Chips would have to be turned on or off, or instructed to look for data at specific RAM/ROM locations all the time to make the most of the machine as a whole. This was impressive in the 80s, for a relatevily cheap mass-market personal computer. Programming the C64 was more than a lot of fun, it was a form of art. Because of the way all this hardware was packed together, handling the machine meant knowing its memory map and registers by heart, and dominating quite a collection of tricks, some of which weren’t documented at all. What ended up being written for the C64 by the fervent community of developers all over the world went way beyond the imagination of Jack Tramiel. Today, in 2019, the cult is still alive. There are vast groups of developers still writing C64 games and demos, restoring and using old machines, or using emulators. The SID sound chip was so revolutionary that it still drives a community of chiptune artists all over the world. The High Voltage SID Collection has more than 50,000 songs archived and growing. At Bright Pixel, we like to go low-level, and we think that understanding how things work down there, even if we’re talking about a 40 years old machine, is enriching, helps us become better computer engineers and better problem solvers. This is especially important in a time when we’re flooded with hundreds of high-level frameworks that just “do the job.” Until they don’t. This is a simple demo for the C64: It was coded entirely in 6510 assembly. It makes use of the VIC-II graphics, character ROM and sprites. It plays music using the SID chip. Uses raster-based interrupts, perfectly timed. Implements a random number generator. You can download the source code for it in this repository, change it and run it a real machine or an emulator. The code is all annotated, and you can use the issue tracker to ask us questions or make suggestions, we’ll be listening. Setup Assembler We used the Kick Assembler to build the PRG from the source. KA is still maintained up unti
(read more)
Throughout much of 2019, Internet tech giant Google has attempted to portray itself as a public champion of web privacy. Yet, behind the scenes, a very different view of Google is emerging. In August 2019, at approximately the same time that Google was rolling out its much-hyped “Privacy Sandbox” privacy framework, it was also working to block efforts of the World Wide Web Consortium (W3C) standards body to bolster the web privacy features of new technical specifications. Google’s efforts to limit the web privacy powers of PING Most notably, Google was the only member of the W3C to vote “No” to a proposed charter change for the Privacy Interest Group (PING), a working group of the W3C dedicated to web privacy matters. Concerned that web privacy issues were being routinely ignored by many working groups of the W3C, the Privacy Interest Group sought to expand its charter, such that it would have the ability to block any new technical specification that it felt would have negative implications for web privacy. PING, for example, had earlier voiced its concerns about the Internet of Things (IoT), and how new IoT web standards failed to address important web privacy issues. In response to the vote request on changing the PING charter, 24 W3C members voted “Yes” and Google (via its parent company, Alphabet, Inc.) was the only member to vote “No.” Since the W3C is based on a system of consensus, even a single “no” vote was enough to veto the proposal. Some have compared the voting system of the W3C to that of the UN Security Council, where even a single “no” vote from a member like the United States, Russia or China is enough to veto a proposal. Thus, Google basically torpedoed a well-intentioned effort to inject a discussion of web privacy into more of the technical working groups of the W3C with a single vote. The 24-1 vote would seem to clearly indicate that Google is not quite as serious about web privacy matters as it would like the public to believe, and that Google is becoming increasingly isolated in its policy stances. That’s especially the case, given that Google has worked time and time again to preserve the ad tracking powers of web cookies, warning that an eliminated of ubiquitous ad-tracking cookies would mean the end of the web as we know it. And, as might be expected, as soon as word of the 24-1 vote on the status of PING began to leak to the media, Google went into full damage control mode. According to Google, it is simply not the case that they are against PING or against new web privacy measures. Rather, it is the case that Google is against the “sweeping powers” of an “authoritarian review group” that might “cause significant unnecessary chaos in the development of the web platform.” In short, Google says that it is the voice of reason here, fighting against the creeping powers of an “authoritarian” tech body. Google vs. the W3C It now appears that Google is attempting to impose its own web privacy ideas on the W3C, and will simply use its equivalent of a “veto” to block any efforts to introduce web privacy measures that might be det
(read more)
We’re a small (~25) but quickly growing team that’s passionate about our mission of reimagining healthcare access for those in need.We come from organizations like McKinsey, the Clinton Foundation, and Stanford Biology. We like to work hard, solve tough problems, and are determined to improve healthcare access for families who have trouble affording the medications they need to stay healthy.We are currently hiring for both our Palo Alto and Atlanta Offices as well as some fully remote roles. We have opportunities for senior software developers, sales, customer success, operations managers, and communication managers.If you want to work in health-care, love mission-driven work, and thriv
(read more)
It’s been a busy holiday and New Year’s season at Purism as we continue to ship out Librem 5s to backers each week. We know for those who haven’t received their Librem 5 yet, what they most want to know is when their Librem 5 will arrive. In summary, we will be providing shipping estimates within the next week to the backers within the original crowdfunding campaign (orders through October 2017), but not all backers yet, based on our confidence in the estimates. The rest of this post will explain what is going into our shipping estimates, and why we can’t yet provide shipping estimates to every backer.When we published the shipping FAQ we explained some of the factors in the shipping
(read more)
Productivity tool to launch everything (e.g. switch the next song, connect bluetooth device, set a timer, etc.) so you can stay focused on your current task. ❤️   Open source 🤖   Native 🔌   Plugin system ⌨️   Custom hotkeys ⬆️   Sort options by frequency of use 📦   Small size (less than 20mb) Installation Installation instructions and alternatives are available on https://spotter-application.github.io/getspotterapp Hotkeys Default hotkey to run the app double shift Plugins Bluetooth b Google g (will get data from clipboard) g "your query" System commands sleep shutdown restart logout Kill applications k
(read more)
Virtual tactile sensations projected onto your handsRead moreAttach and amazeSTRATOS InspireEffortless to install, Ultraleap’s plug-and-play haptic module is the smart way to integrate virtual touch – and take your products to the next level. Designed for quick deployment and safety tested for public use.Discover endless possibilitiesSTRATOS ExploreIt’s time to explore what’s possible. STRATOS Explore is a flexible, scalable high-end haptics development kit, built for innovation.Multiple ultrasound speakers3. AlgorithmsEach individual speaker is triggered at a different time.Using our patented algorithms, the ultrasound speakers are triggered with very specific time differences. Thes
(read more)
At first glance, they might be identical. Two orange lozenges leaning out of shards of blue. Two paintings purportedly by the same artist. But look a little closer, and you’ll start to notice differences. The one on the left seems clunkier, its gradations in colour less subtle. The palette seems reduced, the brushwork less varied and interesting. The one on the right is Painterly Architectonic (1917) by Liubov Popova, a cubist and suprematist painter who lived a brief and active life in early 20th-century Moscow. The one on the left is a fake. The paintings have been on show in ‘Russian Avant-Garde at the Museum Ludwig: Original and Fake – Questions, Research, Explanations’
(read more)
Lakota America: A New History of Indigenous Power by Pekka Hämäläinen. Yale University Press, 2019. Hardcover, 544 pages, $35. Revivewed by Santi Ruiz On this year’s Indigenous People’s Day I encountered a curious phenomenon. My social circles are largely college-educated, left-leaning Gen Zers and Millennials, whom I assumed would be most likely to celebrate indigenous people as an underrepresented and integral part of the American fabric. Opening Twitter and Instagram, however, the zone was flooded with variations on the pastel infographic aesthetic that showcases one’s excellent politics. One wag’s tweet captured the dynamic: “hope everyone had a good time partaking
(read more)
One of the best things about NixOS is the fact that it's so easy to do configuration management using it. The Nix store (where all your packages live) has a huge flaw for secret management though: everything in the Nix store is globally readable. This means that anyone logged into or running code on the system could read any secret in the Nix store without any limits. This is sub-optimal if your goal is to keep secret values secret. There have been a few approaches to this over the years, but I want to describe how I'm doing it. Here are my goals and implementation for this setup and how a few other secret management strategies don't quite pan out. At a high level I have these goals: It should be trivial to declare new secrets Secrets should never be globally readable in any useful form If I restart the machine, I should not need to take manual human action to ensure all of the services come back online GPG should be avoided at all costs As a side goal being able to roll back secret changes would also be nice. The two biggest tools that offer a way to help with secret management on NixOS that come to mind are NixOps and Morph. NixOps is a tool that helps administrators operate NixOS across multiple servers at once. I use NixOps extensively in my own setup. It calls deployment secrets "keys" and they are documented here. At a high level they are declared like this: deployment.keys.example = { text = "this is a super sekrit value :)"; user = "example"; group = "keys"; permissions = "0400"; }; This will create a new secret in /run/keys that will contain our super secret value. Mara Wait, isn't /run an ephemeral filesystem? What happens when the system reboots? Let's make an example system and find out! So let's say we have that example secret from earlier and want to use it in a job. The job definition could look something like this: # create a service-specific user users.users.example.isSystemUser = true; # without this group the secret can't be read users.users.example.extraGroups = [
(read more)
Rust has taken the programming language world by storm. Since its 1.0 release in 2015, it has been one of the most loved programming languages with a loyal following of developers and contributors.To learn why this language is favored so much between developers, we have started a new series on Rust in production. In it, we’ll interview people that have used Rust for significant projects: apps, services, startup MVPs, and others.For the first installment of the series, we interview Michael Fey, VP of Engineering at 1Password. Read further to find out why they chose Rust for their product, the benefits of Rust for security-centered applications, and what cool libraries you should look into if you’re developing something similar in Rust.Could you tell us a little about your company and your role there?1Password is a password manager trusted by millions of people and 70,000 businesses to secure their sensitive data. It remembers all your passwords so you don’t have to, and comes with apps for all major browsers, plus desktop and mobile.I am the VP of Engineering for Client Apps here at 1Password. If you have ever had the pleasure to use 1Password on your Mac, Windows PC, iPhone, iPad, Android phone, or tablet, or in your browser, then you’ve been lucky enough to use something
(read more)
Etymologies of names are interesting. 'Brandon' has no single etymology; the name and close variants arise independently in multiple languages, sounding almost exactly the same and eventually in time being treated as equivalent but having no common meaning: Prince, Raven or Crow, Broom Hill, Sword. They also get appropriated -- the Irish forms of the name are not originally Irish, for instance; it was a foreign name that became popular. I tend to think of my name as broadly Welsh, but strictly speaking, in my case the name is derived from a surname, which means that in lineage it's probably Anglo-Saxon (Broom Hill, and thus the same as many of the towns and cities called 'Brandon' in the English-speaking world), or French (in which case either Sword or Firebrand).I've always thought it interesting that we translate Native American names literally rather than latinizing or anglicizing them. Sometimes it's a simplified form, of course. Sitting Bull was really more like Thathangka Iyotake,  which apparently means something like Buffalo Watching the Herd. We tend to take Ancient Greek names straight, but they were always given to be meaningful (playing on the meaning of names was very common), so we could often do the same thing with them that we do with Native American names. But you definitely get a different sense of the Iliad (and one that's not really wrong) if you think of it as Chief Might of the People and Chief Great Leader drawing on their alliances with other chiefs to reclaim Chief Might of the People's wife, who had been abducted by Strong Defender, the son of Chief Courageous. A few notable Greek names and what we would probably try to capture if we translated them by etymology rather than just latinizing and anglicizing them. Of course, all of these are rough guesses of varying quality, some purely folk etymologies and some scholarly estimations. Heracles means Glory of Hera, a meaning that plays a significant role in his legend, albeit ironically. Jason probably means Healer and Medea means Cunning. Menelaus means something like Might of the People; Agamemnon means Great Leader. Hector means Holds Fast or Steadfast, Ajax means Earth. Many
(read more)
We’re all familiar by now with Right-NIMBYs — conservatives who block transit and housing development in order to keep poor people and minorities out of their quiet white-flight suburban neighborhoods. These are still the most common kind, given that Republicans tend to value low-density communities while Democrats tend to value denser, more walkable places. But liberals can be NIMBYs as well, as any resident of a deep-blue state or city well knows. But leftists can be NIMBYs as well (and remember, leftists and liberals are generally different people). In various cities, concerns over gentrification, environmental preservation, and profits for private developers have hardened into a sort of Left-NIMBY Canon — a standardized, off-the-shelf package of beliefs, attitudes, and arguments that are easy to deploy in opposition to nearly any proposed housing or transit project. The Left-Nimby Canon goes something like this:Allowing private developers to build market-rate housing results in the construction of “luxury” housing instead of “affordable” housing.In addition to lining the pockets of developers, this “luxury” housing raises rents in an area, leading to gentrification and displacement.People who argue for upzoning, easier permitting, or other policies to allow market-rate housing development are shills for developers, who don’t actually care about housing the poor or driving down rents. These shills use the discredited economic theory of “supply and demand” to trick the public into thinking that allowing market-rate housing construction reduces rents.Only rent control, or government-operated social housing, can reduce rents. I’m trying to summarize rather than straw-man this package of ideas. I think it’s mostly wrong, but it’s worth engaging rather than dismissing. Nathan J. Robinson of Current Affairs advances the Left-Nimby Canon in a recent piece entitled “The only thing worse than a NIMBY is a YIMBY”, in which he argues for a “radically democratic preservationism”. It’s a good illustration of how Left-NIMBYs think, but you shouldn’t read it without getting the other side of the story. Market-rate housing and rentsN
(read more)
January 17, 2021 | 30 min. read Urwhat? Given the events of the first few weeks of 2021 and the ensuing discourse regarding online communities, decentralized platforms have become something of a hot topic. None of these are mainstream in any sense outside of the privacy/FOSS/developer community, but some of the more popular ones include Mastodon, Pleroma, and PeerTube. All of these have in common the fact that they are part of the "fediverse", a community of self-hosted platforms that can interact with each other via the ActivityPub protocol. Via ActivityPub, you can see PeerTube videos from Mastodon, people on different Pleroma servers can follow each other, your self-hosted blog can allow comments via Mas
(read more)
Translations 🇨🇳 Chinese version 🇧🇷 Portuguese version 🇯🇵 Japanesese version 🇷🇺 Russian version Table of Contents Introduction Learning Lua Existing tutorials for writing Lua in Neovim Companion plugins Where to put Lua files init.lua Other Lua files Caveats Tips A note about packages Using Lua from Vimscript :lua :luado :luafile luafile vs require(): luaeval() v:lua Caveats Tips The vim namespace Tips Using Vimscript from Lua vim.api.nvim_eval() Caveats vim.api.nvim_exec() vim.api.nvim_command() Tips vim.api.nvim_replace_termcodes() Managing vim options Using api functions Using meta-accessors Caveats Managing vim internal variables Using api functions Using meta-accessors Caveats Calling Vimscript f
(read more)
Skip to content Today is the day I discovered Sturgeon’s law: Ninety percent of everything is crap.Sturgeon’s law I like this for a lot of reasons. But most of all, I like it as a nudge to try harder to enjoy things. Think you hate poetry? Roller coasters? Banjo music? Thai food? Maybe you haven’t discovered the good 10% yet. Keep looking. How about work? Think QA engineers are useless? Code review is a waste of time? Managers hurt more than they help? Maybe you’ve been stuck with the crap 90% of them. Keep looking. Then there’s relationships. Think there’s no one out there who can make you happy? Maybe you haven’t climbed out of your 90% of crappy relationships yet. Keep looking. It reminds me of a quote I read recently: Keep your identity small. “I’m not the kind of person who does things like that” is not an explanation, it’s a trap. It prevents nerds from working out and men from dancing. Conor Barnes Remember: strong opinions, loosely held. If you think you hate something, hold that opinion loosely by putting it to the test. Try to prove it false. Don’t be so quick to accept that something is not
(read more)
Pebble smartwatch was introduced in 2012 on Kickstarter. The Bluetooth smartwatch came with an E-Paper display, would connect to your Android smartphone or iPhone to receive notifications or other info, and the company also released an SDK for further customization. It was quite popular at the time having sold over one million units, the Pebble Time followed in 2015 with a color display, as well as other models. But despite selling millions of watches, the company folded in 2016, and the Pebble was discontinued after the intellectual property was purchased by Fitbit.Watchy is a new smartwatch that reminds me of the original pebble. It is based on ESP32 WiFi & Bluetooth SoC, equipped with a 1.54-inch E-Paper display with 200×200 resolution, and the usual accelerometer for activity tracking and gesture detection.Watchy key features and specifications:SIP – Espressif Systems ESP32-PICO-D4 system-in-package with ESP32 dual-core processor with Bluetooth LE 4.2/5.x and WiFi 4 connectivity, 4MB SPI flashDisplay – 1.54-inch E-Paper display with 200×200 resolution and wide viewing angleUSB – 1x Micro USB port for power and programmingSensor – BMA423 3-Axis accelerometer for gesture detection, activity trackingMisc – DS3231 Real-Time Clock, vibration motor, 4x tactile buttonsBattery – 200 mAh battery good for 5-7 days for timekeeping (no WiFi), or 2 to 3 days with a WiFi connection.OSHW certification – US000936Watchy sells as a kit with a fully assembled Watchy PCB, the E-Paper display, a 200mAh Battery, two adhesive tapes, and a watch strap.The smartwatch is open-source hardware & software with documentation, KiCad hardware design files, 3D Case Designs (STLs), and
(read more)
CareRev (YC S16) Is Hiring Product Managers – Remote USA 59 minutes ago | hide We are looking for Product Managers! CareRev is a SaaS platform and Marketplace for Healthcare Businesses to post extra available/emergency shifts for Nurses, CNAs, MAs, and Techs. With each team you will be part of a team of engineers and designers that can execute on the products you spearhead the definition of.We are looking for Product Managers with 3+ years experience to dig in specifically on: Facility side users needs. For this role you'll communicate daily with Facility users of our platform, not the executive buyers. You will gain a deep understanding for the problems these users face and build amazing solutions with the CareRev platform for them to get care to the people who need it. Internal business teams. CareRev has Account Managers, Customer Success, and Professional Recruiters that have continuous conversations with users of the platform. Working together with them you will build out product to best improve their productivity with the CareRev platform, and update the corresponding core platform as needed to integrate/automate what provides the most value/productivity boost. Healthcare Professional Platform Onboarding. After professionals are interviewed, vetted and qualified to work in certain positions professionals have to complete a dizzying array of prerequisites to work at various healthcare facilities. You will
(read more)
I've been contemplating ways to build more resilient web applications. One consistent issue that seems to crop up in my explorations is that we have no way to execute JavaScript at a given priority. We can write asynchronous code, but this doesn't provide a general-purpose resiliency primitive. Un-yield-y It is possible to write code that "yields" to allow other code to execute. Writing everything as async functions can accomplish this in specific cases, though only promise chains can be interrupted and it lacks any form of scheduling. This technique re
(read more)
Last month we reported that a huge vertical farming operation near Copenhagen in Denmark recently completed its first harvest. That setup uses hydroponics, but the veggies grown in Vertical Field urban farming pods take root in real soil.Traditional agricultural farming involves the use of a lot of land and resources to grow crops, and then even more resources to harvest and transport the goods – sometimes thousands of miles – to where consumers can get to them.Contr
(read more)
Jai is a high-level programming language developed by Jonathan Blow, creator of indie games Braid and, most recently, The Witness. It is an imperative static/strongly typed C-style language, but with a variety of modern language features that C lacks. Blow began work on Jai in late September 2014. It is still in development and as of yet is unavailable to the general public. Blow developed it with an eye towards video games, but in fact it’s a general purpose programming language that could be used for any task. Disclaimer: I have no association with Jon Blow. As of this writing there
(read more)
No evidence that vitamin D is able to prevent or affect the severity of COVID-19 in individuals with European ancestry: a Mendelian randomisation study of open data http://orcid.org/0000-0002-3054-838XHasnat A Amin1 and http://orcid.org/0000-0003-2469-5516Fotios Drenos1,2 1 Department of Life Sciences, Brunel University London, Uxbridge, UK 2 Institute of Cardiovascular Sciences, UCL, London, UK Correspondence to Dr Fotios Drenos, Department of Life Sciences, Brunel University London, Uxbridge, UB8 3PH, UK; fotios.dr
(read more)
Ask HN: Anyone know any funny programming jokes? 101 points by arthurcolle 8 hours ago | hide | past | favorite | 117 comments Can be super esoteric or super generalized, I love it when I get them, or when I just learn something new. (Not my joke)At a recent real-time Java conference, the participants were given an awkward question to answer: "If you had just boarded an airliner and discovered that your team of programmers had been responsible for the flight control software, how many of you would disembark immediately?" Among the forest of raised hands only one man sat motionless. When asked what he would do, he replied that he would be quite content
(read more)
Persistent Memory is a new memory technology that allows byte-addressability at DRAM-like access speed and provides disk-like persistence. Applications using persistent memory benefit in a number of ways such as seeing improved performance and faster restart times. More details on this technology can be found at pmem.io. This is a proposal to add native support for programming persistent memory in Go. A detailed design of our approach to add this support is described in our 2020 USENIX ATC paper go-pmem. An implementation of the above design based on Go 1.15 release is available here. In summary, adding support for natively programming persistent memory requires following capabilities to be added to Go : Manage a garbage-collected persistent memory heap Provide an interface fo
(read more)
Janet Yellen on Tuesday expressed concern about cryptocurrencies like Bitcoin, whose price has surged. Andrew Harnik/ASSOCIATED PRESS Janet Yellen on Tuesday suggested lawmakers "curtail" the use of Bitcoin amid terrorism concerns.Yellen said cryptocurrency transactions were used "mainly for illicit financing."It was the latest sign that lawmakers and regulators could get tough on Bitcoin and Ethereum.Sign up here for our daily newsletter, 10 Things Before the Opening Bell.Janet Yellen, President-elect Joe Biden's nominee for treasury secretary, suggested on Tuesday that lawmakers "curtail" the use of cryptocurrencies such as bitcoin over concerns that they are "mainly" used for illegal activities.There has been a surge in interest in bitcoin; its price has soared by about 300%
(read more)
Distributed search engines using BitTorrent and SQLite Distributed sites have gained much attention lately with systems such as ZeroNet and IPFS, which seem to improve on older systems like Freenet. Building search engines on top of these distributed systems is not quite feasible yet as users need to download the entire site database (usually several hundreds of gigabytes large) before running queries against it. TorrentNet allows you to build distributed search engines by leveraging the BitTorrent network and the SQLite database. Users do not have to wait until the site is fully downloaded before they can query it. How? Site owners create an SQLite database (.db file) and create a torrent from this file. They then proceed to seed this torrent -- just li
(read more)
Most task managers make two assumptions. Do you make them too? A task manager needs to remember all of your tasks (Would you buy a task manager that lost data?) All tasks can use a similar creation workflow (You hit the ‘create issue’ button, and fill in some fields. Simple, obvious, how could it be better?) It’s not obvious that they’re wrong—they actually seem useful. But both at work, and at home, making these assumptions will reduce your effectiveness. And if you have trouble context-switching, procrastinate tasks, or have an ever-growing task backlog that looms over your head, these assumptions have likely caused you unnecessary pain. Here’s how they hurt us, and how to stop it from happening. Permanent tasks cause fatigue Before starting Tandem, my manager Tim previous
(read more)
After 4 months of waiting, that is the response I got from Widevine, Google’s DRM for web browsers, regarding a license agreement. For the last 2 years I’ve been working on a web browser that now cannot be completed because Google, the creators of the open source browser Chrome, won’t allow DRM in an open source project.The browser I’m building, called Metastream, is an Electron-based (Chromium derived), MIT-licensed browser hosted on GitHub. Its main feature is the ability to playback videos on the web, synchronized with other peers. Each client runs its own instance of the Metastream browser and transmits playback information to keep them in sync—no audio or video content is sent.If someone is creating a browser that wants to playback media, they’ll soon discover the requirem
(read more)
Since 2007, artist Walead Beshty has been cleverly using FedEx’s shipping infrastructure to create a series of artworks. He constructs glass objects that fit exactly into FedEx’s shipping boxes and then ships them to galleries and museums without any protection against damage. Any cracks or breaks in the glass became part of the work upon display at its destination. According this interview, part of what interested Beshty about doing this project related to the proprietary sizes of FedEx’s boxes: As for the corporate dimension, I was aware that standard FedEx boxes are SSCC coded (serial shipping container code), a code that is held by FedEx and excludes other shippers from registering a box with the same dimensions. In other words, the size of an official FedEx box, not j
(read more)
I like to post new articles and solutions when I think they are ready. Production tested and stable. Well thought and tested … or at least trying to make things as good as possible in the available time window. Perfectionism definitely does not help making often articles on the blog. Today’s solution is not perfect but I will ‘ship it’ anyway because good and done is better then perfect. I wanted to rework it so many times that I stopped counting … and I really would like to continue the series – thus I have made a conscious decision to finally release it and hope that maybe someone else will have better ideas to make it better. I really wanted to provide pixel perfect solution with as much screen space used as possible but to deliver it as it is I tested it only on the res
(read more)
This purpose of this article is not to rate each web browser in a vacuum, like articles on this website that focus on one specific web browser, but rather to compare all of the web browsers that have been rated on this website against each other. This is a ranking that is based on how much Privacy a browser offers by default, as well as, how much privacy can be gained by configuring it. Top Tier — Best Privacy These are all browsers that require a minimal amount of configuration and can achieve the required level of privacy needed to browse the modern web- compatibility with a comprehensive suite of content-blocking extensions that can block spyware providers correctly and fully. Iridium and Pale Moon both ar
(read more)
Apple Right from Apple’s $3 billion purchase of Beats in 2014, the company, alongside increasingly less amused Beats executives, has had to put up with repeated questions on when it was going to release some proper, serious Apple headphones. Then the success of AirPods only fuelled speculation that an over-ear set of cans had to be coming. Finally, all guessing ended in September last year as Jon Prosser leaked images of the then unannounced AirPods Max headphones. By the time Apple unveiled AirPods Max in December, the only thing remaining a genuine surprise was the price: an exceedingly punchy £549.Apple sent out review units that same month, and many in
(read more)
The release of Apple Silicon-based Macs at the end of last year generated a flurry of news coverage and some surprises at the machine’s performance. This post details some background information on the experience of porting Firefox to run natively on these CPUs. We’ll start with some background on the Mac transition and give an overview of Firefox internals that needed to know about the new architecture, before moving on to the concept of Universal Binaries. We’ll then explain how DRM/EME works on the new platform, talk about our experience with macOS Big Sur, and discuss various updater problems we had to deal with. We’ll conclude with the release and an overview of various other improvements that are in the pipeline. Apple Silicon Approaching Speculation that Apple would sw
(read more)
See a different side to your family and friends Mon - Sat Take time each day to reflect intentionally and slow down Mon - Sat Once you reflect go live your life, there are no feeds to check Sun Reflections are revealed once a week on Sunday Sun See your friends' week as they lived it, in their own words Previous Next
(read more)
In computer programming, Flow-Based Programming (FBP) is a programming paradigm, discovered/invented by J. Paul Rodker Morrison in the late '60s, that uses a "data processing factory" metaphor for designing and building applications. FBP defines applications as networks of "black box" processes, which communicate via data chunks (called Information Packets) travelling across predefined connections (think "conveyor belts"), where the connections are specified externally to the processes. These black box processes can be reconnected endlessly to form different applications without having to be changed internally. FBP is thus naturally component-oriented. FBP is a special case of dataflow programming characterized by asynchronous, concurrent processes "under the covers", Information Packets with defined lifetimes, named ports, "bounded buffer" connections, and definition of connections external to the components - it has been found to support improved development time and maintainability, reusability, rapid prototyping, simulation, improved performance, and good communication among developers, maintenance staff, users, systems people, and management - not to mention that FBP naturally takes advantage of multiple cores... without the programmer having to struggle with the intricacies of multitasking! FBP exhibits "data coupling", described in the article on coupling as the loosest type of coupling between components. The concept of loose coupling is in turn related to that of service-oriented architectures, and FBP fits a number of the criteria for such an architecture, albeit at a more fine-grained level
(read more)
Hey everyone! My name is Laila and with my co-founder Iliana I’m building Manara (https://www.manara.tech/). We support software engineers in the Arab region to get great jobs at tech companies worldwide. These companies appreciate being connected to skilled talent that is diverse and inclusive (50% of our engineers are women).I grew up in a refugee camp in Gaza. My dream was to become a Silicon Valley software engineer. Eventually I hacked my way there successfully, becoming a software engineer at Nvidia. I like to joke that the hardest part wasn’t escaping Gaza in the middle of the 2014 war, but rather, my first interviews... which I totally bombed. ;)Once I got to Silicon Valley, I was surprised at the lack of women. In Gaza, more women study computer science than men! I was also surprised to learn how hard it was for companies in Silicon Valley to attract the talent we needed. During interviews with candidates I’d often think, “I wish I could hire my friends in Gaza. They’d be great.”That’s when I re-connected with Iliana. She and I had met in Gaza when she was running Gaza Sky Geeks (GSG), the first startup accelerator in Gaza. Her work was widely covered and has a few threads on HN including https://news.ycombinator.com/item?id=11858963. Iliana asked me “How can we produce more success stories like yours?”I told her that engineers in the Arab region don't lack talent, but they lack other ingredients. They're mostly not aware of opportunities outside their region, and even if they are aware, they think you have to be a genius to work at a company like Google. Also, they have no idea what sorts of resumes recruiters want to see and don't have brand names to put on them. They don't have referral networks to get their foot in the door. And they're completely unprepared for the style of interviews that tech companies go for. As we talked further, it became clear that all of these problems would be fixable with the right kind of coaching and support, and that bringing this growing talent pool to the global job marketplace would benefit both sides (accelerating the success of global companies, while redistributing wealth to the region).We develo
(read more)
Since today marks one year since the release of Lenna’s Inception on Steam, it felt like a good time to look back over the game’s development and release. If you haven’t played Lenna’s Inception yet, feel free to read on without fear of spoilers. And if you don’t have Lenna’s Inception but like the sound of what you read here, you should know that both the game and the soundtrack are 50% off for today, and today only (edit: no longer)! It’s hard not to be quite critical of past mistakes, but I don’t really have many major regrets. Over the period of time covered here, I learned a ton, made new friends, formed connections, and built up a new career. Making and releasing this game was definitely worthwhile. In case you’ve come here from elsewhere and aren’t already acquainted with the game, Lenna’s Inception is a sort of metafictional, glitch-themed take on the Zelda series. After the hero dies in a glitch-related accident early in the game, the titular character Lenna, a schoolteacher who just wants to make sure her students are safe, is forced to take up the mantle. The game has multiple endings, procedurally generated maps, local co-op, tons of puns, and a set of challenge modes. We released the game on the 17th of January, 2020.
(read more)
You’re a software engineering leader, and you’re great at your job. You know that the optimal path for software development lies in figuring out which components of your design to implement from scratch and which have already been implemented by specialists and can be reused. You also know that these aren’t decisions that you can only make once – you have to keep reevaluating based on environment changes and the needs of new products. Authentication is one of those components that you deal with all the time. Auth is a necessary part of any software product, but how you implement auth is not necessarily always the same. Careful consideration is needed, because your decision to outsource will not only impact speed of development, but also long-term product maintenance – you don’t want to slow down time to market because you re-implemented an entire auth system unnecessarily, but you also don’t want to use an auth system that is going to cause problems down the road. So what are the primary considerations when making your decision? Speed to market This is the most obvious consideration. Depending on the features you need, it could literally take months to implement auth in-house, whereas it could take less than a day to incorporate an outsourced solution. You could say “but what if we only need a bare-bones implementation? Some salted hashes in a database and we’re good to go!” That’s a totally valid point, and if you don’t anticipate needing sophisticated auth features then your best bet might be to do a quick in-house implementation and move on. However, time and time again I’ve seen product developers underestimate the sophistication of features that will be required when their userbases grow. Most of the time development organizations then fall prey to the sunk costs fallacy and double down on augmenting their in-house solution, even when it may be more efficient to abandon the home-grown effort and replace it with an outsourced solution. This will cause huge issues for maintainability, which I’ll talk about further below. Consequences of an auth breach Planning for the worst possible case can p
(read more)
First, an example title This is Dumbdown. The keyword for title is title. subtitle Dumbdown compiles to html. paragraph Dumbdown is an alternative to Markdown. paragraph Blank lines get turned into link https://treenotation.org/ It is built on Tree Notation code alert(`The keyword for code blocks is "code"`) list item Dumbdown supports lists item For now the keyword for an item is "item" item This is a very early version item Dumbdown is released to the public domain item If you want to make it better, please do! Try it Now The original prototype: https://jtree.treenotation.org/designer/#standard%20dumbdown An actual v1 spec is now in the discussion phase. Why Dumbdown? Do you want a markup language that doesn't require memorizing esoteric symbols but uses words instead? Do you want a markup langauge where you not only don't have to remember which order brackets go in— is it ()[] or —but that doesn't use brackets at all?! Do you want a markup language that is extensible, so you can store your own custom config data right alongside your content? Do you want a markup language where it is super easy to embed any kind of data or code without doing adding escape characters? Do you want a markup language that you could write your own parser for without having to learn complex parsing techniques? If you answered YES to the questions above, then Dumbdown is for you?! Features Keywords instead of key characters. ie "title" instead of "#". No brackets. Links are just "link", or type the full url for inline links. Stick your own custom config data in. Every file parses to a map. i.e. "published true". No need to escape characters for snippets. Just indent blocks. Very easy to write your own parsers for. It's just Tree Notation. Project Status Discussing spec for v1. Note: this Readme.md file is written in markdown, but if someone wants to work on Dumbdown syntax highlighting for GitHub, once we have a spec, that would be great! Issue is here: https://github.com/treenotation/dumbdown/issues/1 Release Notes Version 0.2 01/20/2021 -- Let's make this a real thing. Readme and GitHub project started. Version 0.1 09/01/2019 --
(read more)
mebm is a browser based video editor that supports animation of images and text overlays. The animation is done with key-frames (denoted in blue on the timeline) and linear interpolation. The design values simplicity and rudimentary functionality over a full feature set. Audio is not yet supported, but is planned. >>> link <<< timeline allow extending beyond current max time (medium) split at play head (medium) mouseover preview safari fix (hard) file management error on bad type (easy) animated .gif support editing undo (hard) audio (hard) face
(read more)
How much does Beeper cost?Beeper is a subscription service with a $10 monthly fee.Can I self host?We decided to open source all our bridges to enable you to audit how Beeper connects to each chat network and verify the security of your data. The side effect is that you may self host if you prefer. There are two options for self hosting Beeper:On-premises, managed by Beeper: run our install script on your amd64 server or 4gb Raspberry Pi and run all bridges locally on your own hardware. This option requires a Beeper subscription.Self-host the full stack: The simplest and free way to self-host t
(read more)
We are a small group of friendly humans working on an open source project to make informal video calls more fun and dynamic. The idea emerged during the first SARS-CoV-2 shutdown when some of us started a virtual bar. We found informal group conversations restricting and hierarchical, as the majority of tools are created to enable (corporate) meeting culture. Where were the dynamics of a self-organizing crowd hanging out at one big table together? The big table, where so many jokes, comforting talks, discussions, and encounters happen. Where utopias and ideas would emerge?It’s our goal to find interaction patterns that enable informal, unmoderated video calls. It’s our hypothesis, that we can prototype these interactions based on spatialized sound.This project is open source, based on the jitsi API, and funded by the Prototype Fund from September 2020 to February 2021. Our demo is a super early prototype so you should know: Chrome as the browser works best, Mobile does not really work, if stuff is weird please reload. We have no idea how many people can join the demo at the same time - let’s find out.Wash your hands, wear a mask, and mingle in virtual spaces <3 We are a small group of friendly humans working on an open source project to make informal video calls more fun and dynamic. The idea em
(read more)
Jan 11, 2021 by brian d foy Now I want to grab the entire list of O’Reilly cover animals, and Mojolicious is going to help me do that. O’Reilly Media, who publishes most of my books, is distinctively known by the animals it chooses for their covers. Edie Freedman explains how she came up with the well-known design in A short history of the O’Reilly animals. I think I first saw this design on the cover of sed & awk; those Slender Lorises (Lori?) are a bit creepy, but not creepy enough to keep me away from the command line. Not that a Perler should talk since Larry Wall choose a camel: it’s ugly but it gets the job done under tough conditions. And, for own of my own books, the alpaca is a bit cuter, but they are nasty beasts as well. O’Reilly lists almost all of the animals from their covers, even if “animals” is a bit of a loose term that encompasses “Catholic Priests” (Ethics of Big Data) or “Soldiers or rangers, with rifles” (SELinux). You can page through that list 20 results at a time, or search it. But, as with most lists I see online, I want to grab the entire list at once. Show me a paginated resources and I’ll show you the program I automated to unpaginate it. Scraping a bunch of pages is no problem for Perl, especially with Mojolicious (as I write about in Mojo Web Clients). I whipped up a quick script and soon had all of the animals in a JSON file. There’s nothing particularly fancy in my programming, although I do use Mojo::Promise so I can make the requests c
(read more)
HARRISBURG — A woman accused of entering the U.S. Capitol illegally during the Jan. 6 riot will likely be charged with stealing a computer from the office of House Speaker Nancy Pelosi, a federal prosecutor said in court Tuesday.U.S. Magistrate Judge Martin Carlson in Harrisburg said he will consider bail and that he plans to conduct a preliminary hearing on Thursday in the case of Riley June Williams.Williams is charged with trespassing as well as violent entry of the Capitol and disorderly conduct, both misdemeanors, and is being held in the county jail in Harrisburg. She spoke only briefly during the half-hour proceeding and was represented by a public defender.Federal authorities are preparing two new felony charges of stealing government property and aiding and abetting against the Harrisburg resident, Assistant U.S. Attorney Christian T. Haugsby told Carlson. Those charges have not yet been approved by a judge in Washington, he said.The FBI has said a witness who claims to be an ex of Williams’ said friends showed that person a video of Williams taking a laptop computer or hard drive from Pelosi’s office during the breach of the U.S. Capitol by supporters of President Donald Trump.The tipster alleged that Williams intended to send the device to a friend in Russia who planned to sell it to that country’s foreign intelligence service,
(read more)
What prepares men for totalitarian domination in the non-totalitarian world is the fact that loneliness, once a borderline experience usually suffered in certain marginal social conditions like old age, has become an everyday experience …– From The Origins of Totalitarianism (1951) by Hannah Arendt ‘Please write regularly, or otherwise I am going to die out here.’ Hannah Arendt didn’t usually begin letters to her husband this way, but in the spring of 1955 she found herself alone in a ‘wilderness’. After the publication of The Origins of Totalitarianism, she was invited to be a visiting lecturer at the University of California, Berkeley. She didn’t like the intellectual atmosphere. Her colleagues lacked a sense of humour, and the cloud of McCarthyism hung over social life. She was told there would be 30 students in her undergraduate classes: there were 120, in each. She hated being on stage lecturing every day: ‘I simply can’t be exposed to the public five times a week – in other words, never get out of the public eye. I feel as if I have to go around looking for myself.’ The one oasis she found was in a dockworker-turned-philosopher from San Francisco, Eric Hoffer – but she wasn’t sure about him either: she told her friend Karl Jaspers that Hoffer was ‘the best thing this country has to offer’; she told her husband Heinrich Blücher that Hoffer was ‘very charming, but not bright’. Arendt was no stranger to bouts of loneliness. From an early age, she had a keen sense that she was different, an outsider, a pariah, and often preferred to be on her own. Her father died of syphilis when she was seven; she faked all manner of illnesses to avoid going to school as a child so she could stay at home; her first husband left her in Berlin after the burning of the Reichstag; she was stateless for nearly 20 years. But, as Arendt knew, loneliness is a part of the human condition. Everybody feels lonely from time to time. Writing on loneliness often falls into one of two camps: the overindulgent memoir, or the rational medicalisation that treats loneliness as something to be cured. Both approaches leave the reader a bit cold. One wallows in loneliness, while the other tries to do away with it altogether. And this is in part because loneliness is so difficult to communicate. As soon as we begin to talk about loneliness, we transform one of the most deeply felt human experiences into an object of contemplation, and a subject of reason. Language fails to capture loneliness because loneliness is a universal term that applies to a particular experience. Everybody experiences loneliness, but they experience it differently. As a word, ‘loneliness’ is relatively new to the English language. One of the first uses was in William Shakespeare’s tragedy Hamlet, which was written around 1600. Polonius beseeches Ophelia: ‘Read on this book, that show of such an exercise may colour your loneliness.’ (He is counselling her to read from a prayer book, so no one will be suspicious of her being alone – here the connotation is of not being with others rather than any feeling of wishing that she was.) Throughout the 16th century
(read more)
This post highlights new, simplified and low-/no-cost options for deploying RHEL. These are the first of many new programs. To immediately go to the program that interests you: No-cost RHEL for small production workloads No-cost RHEL for customer development teams On December 8, 2020, Red Hat announced a major change to the enterprise Linux ecosystem: Red Hat will begin shifting our work from CentOS Linux to CentOS Stream on December 31, 2021. We and the CentOS Project governing board believe that CentOS Stream represents the best way to further drive Linux innovation. It will give everyone in the broader ecosystem community, including open source developers, hardware and software creators, individual contributors, and systems administrators, a closer connection to the development of the world’s leading enterprise Linux platform. When we announced our intent to transition to CentOS Stream, we did so with a plan to create new programs to address use cases traditionally served by CentOS Linux. Since then, we have gathered feedback from the broad, diverse, and vocal CentOS Linux user base and the CentOS Project community. Some had specific technical questions about deployment needs and components, while others wondered what their options were for already- or soon-to-be deployed systems. We’ve been listening. We know that CentOS Linux was fulfilling a wide variety of important roles. We made this change because we felt that the Linux development models of the past 10+ years needed to keep pace with the evolving IT world. We recognize the disruption that this has caused for some of you. Making hard choices for the future isn’t new to Red Hat. The introduction of Red Hat Enterprise Linux and the deprecation of Red Hat Linux two decades ago caused similar reactions. Just as in the past, we’re committed to making the RHEL ecosystem work for as broad a community as we can, whether it’s individuals or organizations seeking to run a stable Linux backend; community projects maintaining large CI/Build systems; open source developers looking toward "what’s next;" educational institutions, hardware, and software vendors looking to bundle solutions; or enterprises needing a rock-solid production platform. Today we’re sharing details about some of the new no- and low-cost programs we’re adding to RHEL. These are the first of many new programs. No-cost RHEL for small production workloads While CentOS Linux provided a no-cost Linux distribution, no-cost RHEL also exists today through the Red Hat Developer program. The program’s terms formerly limited its use to single-machine developers. We recognized this was a challenging limitation. We’re addressing this by expanding the terms of the Red Hat Developer program so that the Individual Developer subscription for RHEL can be used in production for up to 16 systems. That’s exactly what it sounds like: for small production use cases, this is no-cost, self-supported RHEL. You need only to sign in with a free Red Hat account (or via single sign-on through GitHub, Twitter, Facebook, and other accounts) to download RHEL and receive updates. Nothing else is required. Th
(read more)
Red Hat has announced a new set of options meant to attract current CentOS users who are unhappy with the shift to CentOS Stream. "While CentOS Linux provided a no-cost Linux distribution, no-cost RHEL also exists today through the Red Hat Developer program. The program’s terms formerly limited its use to single-machine developers. We recognized this was a challenging limitation. We’re addressing this by expanding the terms of the Red Hat Developer program so that the Individual Developer subscription for RHEL can be used in production for up to 16 systems. That’s exactly what it sounds like: for small production use cases, this is no-cost, self-supported RHEL." (Log in to
(read more)
Hi friends, I’m looking for a site that recommends books based on preferences. All the sites I found depend on matching up user profiles. That is to say, you like the books that these other people like and so here are some more books for you. The flaw I see here is that you don’t usually get to see unknown authors. I’m looking for a site/program that uses the actual text of books to match up your interests directly with books, rather than other peoples opinions of books. If there is no such site, are you, or anyone you know, building such an engine or site? Thanks!
(read more)
I know a number of folks use The Great Suspender to automatically suspend inactive browser tabs in Chrome. Apparently recent versions of this extension have been taken over by a shady anonymous entity and is now flagged by Microsoft as malware. Notably the most recent version of the extension (v7.1.8) has added integrated analytics that can track all of your browsing activity across all sites. Yikes. Recommendations for users of The Great Suspender (7.1.8): Temporary easy fix Disable analytics tracking by opening the extension options for The Great Suspender and unchecking “Automatic deactivation of any kind of tracking”. Pray that the shady developer doesn’t is
(read more)
A small group of wild, European bison will be introduced to a woodland reserve in England, and the group overseeing the project is looking for two rangers to manage the herd, no previous experience required.European bison, like this one, will be introduced to roam in the wild in the Blean woods near Canterbury, England, next spring. This bison is one of two males in captivity at the Wildwood Trust. (Tom Cawdron)As It Happens6:31Bison rangers wanted to oversee U.K. herd — no bison experience necessaryRead Story Transcript It's a job in the great outdoors that doesn't require applicants to have done it before, but the successful candidates will need to be comfortable with horns, hooves an
(read more)
India has asked WhatsApp to withdraw the planned change to its privacy policy, posing a new headache to the Facebook-owned service that identifies the South Asian nation as its biggest market by users. In an email to WhatsApp head Will Cathcart, the nation’s IT ministry said the upcoming update to the app’s data-sharing policy has raised “grave concerns regarding the implications for the choice and autonomy of Indian citizens… Therefore, you are called upon to withdraw the proposed changes.” The ministry is additionally seeking clarification from WhatsApp on its data-sharing agreement with Facebook and other commercial firms and has asked why users in the EU
(read more)
This post highlights new, simplified and low-/no-cost options for deploying RHEL. These are the first of many new programs. To immediately go to the program that interests you: No-cost RHEL for small production workloads No-cost RHEL for customer development teams On December 8, 2020, Red Hat announced a major change to the enterprise Linux ecosystem: Red Hat will begin shifting our work from CentOS Linux to CentOS Stream on December 31, 2021. We and the CentOS Project governing board believe that CentOS Stream represents the best way to further drive Linux innovation. It will give everyone in the broader ecosystem community, including open source developers, hardware
(read more)
Illustration by Paweł Jońca In 2019, the Event Horizon Telescope team gave the world the first glimpse of what a black hole actually looks like. But the image of a glowing, ring-shaped object that the group unveiled wasn’t a conventional photograph. It was computed — a mathematical transformation of data captured by radio telescopes in the United States, Mexico, Chile, Spain and the South Pole1. The team released the programming code it used to accomplish that feat alongside the articles that documented its findings, so the scientific community could see — and build on — what it had done.It’s an increasingly common pattern. From astronomy to zoology, behind every great scientific finding of the modern age, there is a computer. Michael Levitt, a computational biologist at Stanford University in California who won a share of the 2013 Nobel Prize in Chemistry for his work on computational strategies for modelling chemical structure, notes that today’s laptops have about 10,000 times the memory and clock speed that his lab-built computer had in 1967, when he began his prizewinning work. “We really do have quite phenomenal amounts of computing at our hands today,” he says. “Trouble is, it still requires thinking.”Enter the scientist-coder. A powerful computer is useless without software capable of tackling research questions — and researchers who know how to write it and use it. “Research is now fundamentally connected to software,” says Neil Chue Hong, director of the Software Sustainability Institute, headquartered in Edinburgh, UK, an organization dedicated to improving the development and use of software in science. “It permeates every aspect of the conduct of research.”Scientific discoveries rightly get top billing in the media. But Nature this week looks behind the scenes, at the key pieces of code that have transformed research over the past few decades.Although no list like this can be definitive, we polled dozens of researchers over the past year to develop a diverse line-up of ten software tools that have had a big impact on the world of science. You can weigh in on our choices at the end of the story.Language pioneer: the Fortran compiler (1957) The first modern computers weren’t user-friendly. Programming was literally done by hand, by connecting banks of circuits with wires. Subsequent machine and assembly languages allowed users to program computers in code, but both still required an intimate knowledge of the computer’s architecture, putting the languages out of reach of many scientists.That changed in the 1950s with the development of symbolic languages — in particular the ‘formula translation’ language Fortran, developed by John Backus and his team at IBM in San Jose, California. Using Fortran, users could program computers using human-readable instructions, such as x = 3 + 5. A compiler then turned such directions into fast, efficient machine code. This CDC 3600 computer, delivered in 1963 to the National Center for Atmospheric Research in Boulder, Colorado, was programmed with the help of the Fortran compiler
(read more)
Participation in open source requires you to surrender your monopoly over commercial exploitation. This is a profound point about free and open source software which seems to be causing a lot of companies to struggle with their understanding of the philosophy of FOSS, and it’s worth addressing on its own. It has been apparent for some years now that FOSS is eating the software world, and corporations are trying to figure out their relationship with it. One fact that you will have to confront in this position is that you cannot monopolize the commercial potential of free and open sour
(read more)
In October, the popular and famous archivist tool youtube-dl was taken down by GitHub due to a DMCA request by the Recording Industry Association of America. I posted a detailed analysis explaining the relation between international, US, EU and German law, and showing why this request was very different from what most people know as the “classic” DMCA takedown request. I felt this was necessary since there were a lot of rumor and wrong claims out on the Internet (not just in forums or on the (anti)social media, but also on media offerings), which did not help the di
(read more)
There’s a fallacy commonplace enough on the internet and causing sufficient confusion that it could use some clarifying: Teams decide to be “Haskell shops”, hire for maximal type-tetris capability and therefore expect to, by direct implication and default, produce outstanding software. Stated differently for additional clarity: Haskell, or any other particular language for that matter, does not automatically solve all problems related to architecture and macro-level decision-making in software production. Believing otherwise may actually produce worse outcomes than picking a mainstream language (e.g. JavaScript) and dealing with its warts.Here are some examples where simply “choosing Haskell” will not automatically solve the concern for you at all:Laying down, communicating and embodying the right hierarchy of values in software development, especially in a group settingChoosing the right internal/intermediate data representationsImagining the right MVP functionality your software should have in a way that aligns with continued enhancement from thereKnowing where making a huge deal out of every little issue prevents progress and where deep care needs to be taken even for the very MVPChoosing the right database — knowing when to use Postgres, Redis, DynamoDb, ElasticSearch, etc in concert as appropriateKnowing when a 300ms database call is just fine and when even 50ms isn’t acceptable.Knowing when no-redundancy is completely fine and when over-the-top redundancy is prudentKnowing when to use external async queues, their limitations, downsides, etc, and when to just get something done inlineFiguring out the right database schema (remembering there’s always a schema even when using NoSQL)Enforcing the right amount of failure-tolerance on your functions, particularly those that do external calls, IO, etc.Striking the right balance in picking service boundariesHaving good structured logging practices, and contra — knowing when too much logging itself hurts the systemHaving good instrumentation and performance tracking in your codebaseEnforcing good clarity in the codebase — not too redundant but not prematurely abstract eitherFiguring out a way to achieve iterative growth on the solution in a team setting (usually easy for 1 person, hard even for 5)Striking the right balance in testingKnowing when to optimize coding style for long term correctness (i.e. type-tetris and all the noise from it) and when to optimize for ease of logic expressionThe Haskell ecosystem has, perhaps, a larger than typical portion of its practitioners from the academic domain of interest. This is a particular strength of our community, but it often also means that more of our conversations are focused on topics like advanced type systems instead of, say, what a decent baseline application architecture should be for a variety of use cases. We have to keep reminding ourselves that the latter actually matters more for practical software — baseline Haskell2010 already gives you an outstanding toolkit but getting the above choices wrong can bust your project.To be clear, commercial teams that choose Haskell usually do it because they believe Haskell will pr
(read more)
[Photo by Kelly Sikkema on Unsplash, modified (cropped)] This article follows up on a discussion. Please share your experience there, I'd gladly hear about it! Introduction Some months ago I was surveying a little the state of GUI in Rust. Let me tell you, the quest has been horrible. Starting off some searches on internet, apart some questions on Reddit and other sites, you get some (very old) articles. Sep 19 '19 Author: AwlsomeAlex365 Rust has always seemed super interesting to me since learning of its existence a few months ago. However one thing that turned me off at the time was the lack of (structured) GUI bindings for cross platform devices. But fast forward a few months, is there a good GUI library to use that can make “complex” applications? Or maybe a… Old and stale. The only guide you get at the end of the day (referenced by all) is the site Are We GUI Yet which is not helpful at all. Want to find crates for GUI in Rust? Then you've come to the right place! Status This site is maintained as best as possible. The next steps likely involve replacing it with an automated system more like lib.rs. CI runs weekly to update crate information from crates.io, if it is not overriden by the crate's configuration in this repo. What is this? Companion website to arewegameyet arewewebyet, and arewelearningyet. Contributing To make it easy for people (hey, that's you! 😊) to contribute, AreWeGuiYet uses a custom Rust CLI. It's currently a work in progress and is a little rough around the edges. The workflow: fork AreWeGuiYet clone your fork cd to the CLI directory (cli) (it currently uses relative paths 😬) Build and run the CLI Usage: cargo run -- [--clean] [flags] Help: cargo run -- help When you're done… It seems that AreWeGUIYet has not been updated since 2019, and the interface does not help in the least to search for a suitable library. The only tags it has is on the kind of implementations the crates have. Not many articles, not a useful tutorial, no understanding about the status of the crates that are showcased there. Some featured crates seem pretty rough, some more advanced... but there's no way to know it other than trying each and every one. Oh. My. And I did install some, but the results were a disaster, because at least the ones I tried sucked a lot. Then, over the summer I found an article by boringcactus. They had much my same experience, but I realized that I actually managed to make many more things to work than they did... Flash forward to early November. Here I was, trying again the old way. I was serious with my intention to try each and every crate in the list. This time around I got even luckier. At least I did not only succeeded in make some libraries to work, I actually got material to write some tutorials to help others. Here I'll wet your appetite: there's more to come! Disclaimers I only tried the following on my Linux laptop: sorry, I do not own a Windows or a Mac! I usually employ cargo add from cargo edit (to install it: cargo ins
(read more)
January 20, 2021 Yesterday, Elastic NV, the company behind Elasticsearch, announced they would release future versions of their Elasticsearch and Kibana software under the Server Side Public License (SSPL) to prevent Amazon from offering them as managed services on its proprietary cloud platform. Elastic joins MongoDB, originator of SSPL, in accusing AWS of unfair play and adopting defensive license terms. The same day, the Open Source Initiative released a short post pointedly entitled “The SSPL Is Not an Open Source License”, attempting to brand Elastic and SSPL “fauxpen source” and generally throwing as many short jabs their way as possible. To hear OSI tell it, Elastic has “abandoned their original dedication to the open source community” by falling prey to the current “license du jour”, announcing the move in a post “unironically titled ‘Doubling Down on Open’”, and hocking what is now a lamentably “proprietary product”. It’s a hit piece. Not that it matters so much. As usual with OSI these days, I don’t think either Elastic or Mongo will feel a thing. The folks at OSI will enjoy “taking a stand”. A few of their faithful will accept the line and shun the offender, mostly by saying mean things on social media somewhere. But Elastic has little to fear from being “called out” by an increasingly fractured and irrelevant institution. It’s one great, big, noisy, cliquish NOP. Or it would be. Alas, there is more in OSI’s post. More bad arguments. More self-serving misinformation. More fear, uncertainty, and doubt in response to anxiety about their self-bestowed “authority”. More seeds of confusion. It is not my responsibility to break the cycle of taunts and jibes between cloud companies, database companies, and their vassals. It’s not my responsibility to “fix” copyleft for the cloud, or to reconcile opposing interests to some kind of amicable, Kumbayah settlement. But as I’ve seen over the years, it will be my responsibility to clean up the mess of misconceptions opportunistically engendered for dubious tactical points along the way. I’d rather not. Retreat? OSI mentions: The [fauxpen source] license du jour is the Server Side Public License. This license was submitted to the Open Source Initiative for approval but later withdrawn by the license steward when it became clear that the license would not be approved. This is literally true. But it begs to leave exactly the wrong impression. Why did MongoDB walk away from the OSI process? Was it because they came to understand, at the foot of OSI’s wisdom, that their license wasn’t open source, but a regrettable heresy? Nope. From the Mongo e-mail OSI links to in quote above: We continue to believe that the SSPL complies with the Open Source Definition and the four essential software freedoms. In other words, they still think it’s open source and free software. Whether OSI, or the people who hang out on OSI mailing lists, say so or not. As I saw it, MongoDB’s exit had everything to do with aborting
(read more)
About OdekoOdeko builds mobile ordering and supply chain management software for independent coffee shops, cafes, and bakeries. About the roleWhy Odeko? Odeko builds mobile ordering and supply chain tools for coffee shops, cafés and bakeries. It’s our goal to help these small businesses increase their revenue, lower how much they spend on supplies, and to reduce their environmental footprint. We’re on a mission to build products that make the lives of our customers better. We genuinely care about people, and we rely on an ambitious team that operates within a collaborative environment to deliver on our mission. About the role: Odeko is looking for a Product Manager to lead our efforts i
(read more)
A glimpse into a more civilized (yet challenging) tool in the JavaScript ecosystemArt for ReScript Blog, credit to Bettina SteinbrecherThis is not evangelism of ReScript or a one-to-one comparison with TypeScript. I love TypeScript. I decided to rewrite a small TypeScript+React+Jest side project into ReScript.ReScript is not new. In a way it’s as old as JavaScript itself. ReScript is a rebranding of ReasonML (Facebook) and BuckleScript (Bloomberg), which wrap OCaml on both ends. The former is an interface of the OCaml syntax, while the latter makes sure to compile the AST into JavaScript. ReasonML was created by Jordan Walke, the creator of React. ReasonML still exists as a parallel projec
(read more)
pup is a command line tool for processing HTML. It reads from stdin, prints to stdout, and allows the user to filter parts of the page using CSS selectors. Inspired by jq, pup aims to be a fast and flexible way of exploring HTML from the terminal. Install Direct downloads are available through the releases page. If you have Go installed on your computer just run go get. go get github.com/ericchiang/pup If you're on OS X, use Homebrew to install (no Go required). brew install https://raw.githubusercontent.com/EricChiang/pup/master/pup.rb Quick start $ curl -s https://news.ycombinator.com/ Ew, HTML. Let's run that through some pup selectors: $ curl -s https://
(read more)
An MQ-9 Reaper drone, used for surveillance by the US Air Force.Credit: Staff Sgt. John Bainter/U.S. Air Force Eyes in the Sky: The Secret Rise of Gorgon Stare and How It Will Watch Us All Arthur Holland Michel Houghton Mifflin Harcourt (2019)In the 1998 Hollywood thriller Enemy of the State, an innocent man (played by Will Smith) is pursued by a rogue spy agency that uses the advanced satellite “Big Daddy” to monitor his every move. The film — released 15 years before Edward Snowden blew the whistle on a global surveillance complex — has achieved a cult following.It was, however, much more than just prescient: it was al
(read more)
SOUL, a new language now in V1.0, makes audio coding vastly more accessible January 20, 2020 London — Today’s release of SOUL, the new universal language for audio applications, will dramatically lower barriers and expand access for developers creating any apps that depend on audio, as well as providing a more efficient architecture for audio processing. SOUL has reached version 1.0 status with its language, compiler, and “SOUL patch” format all stable, tested, and ready to use in a wide variety of audio-related projects.. The team, led by JUCE and Tracktion creator Julian Storer, is already at work on an array of other SOUL tools including a visual ed
(read more)
This dwm 6.2 (bb2e72, 2020-07-08) side project has a different take on dwm patching. It uses preprocessor directives to decide whether or not to include a patch during build time. Essentially this means that this build, for better or worse, contains both the patched and the original code. The aim being that you can select which patches to include and the build will contain that code and nothing more. Due to the complexity of some of the patches dwm-flexipatch has diverged from mainstream dwm by making some core patches non-optional for maintenance reasons. For the classic dwm-flexipatch build refer to branch dwm-flexipatch-1.0. For example to include the alpha patch then
(read more)
Last week, I learned that David M. Tilbrook has died, which made me sad. I did not know him personally and cannot say much about his life, but I studied his publications and software ideas a lot, and consider them interesting, especially from a historic perspective. Unfortunately, most of these things are on websites taken down already, so this post will refer to pages on the Internet Archive extensively. I first came across David when I researched the history of the QED editor, the direct predecessor of the Unix standard text editor ed. The history of QED is well documented by Dennis Ritchie. However, for a long time the QED source code was hard to find, and I heard that David still maintained a version. Around 2016, I swooped a copy of Caltech qed from USENIX tape 80.1 and tried making it work on modern platforms, with moderate success. Thanks to efforts by Arnold Robbins there is now an QED Archive which also features a copy of 1992 QED from Toronto, which contains contributions by Tom Duff, Robert Pike, Hugh Redelmeier and David Tilbrook. If you want to run it yourself, there is a modernized, UTF-8 aware version available now! I do not know what David exactly contributed to QED, but from his writings its clear he was a heavy user of QED and wrote many scripts in it. Remember that in the early 80’s, awk was quite limited and Perl did not exist, so general-purpose string processing on Unix was difficult. We will have an example of a small QED script at the end of this post. David’s opus magnum was a suite of tools called QEF, quod erat faciendum. Euclid wrote this at the end of geometric constructions, and in a software sense, we want a build system to produce what was to be made. At its time of creation, David was responsible for maintaining a (for the time) large system, essentially a Unix distribution. Tooling was stuck in the era of 1977’s make(1). For the details and basic ideas, see Tilbrook and Place (1986), “Tools for the Maintenance and Installation of a Large Software Distribution” (Huge thanks to Alan Grosskurth for making a copy available.) My favorite footnote is the one about their Prolog prototype of a build system: “Is the
(read more)
One of the advantages of QWidgets when building a Qt application is the ability to build in a simple way custom widgets with the QPainter API. This gives the Qt developer almost total freedom to implement complex geometries for their widgets. On the other hands, QML contains by default only rectangles. These rectangles can change the radius to create circles and rounded rectangles, but more complex shapes are more complicated. The current state of custom geometry in QtQuick Fortunally, the Qt API provides multiple ways to implement custom shapes, that depending on the needs might be enough. There is the Canvas API using the same API as the canvas API on the web but in QML. It’s easy to use but very slow and I wouldn’t recommend it. Instead of the Canvas API, from the QML side, there is the QtQuick Shapes module. This module allows creating more complex shapes directly from the QML with a straightforward declarative API. In many cases, this is good enough for the application developer but this module doesn’t offer a public C++ API. If you need more controls, using C++ will be required to implement custom QQuickItem. Unfortunately drawing on the GPU using QQuickItem is more complex than the QPainter API. You can’t just
(read more)
Typera (TYPEd Routing Assistant) helps you build backends in a type-safe manner by leveraging io-ts and some TypeScript type inference magic. It works with both Express and Koa. Upgrading to version 2? See the upgrading instructions. Table of Contents The Problem Tutorial Requirements API Reference Imports Responses Redirects Response.redirect<Status>(status: Status, location: string): Response.Response<Status, string, { location: string }> Streaming responses Middleware Middleware.next([value[, finalizer]]) Middleware.stop(response) Request parsers Parser.query<T>(codec: t.Type<T>): Middleware<{ query: T }, Response.BadRequest> Parser.body<T>(codec: t.Type<T>): Middleware<{ body: T }, Response.BadRequest> Customizing the error response Routes route route.get(...): Route<Response> route.post(...): Route<Response> route.put(...): Route<Response> route.delete(...): Route<Response> route.head(...): Route<Response> route.options(...): Route<Response> route.patch(...): Route<Response> route.all(...): Route<Response> route(method, ...): Route<Response> route.use(...middleware) applyMiddleware(...middleware) Route parameter capturing route.useParamConversions({ ...convs }) Router router(...routes: Route[]): Router Router.add(...routes: Route[]): Router Router.handler() Upgrading The Problem When you see an any, you cannot really be sure anymore. When building web backends, there are quite a few anys involved: You get a request in. Captured route params, query params from the URL and request body are all any. When generating a response, the response body's type is any. When middleware is involved, there's no type-level visibility to which transforms the middleware apply to the request, or which responses it might return. The response status is a number. It's not as bad as any, but your routes always return responses from a known set of possible status code / body combinations. By default, the compiler cannot help you with any (pun intended) of this. But with typera, you're safe! Tutorial Install with yarn or npm. For Express: yarn add express typera-express # or npm install --save express typera-exp
(read more)
image copyrightReutersimage captionSteve Bannon is accused of fraud over a fundraising campaign. He denies any wrongdoingIn the final hours of his presidency, Donald Trump has pardoned 73 people, including his former adviser Steve Bannon, who is facing fraud charges.Another 70 people had sentences commuted, ahead of Joe Biden's inauguration at noon (17:00 GMT).Rapper Lil Wayne received a pardon and there were commutations for rapper Kodak Black and former Detroit Mayor Kwame Kilpatrick.The president has not issued preemptive pardons for himself or family members.He can still issue more pardons on Wednesday morning, as he remains president until Mr Biden takes the oath of office outside the US Capitol.The inauguration ceremony will be tight on security following the recent breach of the Capitol by violent pro-Trump protesters. It will also be stripped of crowds due to the coronavirus pandemic.Who are the key recipients of clemency?A statement from the White House listed the 73 individuals who had received pardons and the 70 who had their sentences commuted.Although many on the list are conventional examples of convicts whose cases have been championed by rights activists and supporters in the community, others maintain the president's trend of focusing on allies.Steve Bannon was a key strategist and adviser to President Trump during his 2016 campaign. He was charged in August last year with fraud over a fundraising campaign to build a wall on the US-Mexico border to stem illegal immigration, a key plank of Mr Trump's 2016 presidential campaign.Prosecutors said Mr Bannon and three others defrauded hundreds of thousands of donors in connection with the "We Build the Wall" campaign, which pledged to use donations to build segments of the barrier and raised $25m (£18m). It was alleged Mr Bannon received more than $1m, at least some of which he used to cover personal expenses. He denied the claims.As he was yet to stand trial his pardon is unusual, though certainly not unprecedented.The White House statement said Mr Bannon had been "an important leader in the conservative movement and is known for his political acumen". It said prosecutors had "pursued" him with char
(read more)
Market analyst Trendforce reports that foundry TSMC is to start making Intel's Core i3 process later in the year on a 5nm process. This follows Intel's well documented problems with its leading edge process technology at 10nm and 7nm. The Core i3 move to a 5nm process is set to be followed by mid-range and high-end CPUs being produced for Intel by TSMC on a 3nm process in 2H22. TrendForce did not give a source for the information, simply referencing "investigations."Intel has long outsourced production significant amounts of its non-CPU chips to TSMC and UMC – about 15 to 20 percent of its output, according to TrendForce. This is partly because it has often acquired fabless startups that had brought products to market using foundry. It was usually not worthwhile to re-engineer such pr
(read more)
FILE PHOTO: Former Google and Uber engineer Anthony Levandowski leaves the federal court after his arraignment hearing in San Jose, California, U.S. August 27, 2019. REUTERS/Stephen LamWASHINGTON (Reuters) - U.S. President Donald Trump said on Wednesday he had given a full pardon to a former Google engineer sentenced for stealing a trade secret on self-driving cars months before he briefly headed Uber Technologies Inc’s rival unit.Anthony Levandowski, 40, was sentenced in August to 18 months in prison after pleading guilty in March. He was not in custody but a judge had said he could enter custody once the COVID-19 pandemic subsided.The White House said Levandowski had “paid a significant price for his actions and plans to devote his talents to advance the public good.”Alphabet Inc
(read more)
SymQEMU: Compilation-based symbolic execution for binaries Proceedings of the Network and Distributed System Symposium (NDSS 2021), San Diego, CA, USA Symbolic execution is a powerful technique for software analysis and bug detection. Compilation-based symbolic execution is a recently proposed flavor that has been shown to improve the performance of symbolic execution significantly when source code is available. We demonstrate a novel technique to enable compilation-based symbolic execution of binaries (i.e., without the need for source code). Our system, SymQEMU, builds on top of QEMU, modifying the intermediate representation of the target program before translating it to the host architecture. This enables SymQEMU to compile symbolic-execution capabilities into binaries and reap the associated performance benefits while maintaining architecture independence. We present our approach and implementation, and we show that it outperforms the state-of-the-art binary symbolic executors S2E and QSYM with statistical significance; on some
(read more)
SpaceX has acquired two former oil drilling rigs to serve as these floating spaceports. Named Phobos and Deimos, after the two moons of Mars, they are currently undergoing modifications to support Starship launch operations. SpaceX has long been hinting at future floating launch and landing sites for their Starship launch system. The super heavy lift launch vehicle will have a large blast danger area and pose noise concerns if launched frequently near populated areas. Therefore, sea launch platforms will play a key role in the launch cadence SpaceX plans to reach with Starship, including on-orbit refueling flights for deep space missions and transportation from one place to another on Earth. Job postings by SpaceX have indicated that work on offshore launch platforms has begun in Brownsville, Texas, near their Starship manufacturing and launch facilities in Boca Chica. Positions included crane operators, electricians, and offshore operations engineers, and several of the job listings specified that the position was part of the company’s Starship program. Job descriptions for these positions included responsibilities like “designing and building an operational offshore rocket launch facility” and required the “ability to work on an offshore platform in Brownsville, Texas.” I've been exploring around the Port of Brownsville while waiting for Starship testing and found an oil rig that appears to be named Deimos, after one of the moons of Mars! Based on job postings and @elonmusk's tweets, I'm willing to bet that SpaceX is involved. @NASASpaceflight pic.twitter.com/zhTOGNnZKd — Jack Beyer (@thejackbeyer) January 19, 2021 The Port of Brownsville is home to a
(read more)
As the clock struck midnight at the very end of 2019 I decided, over a glass of something sparkling, that I’d set myself a challenge to put out a series of six YouTube videos within the space of one month. This, I thought, seemed timely as I’ve now got my relay computer to the point where it can perform branching operations and therefore run more interesting programs. Well, somehow I managed to stick to my challenge and although it turned out to be a gruelling schedule below are the six videos I published. If you’ve been following me on YouTube you’ll no doubt have seen these by now but just for completness I’ve repeated them below. In episode 1/6 I gave an overview of the underlying architecture of my relay computer and dipped in to some of the decisions that led to that architecture: In episode 2/6 I covered the instruction set (collection of opcodes) which can be used to tell the computer what to do: Given opcodes are made up of 8-bit binary values they’re not particularly user friendly and so in episode 3/6 I introduced an assembly language which makes it much easier to program the computer: In episode 4/6 I used the architecture diagram and assembly language from the earlier videos to create a program that can calculate a portion of the Fibonacci series. I then used the list of opcodes to ‘hand assemble’ the program making it suitable for loading into the computer: Episode 5/6 I took a visual tour around my relay computer as it stands today:
(read more)
If someone has a computer that has recent ver of Adobe apps & CC installed - they will not be able to uninstall the software without having a valid Adobe ID. I've already found problems that this leads to.  Company computers that employees install Adobe on and then leave company cause computers to constantly prompt for CC login. If company tries to uninstall software, they are forced to enter an Adobe ID to uninstall (no easy way around it). Most companies will prob spend resource time and effort to just re-image/factory restore the computer. I doubt many will go through the time to create an
(read more)
The two articles are cute and pretty accurate. The blog post from JWZ is bitter, not constructive and contains some nonsense. We were expecting it. You don't go telling people I told you so for 20 years and then not catch the opportunity to do it once more when it happens again. And it did happen again, yes, so enjoy the moment. Let's have one more I-told-you-so moment, if it can help us react even more and make things better for 5.0, let's embrace it. If you are not running XScreenSaver on Linux, then it is safe to assume that your screen does not lock. No. As mentioned above KD
(read more)
Introduction Back in 2018, we compared empirically the performance overheads of Go and C++ with regards to the low-level calling convention: to pass arguments, to return multiple values, and when propagating exceptions. Those results were obtained with Go 1.10 and Clang 6.0. Since then, compilers have evolved and we are now running with Go 1.15 and Clang 11.0. Have the findings changed since then? The question of interest was: What is cheaper: handling exceptions via panic / recover, or passing and testing error results with if err := ...; err != nil { return er
(read more)
Release versioning might seem like a boring topic. Honestly, it should be. There should only be a couple of right ways to do versioning, and each project should pick one of the agreed-upon methods (SemVer1, CalVer2, etc.) that makes the most sense to the project. We don’t live in this ideal world unfortunately and many projects choose to deviate from versioning standards. I’m not here to say they are wrong, but I’d like to discuss what they might be missing out on. Along with a typical release version, it is useful to include extra metadata, such as the Git revision, GNU Build ID, build timestamp, and other related items. With all of this in place, both machines and developers can quickly hone in on exactly which release is running on a given device, what the source is, wh
(read more)
If you have been following this blog or my social profiles for the last year, you are probably aware that I have been working on something called EndBASIC. You also probably know that this is a retro-looking BASIC interpreter written in Rust that happens to run on the web. And if you know those two things, you are probably wondering, like some of my friends do: why am I wasting time developing such a useless project? Because. No, seriously, because. It is obvious that the EndBASIC language and environment will not gain massive traction, and I do not have any interest in inventing a perfect new language (because, let’s face it, we already have one and it’s called Rust 😉). So, then, why do I spend any of my scarce free time on this project? I
(read more)
President Donald J. Trump granted pardons to 73 individuals and commuted the sentences of an additional 70 individuals. Todd Boulanger – President Trump granted a full pardon to Todd Boulanger. Mr. Boulanger’s pardon is supported by numerous friends, as well as by past and present business associates. In 2008, Mr. Boulanger pled guilty to one count of conspiracy to commit honest services fraud. He has taken full responsibility for his conduct. Mr. Boulanger is a veteran of the United States Army Reserves and was honorably discharged. He has also received an award from the City of the District of Columbia for heroism for stopping and apprehending an individual who assaulted an elderly woman with a deadly weapon on Capitol Hill. Mr. Boulanger is known a
(read more)
President Donald J. Trump granted pardons to 73 individuals and commuted the sentences of an additional 70 individuals. Todd Boulanger – President Trump granted a full pardon to Todd Boulanger. Mr. Boulanger’s pardon is supported by numerous friends, as well as by past and present business associates. In 2008, Mr. Boulanger pled guilty to one count of conspiracy to commit honest services fraud. He has taken full responsibility for his conduct. Mr. Boulanger is a veteran of the United States Army Reserves and was honorably discharged. He has also received an award from the City of the District of Columbia for heroism for stopping and apprehending an individual who assaulted an elderly woman with a deadly weapon on Capitol Hill. Mr. Boulanger is known a
(read more)
A serverless edge worker embedding SQLite using Cloudflare Workers and WASM. Check out the source on GitHub and/or follow me on Twitter. The data used in production is a reduced version (only EUR, JPY, GBP and CHF currencies) of the European Central Bank Forex Rates on Humdata. It is distributed under the license CC-BY. Example queries Days GBP was the highest and lowest SELECT *,1/EUR,1/JPY,1/GBP,1/CHF FROM forex WHERE GBP = ( SELECT max(GBP) FROM forex) OR GBP = ( SELECT min(GBP) FROM forex) Use SQLite built-in and extra functions SELECT getdata('country') AS country, random() AS rnd, date('now') AS now Try
(read more)
SHANGHAI (Reuters) - Alibaba Group founder Jack Ma met 100 rural teachers in China via a live video meeting on Wednesday morning, in the businessman’s first appearance since October, triggering a sharp jump in the Hong Kong listed shares of the e-commerce giant.Social media speculation over the whereabouts of China’s highest-profile entrepreneur swirled this month after news reports that he missed the final episode of a TV show featuring him as a judge, amid a regulatory clampdown by Beijing on his sprawling business empire.Ma had not appeared in public since Oct. 24, where he blasted China’s regulatory system in a speech at a Shanghai forum that set him on a collision course with officials, leading to suspension of a $37-billion IPO of Alibaba’s financial affiliate Ant Group.Tianm
(read more)
Google is investigating recent actions by Margaret Mitchell, who helps lead the company's ethical AI team, Axios has confirmed.Why it matters: The probe follows the forced exit of Timnit Gebru, a prominent researcher also on the AI ethics team at Google whose ouster ignited a firestorm among Google employees.What's happening: According to a source, Mitchell had been using automated scripts to look through her messages to find examples showing discriminatory treatment of Gebru before her account was locked.The AI ethics team has been under great stress since Gebru's exit, while thousands of people both within and outside of Google have criticized the company's actions.Google CEO Sundar Pichai said in a December memo that the company was looking further into its treatment of Gebru. Google ha
(read more)
Mondays, 5:15 - 7:15 p.m.  Instructor: Professor Harry Lewis, [email protected] Office hours change from week to week -- see here. Teaching Fellow: Gal Koplewitz, [email protected] Office hours: Thursdays 3-4, Maxwell Dworkin second floor lounge. This course examines papers every computer scientist should have read, from the 1930s to the present. It is meant to be a synthesizing experience for advanced students in computer science: a way for them to see the field as a whole, not through a survey, but by reliving the experience of its creation. The idea is to create a unified view of the field of computer science, for students who already know something about it, by replaying its entire evolution at an accelerated frame rate.Learning Objectives: To identify the major subfields of
(read more)
Today’s Go security release fixes an issue involving PATH lookups in untrusted directories that can lead to remote execution during the go get command. We expect people to have questions about what exactly this means and whether they might have issues in their own programs. This post details the bug, the fixes we have applied, how to decide whether your own programs are vulnerable to similar problems, and what you can do if they are. Go command & remote execution One of the design goals for the go command is that most commands – including go build, go doc, go get, go install, and go list – do not run arbitrary code downloaded from the internet. There are a few obvious exceptions: clearly go run, go test, and go generate do run
(read more)
06 Jan 2021With the Ruby 3.0 release, there’s been a lot of chatter about concurrency, parallelism, and async IO. For my own reflection, I wanted to write down what that means for performance and capacity/costs of apps, and what would be the impact on the Ruby ecosystem. I will assume that the audience already knows the difference between threads vs processes model in UNIX and the Little’s law. Updated on Jan 9, 2021: thanks to the feedback from Samuel Williams, I’ve revised the post with findings from Falcon, the async web server written in Ruby. Learning from Python It’s always good to take learnings from other languages. There’s an excellent write-up “Async Python is not faster” by Cal Paterson. It argues that process-based (aka forking) web servers show bette
(read more)
Benedict Evans, Andreessen Horowitz’s former in-house analyst, has mused over the years that “A16Z is a media company that monetizes through VC.”That observation becomes truer by the day. While there’s a lot of loose talk on Twitter about cutting out the media and “going direct” – publishing your own story to the world without the press as an intermediary – Andreessen Horowitz is really doing it, consciously and methodically. The firm’s strategy has dramatic implications for the future of media and the venture capital industry. This is the story of how Andreessen Horowitz disrupted the world of venture capital by cozying up to the media and then, how they purposefully threw that relationship away.Let me tell you the story from the beginning.About a decade ago, Margit Wenn
(read more)
Alan Kay alank at wdi.disney.com Sat Oct 10 04:40:35 UTC 1998 Previous message: prototypes vs classes was: Re: Sun's HotSpot Next message: prototypes vs classes Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] Folks -- Just a gentle reminder that I took some pains at the last OOPSLA to try to remind everyone that Smalltalk is not only NOT its syntax or the class library, it is not even about classes. I'm sorry that I long ago coined the term "objects" for this topic because it gets many people to focus on the lesser idea. The big idea is "messaging" -- that is what the kernal of Smalltalk/Squeak is all about (and it's something tha
(read more)
NixOS is a Linux distribution built from the ground up to make it easy to deploy services. Tailscale is a peer-to-peer VPN built to make it easy to connect machines. In this article I will show how to set up a Java Edition Minecraft server (exposed only over Tailscale) in ten minutes on Digital Ocean. Before you begin this guide, you’ll need the following: A Digital Ocean account A Minecraft Java Edition account You’ll also need a Tailscale account. You can make a free solo account using an @gmail.com address. In NixOS one of the core principles is that the entire system is configurable with a modular language called Nix. This allows you to configure everything using a common syntax so you don’t need to remember every configuration file format for every service you use. As such, you can configure an entire system from a single file. Let’s make a new configuration file called host.nix and set up a system that has Tailscale start up on boot: { config, pkgs, ... }: { # make the tailscale command usable to users environment.systemPackages = [ pkgs.tailscale ]; # enable the tailscale service services.tailscale.enable = true; } This will have Tailscale start up, however to authenticate to Tailscale we need to take a few more steps. First, head to the Pre-Auth Keys page in the admin panel. Create a new one-time use key and then copy it to your notes. We will use it below. With this key we can write a systemd oneshot unit that will log in to Tailscale using this key. A systemd oneshot job is something that systemd expects to be run once as opposed to being a persistent service. The above Digital Ocean link explains this in more detail. Copy this config
(read more)
Canvas is a common vector drawing target that can output SVG, PDF, EPS, raster images (PNG, JPG, GIF, ...), HTML Canvas through WASM, and OpenGL. It has a wide range of path manipulation functionality such as flattening, stroking and dashing implemented. Additionally, it has a good text formatter and embeds fonts (TTF, OTF, WOFF, or WOFF2) or converts them to outlines. It can be considered a Cairo or node-canvas alternative in Go. See the example below in Fig. 1 and Fig. 2 for an overview of the functionality. Figure 1: top-left you can see text being fitted into a box and their bounding box (orange-red), the spaces between the words on the first row are being stretched to fill the whole width. You can see all the possible styles and text decorations applied. Also note the typographic substitutions (the quotes) and ligature support (fi, ffi, ffl, ...). Below the text box, the word "stroke" is being stroked and drawn as a path. Top-right we see a LaTeX formula that has been converted to a path. Left of that we see ellipse support showcasing precise dashing, notably the length of e.g. the short dash is equal wherever it is (approximated through arc length parametrization) on the curve. It also shows support for alternating dash lengths, in this case (2.0, 4.0, 2.0) for dashes and for spaces. Note that the dashes themselves are elliptical arcs as well (thus exactly precise even if magnified greatly). In the bottom-right we see a closed polygon of four points being smoothed by cubic Béziers that are smooth along the whole path, and next to it on the left an open path. In the middle you can see a rasterized image painted. Figure 2abc: T
(read more)
v0.3.0 (January 19, 2021) Features: Add TLS client authentication support. Add TLS OCSP stapling support. Add From<Reject> for Rejection. Add close_frame accessor to ws::Message. Changes: Update to Tokio v1. Update to Bytes v1. Update to hyper v0.14. Rework sse filter to be more like ws, with a single Event type and builder. Change cookie filter to extract a generic FromStr value. v0.2.5 (August 31, 2020) Features: Add warp_fn, which can be used to create a Wrap from a closure. These in turn are used with Filter::with(). Add warp::host filters to deal with Host/:authority headers. Relax some lifetime bounds on Server. Fixes: Fix panic when URI doesn't have a slash (for example, CONNECT foo.bar). v0.2.4 (July 20, 2020) Features: Add tracing internals in place of log (log is still emitted for backwards compatibility). Add warp::trace module set of filters to customize tracing dianostics. Add path method to warp::fs::File reply. Add source implementation for BodyDeserializeError. Make warp::ws::MissingConnectionUpgrade rejection public. v0.2.3 (May 19, 2020) Features: Add warp::compression filters, which will compress response bodies. Add warp::header::value() filter to get a request HeaderValue. Add request_headers method to warp::log::Info. Add max_frame_size to warp::ws::Ws builder. Add remote_addr to warp::test::RequestBuilder. Add try_bind_with_graceful_shutdown to warp::Server builder. Add serve_incoming_with_graceful_shutdown to warp::Server builder. Fixes: Fix warp::addr::remote when used with Server::tls. Fix panic in warp::path::{peek, tail, full} filters when the request URI is in authority-form or asterisk-form. v0.2.2 (March 3, 2020) Features: Implement Reply for all Box<T> where T: Reply. Add name methods to MissingHeader, InvalidHeader, and MissingCookie rejections. Add warp::ext::optional() filter that optionally retrieves an extension from the request. Fixes: Fix the sending of pings when a user sends a ws::Message::ping(). v0.2.1 (January 23, 2020) Features: Add close and close_with constructors to warp::ws::Message. Fixes: Fix warp::fs filters using a very small read buffer. v0.2.0 (January 16, 20
(read more)
Up until now, GraalVM has offered two ways to run Java programs: using the Java HotSpot VM with the GraalVM JIT (just-in-time) compiler, and compiled to a native executable using GraalVM Native Image.Today, we’re happy to announce a new way to run Java on GraalVM. GraalVM 21.0 introduces a new installable component, named espresso, which provides a JVM implementation written in Java.Java on Truffle place in the GraalVM architectureEspresso makes it possible to run Java code via the Truffle framework elevating Java to the level of the other languages supported on GraalVM.Trying Java on Truffle out is extraordinary straightforward. It is available as a component installable into a base GraalVM distribution with a gu command.gu install espressogu install -L espresso-installable.jar # if downloaded manuallyAfter the installation to run your favorite app on Java on Truffle you just need to pass -truffle to the java command.java -truffle -jar myApp.jarDownload Java on Truffle and give it a spin! There are some example apps with the instructions that illustrate the particular capabilities of Java on Truffle.Note that current raw performance of Java on Truffle isn’t representative of what it will be capable of in the near future. The peak performance is several times lower than runni
(read more)
Alexey Navalny’s Anti-Corruption Foundation has released a bombshell investigation into a $1.35-billion residence built for Russian President Vladimir Putin near a resort town on the Black Sea. Navalny’s team published the report the day after the opposition figure was put in pre-trial detention at Moscow’s notorious Matrosskaya Tishina prison. In addition to sharing the building’s floor plan and visualizations of the interiors, the anti-corruption activists recount the history of the construction project and dig into how it was financed by companies connected to members of Putin’s inner circle. “Meduza” sums up the highlights from the investigation.Not far from the Black Sea resort town of Gelendzhik, there is a 17,700-square-meter (more than 190,500-square-foot) palace built exclusively for Russian President Vladimir Putin, says a new investigation from Alexey Navalny’s non-profit, the Anti-Corruption Foundation (FBK). Word about the palace first got out in 2010 — it was revealed by businessman Sergey Kolesnikov, who claimed to have been involved in the building project. Kolesnikov published plans, contracts, and other documents linked to the construction, and said that the project was being overseen by businessman Nikolai Shamalov on behalf of Vladimir Putin. This provoked a major media scandal and a few months later Shamalov sold the property to billionaire businessman Alexander Ponomarenko, who said he planned to finish building the palace as a hotel complex. However, according to the FBK’s investigation, the sale was a sham — Ponomarenko paid just $350,000 for the palace (a thousand times less than the sum reported in the media) and one of Shamalov’s firms soon took over as the facility’s management company. The residence is located on a 68-hectare (168-acre) property overlooking the Black Sea. The site of the palace itself includes a helipad, a full-fledged ice palace, a church, an amphitheater, a greenhouse, a 2,500-square-meter (nearly 27,000-square-foot) tea house, as well as an 80-meter (about 260-foot) bridge. A special tunnel was built into the seaside cliff to provide access to the beach, and it also includes a tasting
(read more)
Apple discovered that Suyin Electronics, one of its Chinese-based suppliers, relied on child labor on multiple occasions, but still took three years to fully cut ties, The Information reported on Thursday. Ten former members of Apple's supplier responsibility team told The Information the company has refused or has been slow to stop doing business with suppliers that repeatedly violate its labor policies when doing so would hurt its profits.  Apple has faced intense criticism recently amid reports that it relies on forced Uyghur labor and protests over poor working conditions and wage theft by workers that make its products. Visit Business Insider's homepage for more stories. Apple is back under the spotlight over labor conditions in its supply chain following an explosive report from The Information on Thursday that revealed new details about the company's reluctance to cut ties with suppliers who violate its ethics policies.According to the report, Apple learned in 2013 that Suyin Electronics, a China-based company that (at the time) made parts for its MacBooks, was employing underage workers, and despite telling Suyin to address the issue or risk losing business, Apple discovered additional workers as young as 14 years old during an audit just three months later.But rather than immediately cutting ties with Suyin for violating its supply chain ethics policies — which prohibit child labor and which Apple claims are the "highest standards" — Apple continued to rely on the company for more than three years, according to The Information.Apple did not respond to a request for comment on this story. Suyin could not be reached for comment. Ten former members of Apple's supplier responsibility team told The Information that Suyin wasn't an isolated incident, and that Apple had refused or was slow to stop doing business with suppliers that had repeatedly violated labor laws or failed to improve workplace safety when it would have cut into its profits.Apple similarly refused to cut ties with Biel Crystal, one of its two suppliers of glass iPhone screens — despite a consistently poor workplace safety record, Apple employees' own co
(read more)
Why did this happen? Please make sure your browser supports JavaScript and cookies and that you are not blocking them from loading. For more information you can review our Terms of Service and Cookie Policy. Need Help? For inquiries related to this message please contact our support team and provide the reference ID below. Block reference ID:
(read more)
Generate DLL injection templates for reverse engineering and modding Unity il2cpp games. So you've been researching how to do some hacky stuff in Unity games and stumbled upon the amazing IL2CppDumper. You have learned how to get and analyze the dump.cs and now you know exactly what you want to do, but you do not know how to do it. You know that you have to override some method, replace the value of some field in an object or something like that, but your low level programming skills with all that nasty pointer arithmetic and assembly are not quite there yet (d
(read more)
source | all docs for | all versions | oilshell.org Oil extends shell's set -x / xtrace mechanism to give you more visibility into your program's execution. It shows high-level program structure ("functions", eval) as well as runtime events (starting and stopping external processes). Background In shell, the $PS4 variable controls the prefix of each trace line. The default value is '+ ', which results in traces like this: $ sh -x -c 'echo 1; echo 2' + echo 1 1 + echo 2 2 What's Wrong With set -x? It shows only an argv array for commands. It doesn't tell you if the command is a builtin, shell function, or external binary, which is important for program comprehension (and performance). It doesn't show you which commands are run in which processes. Because processes have their own state, this is also crucial for understanding a shell program. (Example: does echo x | read mutate a variable?) It's missing other information, like when processes are started and stopped, the exit status, and when commands come from eval or source. Shell concurrency makes the trace incomprehensible. For example, partial lines can be interleaved. Most implementations don't show non-printable and whitespace characters in a coherent way. Oil Enhancements Oil solves these problems. Here's an example of tracing a builtin, a pipeline, then another builtin: $ osh -O oil:basic -x -c 'set +e; ls | grep OOPS | wc -l; echo end' . builtin set '+e' > pipeline | part 103 . 103 exec ls | part 104 . 104 exec grep OOPS | command 105: wc -l ; process 103: status 0 ; process 104: status 1 ; process 105: status 0 < pipeline . builtin echo end Builtins are shown with the builtin prefix. External commands are shown with the command prefix. Bare exec() calls are shown with the exec prefix. It shows synchronous shell constructs with indentation and the > and < characters. This includes the entire pipeline, as well as proc calls (not shown). It shows process starts and ends with the | and ; characters. These are asynchronous in general. It shows the exit status of every process, which is important for reasoning about failure. It annotates trace lines with the shell PID (when it's not the root PID). The argv arrays are quoted with QSN. This ensures that they show special characters unambiguously, and that take exact
(read more)
● 10 Jan 2021 Sections of this post were co-authored by Cornelia Scheitz. Last updated on January 18, 2021. Bert Hubert’s excellent and widely shared article about Reverse Engineering the source code of the Pfizer-BioNTech SARS-CoV-2 Vaccine is all it took to turn hundreds of software engineers and other Silicon Valley types into armchair vaccine experts overnight! Jokes aside, the article explains the 4284 base pair long mRNA inside the Pfizer-BioNTech’s COVID-19 vaccine for those who are more familiar with software than molecular biology. Bert’s article is primarily about the biology of the vaccine, how it relates to the virus and how it works in the human body, but there’s this one sentence about vaccine production: At the very beginning of the vaccine production process, someone uploaded this code to a DNA printer (yes), which then converted the bytes on disk to actual DNA molecules. Next to it is a picture of a CodexDNA BioXP device that is advertised as producing “custom DNA fragments of up to 7,000 base pairs”. Could this be the next distributed manufacturing revolution? This time with DNA printers making COVID-19 vaccines in our garages instead of 3D printers and plastic widgets? I’ll start with the bad news: Nobody will be making an mRNA vaccine in their garage any time soon. The following text is a collection of notes I wrote down while exploring the process for manufacturing and distributing the two new vaccines that have appeared all over the news and in more and more people’s arms over the recent weeks. I started reading about mRNA but quickly found myself on tangents about glass vials and temperature track
(read more)
DigitalOcean App Platform is a modern PaaS (Platform as a Service) solution that makes it super simple to build, deploy, manage, and scale apps. It’s fully managed, meaning App Platform does all the heavy lifting of provisioning and managing infrastructure, operating systems, databases, application runtimes, and other dependencies so you can focus on what truly matters:  building awesome apps.We are excited to introduce the GitLab integration for App Platform, which allows you to deploy code directly from your GitLab.com repositories. Just point App Platform to your repo, pick a region and a branch to deploy from, configure your app (add environment variables, database, etc.), select a pricing plan, and then launch the app. Within a few minutes your app will be up and running on App Platform! You can also enable ‘Autodeploy on Push’ to automatically re-deploy the app each time you push to the branch containing the source code. Check out the docs and deploy this sample app to see the GitLab support in action. With integration for GitHub already available (and similar integration for BitBucket around the corner), App Platform provides support for most of the popular version control systems.We have made numerous enhancements to App Platform since we first launched the product late last year. Just last week we introduced the ‘Bring Your Own Container Image’ (BYOCI) feature that allows you to deploy pre-built container images with App Platform. This means that if your a
(read more)
Hello Fennel friends! I'm happy to announce the release of version 0.8.0 of Fennel. The highlights for this version are the new "table comprehension" macros `collect` and `icollect`, a completely new serializer in `fennel.view`, and whole-table destructuring using `&as`. For a long time we considered adding things like `map` and `filter` into Fennel, but we decided against it because those are easily brought in by 3rd-party libraries like Lume or Luafun. Fennel has no runtime, so it can only include macros, and traditional map, filter, etc are best done as functions. However, taking inspiration from other languages list comprehensions, `collect` and `icollect` provide similar benefits but in the form of macros which makes them a much better fit for Fennel. No more needing to pull in a 3rd-party library for basic table manipulations. The new Fennelview is completely rewritten in a way that produces much more sensible indentation. The previous logic for indentation was very haphazard and driven by implementation details, now it follows lisp conventions. But even better is that it allows you to override the printing behavior with a `__fennelview` metamethod, and allows your output to get indented in a way that fits nicely with the context. And then the whole-table destructuring solves a long running problem of wanting to destructure a table but keep a reference around to the original. Previously you would have had to do this as two separate bindings; one for the destructuring and one for all: (let [{:a a :b b &as all} {:a 1 :b 2 :c 3 :d 4}] (+ a b all.c all.d)) ; => 10 The full list of user-visible changes: * Allow the parser to optionally include comments in the parsed AST * The fennelview module is now incorporated into the compiler as `fennel.view` * Fully rewrite fennelview for better indentation handling; see fennelview docstring for detailed description of API changes * Improve printing of destructured args in function arglist in `doc` * Allow plugins to provide repl commands * Fix a bug where decimal numbers would be emitted with commas in some locales * Label auto-generated locals in Lua output for improved readability * Fix the behavior of `...` inside `eval-compiler` * Warn when using the `&` character in identifiers; will be disallowed later * Add whole-table destructuring with `&as` * Add list/table "comprehension" macros (`collect`/`icollect`) * Numbers using underscores for readability **may not** begin with an underscore * Provide `...` arguments consistently with Lua when requiring modules * Fix a bug where `import-macros` would not respect certain compiler options * fennelview: respect presence of `__fennelview` metamethod on userdata metatables * Fix a bug where shebang caused incorrect sourcemapped row/col in stacktraces Thanks to everyone who contributed to this release; in particular Thomas Berryhill for the table comprehensions and Andrey Orst for the new Fennelview. You can download the latest version here: https://fennel-lang.org/downloads/fennel-0.8.0 https://fennel-lang.org/downloads/fennel-0.8.0.asc I think now we are not far off from a 1.0.0 release! Please let us know if you
(read more)
I thank Daniele F. for donating this terminal. He contacted me from the donation page at the end of May but I couldn’t retrieve it until the beginning of October, when I passed through Verona while I was going to Brusaporto (a few kilometres from Bergamo) where I attended an annual retrocomputing meeting. The terminal, after a thorough cleaning and an accurate inspection, turned on without any problems. It was just dusty and dirty. The first item I started to clean was the keyboard. The next picture shows it before and after the cleaning process. I know that I’ve said it before… detaching and cleaning every single key is boring. But it is a manual and repetitive task that frees my mind, I find it quite relaxing, and the final result is always worth the time spent. Look at the next photo: beautiful, clean, shiny keys, with that mechanical feeling I sometimes miss on modern keyboards. Here’s the keyboard board without the keys, after being cleaned: The next picture shows the detail of the key. There was no need for a “keycap puller”, the keys came off easily – so easily that I was lucky that no key was lost in all these years. This image is taken from the technical manual I found on the net. After the keyboard I cleaned the main unit. The “Lunar” badge was probably added by the seller or the distributor, but I couldn’t find any information about it. Under the badge you can see the original colour of the case. If you look closely, you can see that the CRT monitor has a ghost image caused by showing the same static text many hours a day for years. Here’s the teardown picture. There’s a sticker under the keyboard, used to keep track of the terminal settings. In the setup screen that you can see in the first picture there are 4 series of 4 bits: each one sets an option, explained in the manual and summed up on the sticker. The unit was designed with easy reparability in mind. The top and bottom case are kept together with just four clips; a few other clips keep the main unit attached to the bottom case. The motherboard and the graphic board can be pulled out by unscrewing a panel on the back. The power supply unit can be pulled from the main by lifting – you’ve already guessed – some clips. The power supply unit: The main processor is an Intel 8080. The Selanar Graphics 100 is an additional third party board that lets the terminal show 132 columns on screen and use advanced character formatting. It’s based on an Intel 8085 processor. The side view of the terminal: You can immediately recognize the VT100 on the manual cover: The most useful site I found about the VT100 is VT100.net; you can find the technical manual on the Internet Archive. The only information about the Selanar Graphics 100 came from a Google Book scan of Computerword magazine from August 1980. It cost $1195, and on the same page there’s an ad for the VT100 at $1550. That makes a total of $2745, that according to usinflationcalculator.com corresponds to $7926 in 2015. For a terminal!
(read more)
Please enable cookies. Please complete the security check to access angel.co Why do I have to complete a CAPTCHA? Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. What can I do to prevent this in the future? If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. If you are at an office or shared network, you can ask the network administrator to run a scan across
(read more)
RB Retro Collecting Interview 008 Check out Interviews #1 , #2, #3 , #4 , #5, #6 and #7 Brandon, aka SuperSparkster on Instagram, is one of the retro collectors I most relate to personally.  Everyone has their own collecting style and priorities, but Brandon and I both seem to align on curating a collection that is tailored to what makes them most excited.  A curated collection not only requires a great amount of restraint to avoid purchasing too much that you aren’t really going to enjoy, but also pruning certain pieces from your collection to keep it to the size you desire. Brandon’s main PVM-friendly gaming setup A few ye
(read more)
The concept of delivering food, packaged goods and medical supplies to consumers by drone did not begin with COVID-19. But the pandemic has added urgency to the race, as companies such as Zipline, Wing Aviation, Amazon Prime Air and UPS Flight Forward attempt to mobilize networks of drones to deliver packages safely and quickly to consumers and commercial offices. Putting the Customer First Unfortunately, these companies plan to deliver time-sensitive packages to the ground outside a home or business, leaving them vulnerable to “porch pirates,” inclement weather or curious pets. Enter the smart drone mailbox: a technology-enabled container that opens, receives and stores packages in
(read more)
Creators of the Hippocratic License establish a nonprofit to empower developers to use their technology talents for social good and to prevent harm Geneva, Switzerland, January 19, 2021 – The creator of the Hippocratic License, an ethical license for open source, and Contributor Covenant, the first and most popular code of conduct for open source projects, today announced the establishment of a new nonprofit, the Organization for Ethical Source (OES). Central to the philosophy of open source is the notion of software freedom, referred to as “Freedom Zero”: that open source software can be used for any purpose without restriction, even for explicitly “evil” purpo
(read more)
With 1.2 million members, r/changemyview is one of Reddit’s most active and popular subreddits. It’s a community built on the opposite of trolling: users post their flawed or partial opinions in a sincere effort to provoke responses that might challenge and, as the name says, even change their thinking. As a window into what Reddit, and the internet, can look like at their best, CMV has been the subject of glowing press. And for a company that has seen its share of public flare ups over hate speech, and hopes to transform itself into a more mainstream social network, /r/changemyview has emerged as a point of pride.Seeing an opportunity, the r/changemyview moderators decided in 2019 that
(read more)
Short selling strategy guides — New board members and a massive short squeeze cause stratospheric short-term growth. Enlarge / When will this stock [game]stop rising?Aurich LawsonNine months ago, GameStop stock bottomed out at $2.80 a share, a reflection of the myriad problems facing the retailer specifically and brick-and-mortar game retail as a whole. As of Tuesday morning, though, that stock price is hovering around $40 a share (peaking at $44.74 as of this writing), with the vast majority of those gains coming in the last couple of weeks.
(read more)