log in
It’s been two years since our company decided we’ll pick NativeScript to create and maintain our Android App.This was the biggest mistake our rapidly growing company made in the last 4 years. We are about to rebuild our Android app in Flutter from scratch now…Don’t make the same mistake and forget about {NS} before it’s too late:,,You can add NativeScript to an existing Angular Web project with the help of Angular CLI and NativeScript Schematics.”To take advantage of the automated migration commands for NativeScript Angular you will need to install the Angular CLI. Run the following command:npm install --global @angular/cliSource: https://docs.nativescript.org/angular/code-sharing/migrating-a-web-projectDo not believe it. It won’t work just like that. Turning your website to an Android/iOS App will going to be 6 months of struggling with NativeScript.You’ll have to learn how to use their barely working undocumented UI elements and API if you want to create more than a blue button on a white screen. Learning and understanding take months, since the docs are like 60% done, everything else takes days to find out on your own.If you want to work instead of praying for valuable Google results, don’t use NativeScript.They are behind with the docs for years. They always promise that the next version’s documentation will be really finished and will be awesome and contain everything.You wait, reload their website every day, ask them on their Slack channel, where they keep promising. Then they announce that they’ve started working on a new NativeScript version and never finish the current docs. This happened when I was upgrading to 6, then 7, and it’s happening now with version 8 too.Don’t expect that you’ll get proper documentation ever.You should expect instead:Unanswered questions on StackOverflowUnanswered or zero value answers (“it’s your fault…”) on GitHubJudging you on NativeScript Slack community instead of getting proper helpThey promise that you’ll get a real Native App finally, but they don’t mention that it’s going to be extremely slow.There are many GitHub issues opened about how they should improve the performance, but they don’t care at all. Usually, when you are right with a bug report, they don’t answer, just ignore you.Go to their Slack channel and ask them about anything I mention above. They’ll cut you out with some trendy BS like:,,You are too negative, I can’t help”,,We are working on NS for 6 years, how dare you tell something is wrong?”,,You can post a PR if you are that smart”They are very clear about, an Opensource project can’t get a negative review, this is the nature of an Opensource project. I think this thinking led the {NS} devs to the wrong path, they only accept your opinion when you are saying positive things about NativeScript. When you are “negative” (meaning you spot out something is wrong and ask about it), they’ll attack you together and shut you up.We are not perfect. Nobody does. But if everybody is telling me that I’m perfect, I won’t realize how should I improve myself. Right?Quote from one of their community leaders:Negative projections usual
(read more)
An LD_PRELOAD library that disables all forms of writing data safely to disk. fsync() becomes a NO-OP, O_SYNC is removed etc. The idea is to use in testing to get faster test runs where real durability is not required. DO NOT use libeatmydata on software where you care about what it stores. It's called libEAT-MY-DATA for a reason. see http://www.flamingspork.com/projects/libeatmydata Usage eatmydata foo Performance Improvements When running part of the MySQL test suite in 2007 on my laptop: TEST RESULT TIME (ms) TIME (with libeatmydata) ------
(read more)
Experiments to find Majorana signals are performed by loading a nanowire into a dilution refrigerator capable of cooling it down to close to absolute zero.Credit: HGA Architects and Engineers A shadow has fallen over the race to detect a new type of quantum particle, the Majorana fermion, that could power quantum computers. As someone who works in this area, I’ve become concerned that, after a series of false starts, a significant fraction of the Majorana field is fooling itself. Several key experiments claiming to have detected
(read more)
John Moore | Getty ImagesStudents of color have long complained that the facial detection algorithms Proctorio and other exam surveillance companies use fail to recognize their faces, making it difficult if not impossible to take high-stakes tests.Now, a software researcher, who also happens to be a college student at a school that uses Proctorio, says he can prove the Proctorio software is using a facial detection model that fails to recognize Black faces more than 50 percent of the time.“I decided to look into it because [Proctorio has] claimed to have heard of ‘fewer than five’ instances where there were issues with face recognition due to race,” Akash Satheesan, the researcher, told Motherboard. “I knew that from anecdotes to be unlikely … so I set out to find some more conclusive proof and I think I’m fairly certain I did.” Satheesan recently published his findings in a series of blog posts. In them, he describes how he analyzed the code behind Proctorio’s extension for the Chrome web browser and found that the file names associated with the tool’s facial detection function were identical to those published by OpenCV, an open-source computer vision software library.Satheesan demonstrated for Motherboard that the facial detection algorithms embedded in Proctorio’s tool performed identically to the OpenCV models when tested on the same set of faces. Motherboard also consulted a security researcher who validated Satheesan’s findings and was able to recreate his analysis. On its website, Proctorio claims that it uses “proprietary facial detection” technology. It also says that it uses OpenCV products, although not which products or what for. When Motherboard asked the company whether it uses OpenCV’s models for facial recognition, Meredith Shadle, a spokesperson for Proctorio, did not answer directly. Instead, she sent a link to Proctorio’s licenses page, which includes a license for OpenCV.“While the public reports don’t accurately capture how our technology works in full, we appreciate that the analyses confirm that Proctorio uses face detection (rather than facial recognition),” Shadle wrote to Motherboard in an email.Proctorio also did not answer several questions about the technology, including whether or not the company had fine-tuned the OpenCV models for use in its software.The failure of computer vision syste
(read more)
Yuriko Nakao | Getty ImagesGovernments around the world may start to clamp down on the use of bitcoin and other cryptocurrencies, the CEO of a top crypto exchange has warned.A number of officials — from U.S. Treasury Secretary Janet Yellen to European Central Bank President Christine Lagarde — have sounded the alarm about the use of bitcoin for money laundering, terrorist financing and other illegal activities."I think there could be some crackdown," Jesse Powell, CEO of Kraken, told CNBC in an interview. Cryptocurrencies have surged in value lately, with bitcoin hitting a record high price of more than $61,000 last month. The world's most valuable digital coin was last trading Monday at around $60,105.Kraken is the world's fourth-largest digital currency exchange in terms of trading volume. The firm is considering going public through a direct listing — similar to Coinbase — next year after achieving record trading volumes in the first quarter, CNBC reported last week.Coinbase is set to go public on Wednesday, and could be valued at as much as $100 billion — more than major trading venue operators like Intercontinental Exchange, owner of the New York Stock Exchange. Crypto investors are hailing the company's stock market debut as a major milestone for the industry after years of skepticism from Wall Street and regulators.Still, Kraken's chief thinks regulatory uncertainty around crypto isn't going away anytime soon. A recent anti-money laundering rule proposed by the U.S. government would require people who hold their crypto in a private digital wallet to undergo identity checks if they make transactions of $3,000 or more."Something like that could really hurt crypto and kind of kill the original use case, which was to just make financial services accessible to everyone," Powell said.Cryptocurrencies like bitcoin have often been associated with illicit activities due to the fact that people transacting with it are pseudonymous — you can see where funds are being sent but not who sent or received them.There are signs that the use of crypto for nefarious purposes may be falling. Illicit activity accounted for just 0.34% of all crypto transaction volume last year, according to blockchain analysis firm Chainalysis. That was down from roughly 2% a year earlier."I hope that the U.S. and international regulators don't take too much of a narrow view on this," Powell said. "Some other countries, China especially, are taking crypto very seriously and taking a very long-term view."Kraken's CEO said he feels the U.S. is more "shortsighted" than other nations and "susceptible" to the pressures of incumbent legacy businesses — in other words, the banks — that "stand to lose from crypto becoming a big deal.""I also think it might be too late," Powell added. "Maybe the genie's out of the bottle and just trying to ban it at this point would make it more attractive. It would certainly send a message that the government sees this as a superior alternative to their own currency."The U.S. isn't the only country considering strict new rules on crypto. In India, for example, the government is considering a law that would ban cryptocurrencies and pe
(read more)
Kicking off another busy Spring GPU Technology Conference for NVIDIA, this morning the graphics and accelerator designer is announcing that they are going to once again design their own Arm-based CPU. Dubbed Grace – after Grace Hopper, the computer programming pioneer and US Navy rear admiral – the CPU is NVIDIA’s latest stab at more fully vertically integrating their hardware stack by being able to offer a high-performance CPU alongside their regular GPU wares. According to NVIDIA, the chip is being designed specifically for large-scale neural network workloads, and is expected to become available in NVIDIA products in 2023. With two years to go until the chip is ready, NVIDIA is playing things relatively coy at this time. The company is offering only limited details for the chip – it will be based on a future iteration of Arm’s Neoverse cores, for example – as today’s announcement is a bit more focused on NVIDIA’s future workflow model than it is speeds and feeds. If nothing else, the company is making it clear early on that, at least for now, Grace is an internal product for NVIDIA, to be offered as part of their larger server offerings. The company isn’t directly gunning for the Intel Xeon or AMD EPYC server market, but instead they are building their own chip to complement their GPU offerings, creating a specialized chip that can directly connect to their GPUs and help handle enormous, trillion parameter AI models. NVIDIA CPU Specification Comparison   Grace Carmel Denver 2 CPU Cores ? 8 2 CPU Architecture Next-Gen Arm Neoverse Custom Arm v8.2 Custom Arm v8 Memory Bandwidth >500GB/sec LPDDR5X (ECC) 137GB/sec LPDDR4X 60GB/sec LPDDR4 GPU-to-CPU Interface >900GB/sec NVLink 4 PCIe 3 PCIe 3 CPU-to-CPU Interface >600GB/sec NVLink 4 N/A N/A Manufacturing Process ? TSMC 12nm TSMC 16nm Release Year 2023 2018 2016 More broadly speaking, Grace is designed to fill the CPU-sized hole in NVIDIA’s AI server offerings. The company’s GPUs are incredibly well-suited for certain classes of deep learning workloads, but not all workloads are purely GPU-bound, if only because a CPU is needed to keep the GPUs fed. NVIDIA’s current server offerings, in turn, typically rely on AMD’s EPYC processors, which are very fast for general compute purposes, but lack the kind of high-speed I/O and deep learning optimizations that NVIDIA is looking for. In particular, NVIDIA is currently bottlenecked by the use of PCI Express for CPU-GPU connectivity; their GPUs can talk quickly amongst themselves via NVLink, but not back to the host CPU or system RAM. The solution to the problem, as was the case even before Grace, is to use NVLink for CPU-GPU communications. Previously NVIDIA has worked with the OpenPOWER foundation to get NVLink into POWER9 for exactly this reason, however that relationship is seemingly on its way out, both as POWER’s popularity wanes and POWER10 is skipping NVLink. Instead, NVIDIA is going their own way by building an Arm server CPU w
(read more)
Find out where you fall on the Open-Source Character Alignment Chart Binaries available in releases. If you prefer to install from source, run the following in your command line (requires Go) go get -u github.com/soypat/gitaligned How to use (requires git) Run gitaligned -h for help. Running gitaligned in this repo: gitaligned -u soypat Output: Author soypat is Neutral Good Commits: 6 Accumulated:{-0.2 2} Planned Output: Steve -- Chaotic Neutral (89.9% confidence) 82 commits 99 % Lean towards Chaotic 10 % Lean towards Good How it works (sort of) For now gitaligned does some basic natural language processing using prose and has some ad-hoc rules based on typical git
(read more)
NVIDIA introduces GRACE CPUNVIDIA GRACE is a next-generation ARM-based CPU designed for giant-scale AI and HPC applications.Today at GTC 2021 NVIDIA announces its first CPU called GRACE. The CPU is designed for AI and servers, it is not a consumer product.NVIDIA confirmed that GRACE features the highest memory bandwidth of 500 GB/s thanks to LPDDR5X technology with ECC correction. It also attaches to GPU through Cache Coherent NVLINK to GPUs at 900 GB/s. A CPU to CPU connection is up to 600 GB/s.The CPU is based on ARM architecture. It features Neoverse cores, the slide we obtained confirms.“Leading-edge AI and data science are pushing today’s computer architecture beyond its limits—pr
(read more)
April 2021Every year since 1982, Forbes magazine has published a list of the richest Americans. If we compare the 100 richest people in 1982 to the 100 richest in 2020, we notice some big differences.In 1982 the most common source of wealth was inheritance. Of the 100 richest people, 60 inherited from an ancestor. There were 10 du Pont heirs alone. By 2020 the number of heirs had been cut in half, accounting for only 27 of the biggest 100 fortunes.Why would the percentage of heirs decrease? Not because inheritance taxes increased. In fact, they decreased significantly during this period. The reason the percentage of heirs has decreased is not that fewer people are inheriting great fortunes,
(read more)
Wikidata, SPARQL, and RDF in general. And I guess semi-relatedly things like Prolog? I recently decided to fiddle with Wikidata, and it is fascinating to be able to query for any part of a statement, not just the value!In SPARQL you write statements in the form But the cool part is that any of those three parts can be extracted, so you can ask things like "what are the cities in ", or "what country harbors the city ", but most importantly, "how does relate to ".For example, if you wanted to find out all the historical monuments in state capitals of a country (using my home country as an example, also pseudocode for
(read more)
Today, we are introducing the OpenSearch project, a community-driven, open source fork of Elasticsearch and Kibana. We are making a long-term investment in OpenSearch to ensure users continue to have a secure, high-quality, fully open source search and analytics suite with a rich roadmap of new and innovative functionality. This project includes OpenSearch (derived from Elasticsearch 7.10.2) and OpenSearch Dashboards (derived from Kibana 7.10.2). Additionally, the OpenSearch project is the new home for our previous distribution of Elasticsearch (Open Distro for Elasticsearch), which includes features such as enterprise security, alerting, mach
(read more)
Arihant Verma is a Software Engineer based in India. He likes to read open source code and help others understand it. He’s a rich text editors fanatic. His … More about Arihant ↬In this article, we’ll look at how to create an outside focus and click handler with React. You’ll learn how to recreate an open-source React component (react-foco) from scratch in doing so. To get the most out of this article, you’ll need a basic understanding of JavaScript classes, DOM event delegation and React. By the end of the article, you’ll know how you can use JavaScript class instance properties and event delegation to create a React component that helps you detect a click or focus outside of
(read more)
Photo: Loic Venance (Getty Images)When we talk about Facebook’s myriad foibles and fuckups, we’re usually laying the blame on things that happen within the Big Blue App, or, increasingly, the social network’s CEO. What’s less discussed are the company’s ties to the potentially millions of sites and services using its software—but now, thankfully, we can get a window into that for ourselves. But don’t get too excited.In a blog post earlier today, the famously privacy-conscious Mark Zuckerberg announced—in honor of Data Privacy Day, which is apparently a thing—the official rollout of a long-awaited Off-Facebook Activity tool that allows Facebook users to monitor and manage the connections between Facebook profiles and their off-platform activity.“To help shed more light on these practices that are common yet not always well understood, today we’re introducing a new way to view and control your off-Facebook activity,” Zuckerberg said in the post. “Off-Facebook Activity lets you see a summary of the apps and websites that send us information about your activity, and clear this information from your account if you want to.”Zuck’s use of the phrases “control your off-Facebook activity” and “clear this information from your account” is misleading—you’re not really controlling or clearing much of anything. By using this tool, you’re just telling Facebook to put the data it has on you into two separate buckets that are otherwise mixed together. Put another way, Facebook is offering a one-stop-shop to opt-out of any ties between the sites and services you peruse daily that have some sort of Facebook software installed and your own-platform activity on Facebook or Instagram.The only thing you’re clearing is a connection Facebook made between its data and the data it gets from third parties, not the data itself.G/O Media may get a commissionAs an ad-tech reporter, my bread and butter involves downloading shit that does god-knows-what with your data, which is why I shouldn’t’ve been surprised that Facebook hoovered data from more 520 partners across the internet—either sites I’d visited or apps I’d downloaded. For Gizm
(read more)
https://encore.dev Encore is a Go backend framework for rapidly creating APIs and distributed systems. It uses static analysis and code generation to reduce the boilerplate you have to write, resulting in an extremely productive developer experience. The key features of Encore are: No boilerplate: Encore drastically reduces the boilerplate needed to set up a production ready backend application. Define backend services, API endpoints, and call APIs with a single line of Go code. Distributed Tracing: Encore uses a combination of static analysis and code generation to automatically instrument your application for excellent observability. Automatically captures information about API calls, goroutines, HTTP requests, database queries, and more. Automatically works for local development as well as in production. Infrastructure Provisioning: Encore understands how your application works, and uses that understanding to provision and manage your cloud infrastructure. Automatically works with all the major cloud providers, as well as for local development. Simple Secrets: Encore makes it easy to store and securely use secrets and API keys. Never worry about how to store and get access to secret values again. API Documentation: Encore parses your source code to und
(read more)
April 12, 2021 4 minute read This is an excerpt from my upcoming corporate open source strategy book, being published by Pragmatic Bookshelf in 2021. All book excerpt content is early in the development process and therefore unedited; the errors are mine alone (and will be fixed before publishing 😉). Intellectual property (IP) concepts play a huge role in software in general and free and open source software in particular. IP is a complex and nuanced body of law, but thankfully you don’t need to pass the bar to understand the fundamental concepts, starting with copyright and its relation to software. As you’ve probably already guessed, software is one of those things that does fall under copyright. The source code and related files are the expression of the ideas of the creators. Therefore, whoever writes the code (or the entity for which they’re writing it) has copyright over their creation. However, as you’ve probably also guessed, the relationship between software and copyright falls firmly in the It’s Complicated camp. According to copyright law, software counts as a literary work. It’s the written expression of an idea. Remember, though: only the expression falls under copyright, not the idea itself. Therefore you could write a piece of software that performs the function of an egg timer and you would have copyright over that software. However, I could see your software, think, “Gee, I could really use a digital egg timer!” and then implement the idea myself. Unless you somehow managed to receive a patent on egg timers, I would be entirely within my rights to create this new expression of an existing idea. You could sue me for copyright infringement anyway, but you’d need to prove that my program copies yours. Some of the criteria used to prove this include the structure and organisation of the original source code, so even if I were to have used a different programming language, if I use the same code structure (even coincidentally) then it can appear as if I copied your program.
(read more)
— Published on Apr 12, 2021 10:25 AM The voting members of the Free Software Foundation, which include the board of directors, voted to appoint Richard Stallman to a board seat after several months of thorough discussion and thoughtful deliberation. We decided to bring RMS back because we missed his wisdom. His historical, legal and technical acumen on free software is unrivaled. He has a deep sensitivity to the ways that technologies can contribute to both the enhancement and the diminution of basic human rights. His global network of connections is invaluable. He remains the most articulate philosopher and an unquestionably dedicated advocate of freedom in computing. RMS acknowledges that he has made mistakes. He has sincere regrets, especially at how anger toward him personally has negatively impacted the reputation and mission of FSF. While his personal style remains troubling for some, a majority of the board feel his behavior has moderated and believe that his thinking strengthens the work of the FSF in pursuit of its mission. We take full responsibility for how badly we handled the news of his election to a board seat. We had planned a flow of information that was not executed in a timely manner or delivered in the proper sequence. FSF staff should have been informed and consulted first. The announcement by RMS at LibrePlanet was a complete surprise to staff, all those who worked so hard to organize a great event, to LibrePlanet speakers and to the exhibitors. We had hoped for a more inclusive and thoughtful process and we apologize that this did not occur. In his position on the board, RMS has the same responsibilities as other members. He is an unpaid volunteer and subject to the organization's policies, including prohibitions against conflicts of interest and sexual harassment and those outlining whistleblower processes and fiduciary duties. The responsibilities of the board are described at https://www.fsf.org/about/the-role-of-the-fsfs-board-of-directors. We believe his views will be critical to the FSF
(read more)
This may come as a bit of a shocker, but technically speaking, not all water on Earth is made up of H2O molecules.Less than a century ago, the discovery of the hydrogen isotope deuterium – 2H, but often simplified to D – revealed the existence of another kind of water with the chemical formula 2H2O or simply D2O. Here's how they differ. A typical hydrogen atom contains one proton within its nucleus. The deuterium isotope, however, has a neutron in addition to the proton, giving the hydrogen atom a greater mass. Hence, water formed with this type of heavy hydrogen is usually called... heavy water.Aside from that one key difference between H2O and D2O – which gives heavy water about 10 percent greater density than regular water – these two water types are chemically the same,
(read more)
— Published on Apr 12, 2021 10:24 AM Ever since my teenage years, I felt as if there were a filmy curtain separating me from other people my age. I understood the words of their conversations, but I could not grasp why they said what they did. Much later I realized that I didn't understand the subtle cues that other people were responding to. Later in life, I discovered that some people had negative reactions to my behavior, which I did not even know about. Tending to be direct and honest with my thoughts, I sometimes made others uncomfortable or even offended them -- especially women. This was not a choice: I didn't understand the problem eno
(read more)
In the latest A/B test, Microsoft is using Windows 10’s taskbar to push Chromium Edge-powered web apps for YouTube, Facebook, Office, and more. The new Edge popup from Microsoft will appear after applying general Windows Updates, or when you’re normally browsing other apps. If you’ve Windows 10 October 2020 Update or newer, and whether or not you have the Edge browser icon on your taskbar, you may soon start seeing a new pop-up that encourages you to try the Edge-powered web apps. “Go straight to top sites”, the pop-up notification reads, with Microsoft explaining that it will “pin your favourite sites to quickly open tabs directly from the taskbar”. The feature is apparently based on Microsoft Edge’s taskbar pinning wizard, which was introduced last year. Edge alert when Chrome is the default browser It’s worth noting that the pop-up will appear even when Microsoft Edge is the default browser and you’ve already pinned sites to the taskbar. The company is not targeting people who use Google Chrome and Firefox as default browsers. Edge alert when it is the default browser Microsoft originally started experimenting with the alerts in
(read more)
by Marko | November 23, 2020 Using console.log() for JavaScript debugging is the most common practice among developers. But, there is more… The console object provides access to the browser’s debugging console. The specifics of how it works vary from browser to browser, but there is a de facto set of features that are typically provided. * The most common Console methods: console.log() – For general output of logging information. console.info() – Informative logging of information. console.debug() – Outputs a message to the console with the log level debug. console.warn() – Outputs a warning message. console.error() – Outputs an error message. * Custom CSS styles for a console.log() The console.log output can be styled in DevTools using the CSS format specifier. * String substitutions When passing a string to one of the console object’s methods that accept a string (such as log()), you may use these substitution strings: %s – string %i or %d – integer %o or %O – object %f – float * console.assert() Log a message and stack trace to console if the first argument is false. * console.clear() Clear the console. * console.count() Log the number of times this line has been called with the given label.
(read more)
Now for something completely different. In the spiritual vein of One Night in Rio: Vacation photos from Plan9 and AWK for multimedia, here is a tool that is the link that ties almost all the projects within the Arcan umbrella together into one – and one we have been building towards for a depressing number of years and tens of thousands of hours. Pipeworld (github link) combines ‘dataflow‘ programming (like Excel or Userland) with a Zooming-Tiling User Interface (ZUI). It builds dynamic pipelines similarly to (Ultimate Plumber), and leverages most of the gamut of Arcan features — from terminal emulator liberated CLIs and TUIs to dynamic network transparency. It follows many of the principles for a Diverging Desktop Future, particularly towards the idea of making clients simpler and more composable by focusing on interactive “breadboarding” data exchange. There is a whole lot of ground to cover, so let’s get started. The following is a video (youtube) that joins all the clips in this article together, but you will likely understand more of what is going on by reading through the sections. Shortlinks to the individual sections are as follows: Zoomable UIDataflow ComputingTerminal, CLI and PipelinesAdvanced Networking, Sharing and DebuggingTrajectory and Future Zoomable (Tiling) UI The core is based around ‘cells’ of various types. These naturally tile in two dimensions as rows and columns. The first cell on each row determine
(read more)
No plug-ins, zero configuration. All the essentials included by default.File FinderQuickly indexes and finds files using a simple, accurate matching algorithm. Ignores git directories by default; easily configurable to your own liking, if you must.Easy MovementFast, precise cursor movement without repetitive keystrokes or fancy expressions. Look where you'd like to move, and type the token. That's it.Symbol JumpMove to any class, struct, or method definition within the current buffer. Easily augment the default set of supported languages using the .sublime-syntax format.Flexible KeymapsSimple
(read more)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] From: Eli Zaretskii Subject: Getting ready to land native-compilation on master Date: Fri, 09 Apr 2021 17:02:15 +0300 AFAICT, we are quite ready to land this important feature. The branch was tested on several systems and is in good shape: many issues and bugs were fixed, and currently no known issues remain that block the merge. (There's a lot yet to do wrt documenting the feature and its various aspects, but that can be done on master after merging.) If some of you hav
(read more)
In July 2014 Taylor Swift wrote an editorial in the Wall Street Journal entitled, For Taylor Swift, the Future of Music Is a Love Story: There are many (many) people who predict the downfall of music sales and the irrelevancy of the album as an economic entity. I am not one of them. In my opinion, the value of an album is, and will continue to be, based on the amount of heart and soul an artist has bled into a body of work, and the financial value that artists (and their labels) place on their music when it goes out into the marketplace. In recent years, you’ve probably read th
(read more)
Customers are at the heart of every business. There is nothing more frustrating for the average customer than having to navigate some company’s automated support and messaging system. When each process “has to be” funneled through an AI empowered chatbot, to customer service representatives, all while distinctly feeling herded and managed, it increases levels of frustration for users. Remember, customers are forced to communicate this way. When phone numbers are intentionally obfuscated, and companies are increasingly relying on chatbot systems to interact, the customer loses their feeling of power and ability to accomplish their goals. They’re lost. There’s no question of the efficacy of chatbots to handle the majority of transactional communications. There is clear e
(read more)
The Zig project has a non-profit foundation that needs to be managed, a community to shape, and the actual language to develop. These are all big, complex problems that don’t default to a positive outcome without active care. Andrew did an amazing job laying the foundations, from deliberately choosing a non-profit corporate model, to picking clear values based on respect and empathy for the community to crystallize around, and finally by leading development by example both when it comes to exploring new ideas and when doing the methodical part of the work required to go from a proof of concept to a reliable tool, like zig cc, for example. This is already a huge amount of good work that has been done and I’m happy to have been contributing to it for almost a year by now, but I know tha
(read more)
This article is part of the Technology Insight series, made possible with funding from Intel. As we create more content, deploy more sensors at the network’s edge, and replicate more data for AI to contextualize, the demand for compute bandwidth roughly doubles every three years. Keeping up is becoming increasingly difficult as modern computing architectures get closer and closer to the theoretical performance limits of electrical connections linking their processors, storage, and networking components. Silicon photonics technology—a combination of silicon integrated circuits and semiconductor lasers—may help  overcome the bottlenecks imposed by electrical I/O, replacing copper connections with optical ones at the board and package level. According to James Jaussi, senior pri
(read more)
Loading... In December, we announced the beta of Cloudflare Pages: a fast, secure, and free way for frontend developers to build, host, and collaborate on Jamstack sites.It’s been incredible to see what happens when you put a powerful tool in developers’ hands. In just a few months of beta, thousands of developers have deployed over ten thousand projects, reaching millions of people around the world.Today, we’re excited to announce that Cloudflare Pages is now available for anyone and ready for your production needs. We’re also excited to show off some of the new features we’ve been working on
(read more)
Microsoft announced Monday it would buy Nuance Communications, a software company that focuses on speech recognition through artificial intelligence, in an all-cash transaction valued at $19.7 billion (including debt assumption).Why it matters: This is Microsoft's second-largest acquisition, behind the $26.2 billion deal for LinkedIn in 2016.Microsoft is trying to leapfrog competitors like Google and Amazon as they face record antitrust scrutiny.Its cloud business has also been booming during the pandemic. Microsoft's stock hit an all-time high on Friday, as it approaches $2 trillion in market value. Details: Nuance makes money by selling software tools that help to transcribe speech. The Burlington, Massachusetts-based company, for example, powered the speech recognition engine behind App
(read more)
INTENDED AUDIENCE: Raspberry Pi hobbyists. Software developers with no embedded systems experience. READ TIME: About 10 minutes, excluding exercises. GOAL: The instructions below will explain how to build a Linux environment for a Raspberry Pi 3B from scratch, focusing on extreme minimalism. I will build most components from source code and use BusyBox as the only user application on the target. The focus is on minimalism for the sake of learning. Optimizations like network boot, secondary bootloaders, compressed filesystems, etc.. will not be covered. Hardware Requirements Partition the SD Card Download Firmware Blobs Create A Toolchain on Host Machine Build the Kernel Copy Kernel and DTBs to Root Partition Configure Kernel and Bootloader Create Local Directory for Root F
(read more)
As you may notice, this is almost a part 2 of my Secure your boot process: UEFI + Secureboot + EFISTUB + Luks2 + lvm + ArchLinux. Except that here i’ll not talk about all the secureboot stuff that i’ve already ran into on my last blogpost. This one is specifically focused on how to achieve the same setup using Fedora. This blogpost compiles my personal opinions around using bootloaders on EFI environments so, the classic “opinions expressed here are solely my own and do not express the views or opinions of my employer” applies. Fedora manual installation process. Luks2+lvm setup for encrypted partitions at boot time. /home disk setup with some dracut tweaks. EFISTUB to make Linux “it’s own bootloader” avoiding the entire /boot to be mounted on your ESP. Unified kernel
(read more)
“I constantly ask myself, Do I deserve this money?” Animation: QuickHoney Since July 2020, nearly 750 companies have gone public, raising more than $200 billion and minting thousands of new paper millionaires. Amid the frenzy, one millennial tech worker on the verge of unexpected wealth shared what was going through her mind. When I joined my company, I theoretically knew there were only two exit paths — an acquisition or an IPO. And a third, where the company implodes, like WeWork, but you’r
(read more)
Press play to listen to this article An effort to turn "ecocide" — the systematic destruction of the environment — into an international crime on par with genocide and crimes against humanity is gaining momentum in the EU. Buried deep in an obscure European Parliament report is a sentence calling for the EU to explore the idea. The provision was backed by most of the legislature's political groupings in committee in March, which means it's likely to be adopted by the full Parliament later this month. That puts the EU way out in front of most other jurisdictions in an international bid to make ecocide a crime prosecuted by the International Criminal Court (ICC) in The Hague. “It’s a paradigm shift,” Marie Toussaint, the French Green MEP who
(read more)
A comprehensive list of various text to diagram tools. Markdeep https://casual-effects.com/markdeep/ markdown, ascii-to-all Svgbob https://ivanceras.github.io/svgbob-editor/ ascii-to-all Archetype https://fatiherikli.github.io/archetype/ ascii-drawing Textik https://textik.com/ ascii-drawing ASCIIFlow http://asciiflow.com/ ascii-drawing Pikchr https://pikchr.org/home/pikchrshow all Kroki https://kroki.io/ BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag, BPMN, Bytefield, PlantUML, Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, PlantUML, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom BPMN Sketch Miner https://www.bpmn-sketch-miner.ai/ BPMN/flow Webgraphviz http://www.webgraphviz.com/ graphviz Viz.js http://viz-js.com/ graphviz Edotor https://edotor.net/ graphviz
(read more)
Who, Me? We return to the Cold War in today's Who, Me? Start your week with suspected sabotage, computer sleuthery, and a satisfying slug of Grand Marnier deep in the heart of 1970s Москва. It was 1978 and our reader was working for a firm that had just sold a computer to the company that manufactured the Moskvitch. Sadly now defunct, the Moskvitch was the must-have car of the time for citizens of the Soviet Union (officially, at least). Despite being the butt of a thousand jokes, demand for the vehicle outstripped supply and people found themselves with a substantial wait before they could get their hands on the rear-wheel-drive engineering marvel. Our reader, who was initially Regomised as "Boris", but whom we've opted to call "Ivan Ivanovich" was sent to the site to invest
(read more)
Good evening! A brief(ish?) note today about some Guile nargery.the arc of historyLike many language implementations that started life when you could turn on the radio and expect to hear Def Leppard, Guile has a bottom half and a top half. The bottom half is written in C and exposes a shared library and an executable, and the top half is written in the language itself (Scheme, in the case of Guile) and somehow loaded by the C code when the language implementation starts.Since 2010 or so we have been working at replacing bits written in C with bits written in Scheme. Last week's missive was about replacing the implementation of dynamic-link from using the libltdl library to using Scheme on top of a low-level dlopen wrapper. I've written about rewriting eval in Scheme, and more recently
(read more)
X-Seed 4000X-Sen Shushi 4000The design of X-Seed 4000General informationStatusNever builtTypeMixed useLocationTokyo, JapanHeightRoof4,000 m (13,123 ft)Technical detailsFloor count800 The X-Seed 4000 was a concept skyscraper.[1] The idea was initially created and developed by Martin Pascoe. Its proposed 4-kilometre (2.5 mi) height, 6-kilometre-wide (3.7 mi) sea-base, and 800-floor capacity could accommodate 500,000 to 1,000,000 inhabitants. This structure would be composed of over 3,000,000 tons of steel. It was designed for Tokyo, Japan by the Taisei Corporation in 1995 as a futuristic environment combining ultra-modern and technological living and interaction with wildlife and nature.[2][3] Methods of transportation within the X-seed would most likely include MagLev trains. The X-Seed 4000 "is never meant to be built," says Georges Binder, managing director of Buildings & Data, a firm which compiles data banks on buildings worldwide. "The purpose of the plan was to earn some recognition for the firm, and it worked."[4] Unlike conventional skyscrapers, to remain habitable the X-Seed 4000 would be forced to actively protect its occupants from considerable internal air pressure and external air pressure gradations and weather fluctuations that its massive elevation would cause. Its design calls for the use of solar power to maintain internal environmental conditions.[1] As the proposed site for the structure is located in the Pacific Ring of Fire, the most active volcano range in the world, the X-Seed 4000 would be subject to earthquakes and tsunamis. A sea-based location and a Mount Fuji shape are some of this building's other major design features—the real Moun
(read more)
Welcome back to Supercalifragilistic! This time I’m changing the format a bit. I wanted to deliver actionable insights for product teams, and finding real-life examples from well-performing products felt like a great place to start. So I sat down with Justin Gage from Retool and asked him about a feature launch that went well. Read on 📖.New here? Subscribe to get the next editions 💌Re-what now?Let’s kick off with a word on Retool and the problem it solves. Simply put, Retool helps you build a better back-office, faster. If you’ve worked for a large tech company, chances are you’ve met engineers working on internal tools. Well, Retool is handling this tedious work for them so they can focus on other problems. Not only that, but they made building your back-office fun in the process. You should try it! It’s like popping up components from your design system in Figma, except in Retool they come to life in seconds.And if you haven’t listened to Rick Astley for a while I recommend checking their design system documentation. It sets the tone for what to expect in the product: simple and effective.Am I smelling another no-code tool?Retool positions itself as a tool for technical folks, and you’ll need to be comfortable with basic SQL and Javascript to get the most out of it. But it’s safe to say that Retool wants you to write less code.Is Retool that useful?DoorDash thinks so. So does Brex. And Peloton. And Mercedes. And Tom Brad... Sorry I meant the NFL. Not sure Brady knows about Retool yet. There’s a reason Retool has experienced massive growth since its start a little over two years ago. Guess what happens once you start using Retool? Not only do you
(read more)
By Leo KelionTechnology desk editorimage copyrightPA Mediaimage captionMakers of the NHS Covid-19 app had planned to ask infected users to share their check-in historiesAn update to England and Wales's contact tracing app has been blocked for breaking the terms of an agreement made with Apple and Google.The plan had been to ask users to upload logs of venue check-ins - carried out via poster barcode scans - if they tested positive for the virus. This could be used to warn others.But the two firms had explicitly banned such a function from the start.Under the terms that all health authorities signed up to in order to use Apple and Google's privacy-centric contact-tracing tech, they had to agree not to collect any location data via the software. As a result, Apple and Google refused to make the update available for download from their app stores last week, and have instead kept the old version live.When questioned, the Department of Health declined to discuss how this misstep had occurred.Scotland has avoided this pitfall because it released a separate product - Check In Scotland - to share venue histories, rather than trying to build the functionality into its Protect Scotland contact-tracing app.image copyrightNHS Scotlandimage captionThe Check In Scotland app was launched on 18 DecemberVirus hotspotsNHS Covid-19's users have long been able to scan a QR code when entering a shop, restaurant or other venue to log within the app the fact that they had visited.But this data has never been accessible to others.Instead, it has only come into use if local authorities have identified a location as being a virus hotspot by other means, and flagged the fact to a central database.Since each phone regularly checks the database for a match, it can alert the owner if they need to take action as a consequence, without sharing the information with others.However, this facility has rarely been used, in part because prior to the most recent lockdown, many local authorities were confused about what they were supposed to do.Before shops reopened in England and Wales on Monday, along with outdoor hospitality venues in England, the intention had been to automate the process.image ca
(read more)
An illegal prime is a prime number that represents information whose possession or distribution is forbidden in some legal jurisdictions. One of the first illegal primes was found in 2001. When interpreted in a particular way, it describes a computer program that bypasses the digital rights management scheme used on DVDs. Distribution of such a program in the United States is illegal under the Digital Millennium Copyright Act.[1] An illegal prime is a kind of illegal number. History[edit] One of the earliest illegal prime numbers was generated in March 2001 by Phil Carmody. Its binary representation corresponds to a compressed version of the C source code of a computer program implementing the DeCSS decryption algorithm, which can be used by a computer to circumvent a DVD's copy protection.[1] Protests against the indictment of DeCSS author Jon Lech Johansen and legislation prohibiting publication of DeCSS code took many forms.[2] One of them was the representation of the illegal code in a form that had an intrinsically archivable quality. Since the bits making up a computer program also represent a number, the plan was for the number to have some special property that would make it archivable and publishable (one method was to print it on a T-shirt). The primality of a num
(read more)
April 2021 Summary: This article presents Mugo, a single-pass compiler for a tiny subset of the Go programming language. It outputs (very naive) x86-64 assembly, and supports just enough of the language to implement a Mugo compiler: int and string types, slices, functions, locals, globals, and basic expressions and statements. Go to: Which subset? | Codegen | Lexer and Parser | Performance | Related projects I’ve been fascinated with compilers since I started coding. One of my first programming projects was “Third”, a self-hosted Forth compiler for 8086 DOS. Forth is incredibly easy to compile: there are no expressions or statements, and each space-separated token gets compiled directly to a call instruction – often via techniques like direct threading. Typical languages like C and Go have more complex syntax with expressions and statements, so they require real parsers and code generators. Compilers for these languages are usually complex and powerful, but as we’ll see, if you stick to basic types and non-optimized output, you can still write a simple one. Mugo is kind of in the spirit of the Obfuscated Tiny C Compiler by Fabrice Bellard, though of course mine’s far more pedestrian, and won’t be winning the IOCCC anytime soon. Bellard’s compiler implements just enough C to compile itself to a native i386 Linux executable. I wanted to do something a bit like that with Go, minus the obfuscation. The idea started as a shower thought: “I wonder what’s the smallest subset of Go that could compile itself?” Fabrice’s C compiler is implemented in 2048 bytes of obfuscated C, whereas mine is 1600 lines of formatted Go. While this was a fun exercise to do over a long weekend, it’s very much a toy – it leaves out all the great features of Go: user-defined types, interfaces, goroutines, channels, maps, garbage collection, even bounds checking! My goal with Mugo was educational: for me, and hopefully also for you. Doing exercises like this helps demystify how our tools work. Which subset of Go? Mugo is a subset of Go, so the source code can be compiled with Go as well as with Mugo. In my opinion, this makes it much more intere
(read more)
There’s a neat pattern that doesn’t seem to be well known. Until I joined the Application Development Team at Vortexa (we’re hiring), I hadn’t actually heard of it - but now I use it quite often. It’s called switch true and it’s really simple. Basic Switch Click here to skip the recap of the basic switch statement. Most JavaScript developers are familiar with the switch statement (mdn docs), but for those who are newer to the language, let’s briefly go over it. The switch statement lets you match an expression against one of a number of different cases: const city = "London"; const getCountryByCity = () => { switch (city) { case "Edinburgh": return "Edinburgh is the capital city of Scotland"; case "Madrid": return "Madrid is the capital city of Spain"; case "London": return "London is the capital city of England"; default: return "Cannot find which country this city is the capital of."; } }; In this example, the expression (city variable) is matched against each case in the switch statement. If the case matches the result of the expression, the case will be executed - in this example it will return a string. Switch (true) The fundamental principle of the switch true pattern is that you can match against expressions as well as values. An expression in a case will be evaluated before matching. If the expression in your case evaluates to true - it will be matched. switch (true) { case 1 + 1 === 2: default: } Why is this useful This pattern can be used in so many different situations - often to replace complex if/else statements. A common scenario this pattern becomes handy in is if you are validating data and have a set of criteria which will cause the validation to fail: const user = { firstName: "Seán", lastName: "Barry", email: "[email protected]", number: "00447123456789", }; if (!user) { throw new Error("User must be defined."); } else if (!user.firstName) { throw new Error("User's first name must be defined"); } else if (typeof user.firstName !== "string") { throw new Error("User's first name must be a string"); } else if ( return user; This can be re-written using switch
(read more)
What are you doing this week? Feel free to share! Keep in mind it’s OK to do nothing at all, too. I started a job as a PhD student so currently reading up on scientific literature. It’s super interesting although it’s maddening that the notation is not really standardized so far and that makes it harder to read what’s actually being done in the paper. Putting the finishing touches on my Lobsters client for Android before
(read more)
Bonjour Paris! We are Äike* The cold Northern winds have brought us here to France to spark a change. *you don't need to pronounce it, you need to experience it! Black Thunder Blue Breeze Red Riding Hood Grey
(read more)
In previous post, I implemented a simple HTTPS client, but the program has a small flaw, i.e., when connecting to “www.google.com:443“, it will report following error in verifying certificate: error code is 18:self signed certificate error code is from SSL_get_verify_result: long SSL_get_verify_result(const SSL *ssl) { return ssl->verify_result; } and 18 is mapping to X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT, which means “self-signed certificate”. But for other websites, e.g., facebook.com, no error is outputted. Use OpenSSL‘s client-arg program to test: # LD_LIBRARY_PATH=/root/openssl/build gdb --args ./client-arg -connect "www.google.com:443" ...... Thread 2 hit Breakpoint 1, main (argc=3, argv=0xfffffc7fffdf4c38) at client-arg.c:99 99 BIO_puts(sbio, "GET / HTTP/1.0\n\n"); (gdb) p ssl->verify_result $1 = 18 (gdb) The same error code: 18. But openssl-s_client can guarantee the certificate is not “self-signed”: # LD_LIBRARY_PATH=/root/openssl/build openssl s_client -connect google.com:443 CONNECTED(00000004) depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign verify return:1 depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1 verify return:1 depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.google.com verify return:1 --- Certificate chain 0 s:C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.google.com i:C = US, O = Google Trust Services, CN = GTS CA 1O1 1 s:C = US, O = Google Trust Services, CN = GTS CA 1O1 i:OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign --- ...... Hmm, I need to find the root cause. First of all, I searched the code to see when X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT is set, and found only one spot: if (self_signed) return verify_cb_cert(ctx, NULL, num - 1, sk_X509_num(ctx->chain) == 1 ? X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT : X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN); The interesting thing is the amount of certificates in the chain is only 1, but from above openssl-s_client‘s output, there are 2 certificates in the chain. OK, let’s see the content of this “self-signed” certificate. After some debugging, I finally found tls_process_server_certificate, which is used to process
(read more)
Over the weekend, reports have come in of the recent massive Tesla solar roof price increase hitting several customers, some of whom have been waiting about a year with signed installation contracts. The price increase seems to apply to Tesla Powerwall installations, too, with the cost of those increasing by about 30%. Some customers have even already spent thousands of dollars in preparation for the job, and yet are being told that their solar roof installation will cost tens of thousands of dollars more than anticipated. The communication was sent out by Tesla yesterday, and it went to many customers. In addition to emails we’ve received on our tip line, a rapidly growing Tesla Motors Club forum thread details price increases for many longtime Tesla customers who have been waiting with signed contracts for up to a year or more. Some have brought up the possibility of legal action. Here’s the text of the email that’s been sent out: We have increased the price of Solar Roof and have added adjustments for individual roof complexity. Learn More You will receive an email in the next 1-2 days when your new agreement is ready for your review and acceptance before moving forward. If you are no longer interested in moving forward with Solar Roof, you can cancel your order by logging into your Tesla Account and your deposit will automatically be refunded. We will be prioritizing customers based on the order in which they accept their updated agreements. Upon logging into their accounts, customers have found price increases often around 30% or more above the previous agreed-upon pricing. Some even claim to have been told explicitly that their price would not i
(read more)
Like computers, coffee is complex, easy to sink money into, and attracts a vast swath of opinions. And like computers, there is a wise middle path you can walk to get top-notch coffee at home without spending MacBook-like money on brewing gear. Image via Mat Honan.What will you get out of this treatise on slightly snob-ish coffee? A better understanding of why the standard means of buying, storing, and making coffee leaves much to be desired, followed by a rundown of some of the better, and less expensive, coffee-making methods—what I call hand-crafted coffee—and how it's sometimes faster, and usually more fun, than making a pot of the classic drip stuff.There are two things you should know up front. First: I'm not a coffee expert. In fact, as of a month ago, my coffee came primarily from baristas, a Keurig single-serve machine (photographic evidence here, a standard drip machine, or, on leisurely weekends, a French press that I knew two-thirds of the instructions for. To rectify this, I spent a month experimenting with at-home coffee methods, foisting blind taste tests on friends and co-workers, and researching what I call the Taste-to-Fuss Ratio. I also betrayed everything I once held dear about caffeine dependency,G/O Media may get a commissionSecond: Your taste in coffee is unique to mine. You might be looking for a smooth, gentle cup to accompany your drive to work, while I'm hoping my next cup tastes like pure Arabic gold. You get the freshest, single-source beans y
(read more)
In the last months, we travelled around, and with this release, we tried to implement some improvements based on our experience with the daily application of the TorBox. The most significant improvement is abolishing wicd and introducing our new TorBox Wireless Manager (TWM). Not only is the TWM much easier to use, but it also doesn’t need so much power. Another pleasant novelty is the support of Azur-Meek and Snowflake, which should also work in China. During our travels, we have noticed incorrect DNS resolution regarding torproject.org in some countries. Probably, this is a kind of cheap censorship mechanism. For this reason, during the installation and updates, local DNS resolutions are made through Google’s and Cloudflare’s Domain Name Servers instead of using the Internet Providers presetting delivered by DHCP. Important: these settings are only for TorBox local traffic; all data from the clients are routed through Tor (including DNS requests). Nevertheless, some user complained about using Google’s and Cloudflare’s DNS servers and requested to implement other DNS servers. In the FAQ, we explain our decision in detail and how someone, who cannot live with it, has the possibility to change these settings. Over the following weeks, we will update the TorBox website to reflect all the changes introduced with TorBox v.0.4.0. Until then, some information could be outdated and refer to the older version. TorBox Image (about 1 GB): v.0.4.0 (10.04.2021) – SHA-256 valuesTorBox Menu only: v.0.4.0 (10.04.2021) – SHA-256 values We strongly recommend using the new image rather than updating an existing system.  The new TorBox Wireless Manager, which replaces wicd. Changelog:v.0.3.2 (24.08.2020) –> v.0.4.0 (10.04.2021) Update: The system is based on Raspberry Pi OS “Buster” Lite with a Linux Kernel 5.10.17 and Tor version 0.4.5.7. The Tor Project fixed in this latest version two critical denial-of-service bugs: TROVE-2021-001 and TROVE-2021-002, of which only the first one is relevant for clients.New: wicd has been replaced by the TorBox Wireless Manager (TWM). We like to hear your feedback.New: Support for Meek-Azure and Snowflake implemented, which should also work in China. Meek uses a technique called “domain fronting” to send a message to a Tor relay in a way that is hard to block. Meek-Azure makes it look like you are browsing to Microsoft’s Azure server  instead of using Tor. Snowflake is an improvement upon Flashproxy. It sends your traffic through WebRTC, a peer-to-peer protocol with built-in NAT punching. However, because Meek-Azure and Snowflake are slower, OBFS4 bridges should be used first. If not needed, the best is not to use bridges in the first place. Please, tell us about your experiences with the use of bridges to circumvent censorship.New: Based on several user requests, the configuration sub-menu (entry 11) comprises now an option to block all HTTP plain text traffic through Tor. This should avoid unencrypted data traffic at the Exit Node, which could break your anonymity (see here). However, it is possible that not only http-requests but also oth
(read more)
This is my obligatory post explaining how to use the blog engine I created in Chicken Scheme. You should know this blog uses wing. You can see the repo here. Prior Work There are a number of static site generators out there and just about every language has one. Chicken Scheme even had one that existed already but I found it to not have been updated, and not as easy to use as I would've liked. So I made wing. It takes inspiration from a few different lisp static site generators. The first is hyde which is the preexisting Chicken Scheme blog engine. wing uses a lot of the same libraries, and I learned how to use the atom library by looking at hyde source code. The second is haunt. I liked how haunt setup the meta information in the markdown post itself. Wing There are few unique features about wing that I would like to emphasize before I go into how to use it. Scheme Files for Config/Database The first unique feature compared to other static site generators is that it makes use of scheme files for configuration and even a poor man's database. The basic data structure is a combination of lists and associated lists. The posts.scm that functions as a database looks like this: (((title "Yunohost Review Initial Impressions") (summary "Review of Yunohost a Great Self Hosting Solution") (tags "yunohost selfhost") (path "yunohost-review-initial-impressions.md") (id "37e04f75-24f8-4dbe-8434-1589bc82af2f") (md5 "77710b201d194a520da809c6e7e7eaf9") (published "2020-03-29T15:02:07Z") (updated "2020-03-29T15:02:07Z")) ...) The beauty of this is that I don't need to use any special libraries to read these files or install databases. The Chicken Scheme interpreter can read these in with the read function and will deserialize them into Scheme objects. Automatic Dates The second feature is automatic dates. The thing I noticed about all the other static site generators is they leave the time tracking to the author. For me, I hate keeping track of dates. One of these days I will write my rant about how much I hate the Gregorian calendar. Anyways, there are two date fields in the posts.scm file: published and updated. So instead of keeping track of this manually, I created a mechanism to keep track of dates and changes. When the publish command is run, the published field is set as well as the updated field to the current date and time. Then when the build command is run it will compare md5 hashes that exist in the posts.scm file to the hashes of the files in /posts. If there are any changes it will update the updated field. Easy enough! Customizable Layout and Themes wing uses a scheme file to control the layout of the homepage and the posts. The layout file has two functions and they both are basically just sxml files with parameters. sxml files being a way to represent xml in scheme that can also be translated into html. The benefit of this is that users can use Scheme as a scripting language to customize their blog in really cool ways. You will notice that I have added my own personal touch to my blog, and I did this entirely through editing the layouts.scm file. wing comes with a default file that will be generated upon creating the
(read more)
Iran has admitted that one of its nuclear facilities went offline over the weekend, and a single report claiming Israeli cyber-weapons were the cause has been widely accepted as a credible explanation for the incident. Iran on Sunday published this announcement that said an “accident” impacted the “electricity distribution network” at its Natanz enrichment facility. The facility was inaugurated the previous day, and is thought to have the capability to enrich Uranium and to represent capacity for uses prohibited under the US/Iran nuclear deal. The Trump administration tore up that deal, but the Biden administration hoped to revisit the pact. Iranian officials have said that w
(read more)
In shell scripting you sometimes come across comparisons where each value is prefixed with "x". Here are some examples from GitHub: if [ "x${JAVA}" = "x" ]; then if [ "x${server_ip}" = "xlocalhost" ]; then if test x$1 = 'x--help' ; then I’ll call this the x-hack. For any POSIX compliant shell, the value of the x-hack is exactly zero: this comparison works without the x 100% of the time. But why was it a thing? Online sources like this stackoverflow Q&A are a little handwavy, saying it’s an alternative to quoting (oof), pointing towards issues with "some versions" of certain shells, or generally cautioning against the mystic behaviors of especially ancient Unix system without concrete ex
(read more)
In this post, I share why I chose Jekyll Now and Github Pages to build this blog. As I grow older, I have accumulated dozens of side projects that I have done or tried to do. Most of them fail or don’t get beyond a quick prototype. Nevertheless, in almost all of them I have learned some new technology, and in the end these learnings are the most valuable result of these side projects. I wanted to create a blog to share this knowledge, with these requirements: Full control the web page. Instead of using a hosted service like Facebook or Medium, as I strongly believe in a decentralized web. “Just work”. I want a system that let me focus on writing instead of running the webs
(read more)
Just 10 miles off the coast of Los Angeles lurks an environmental disaster over 70 years in the making, which few have ever heard about. That is, until now, thanks to the research of a University of California marine scientist named David Valentine.  Working with little more than rumors and a hunch, curiosity guided him 3,000 feet below the ocean's surface. A few hours of research time and an autonomous robotic submersible unearthed what had been hidden since the 1940s: countless barrels of toxic waste, laced with DDT, littering the ocean floor in between Long Beach and Catalina Island.  Dr. David Valentine
(read more)
Spectrum threatening me for internet usage, anyone else had this lovely phone call from Security department lately?I told them I was just doing my backups to google, and they told me to stop doing that because I was impacting my neighbors service negatively. Even though they sold me 2 gigabit internet lines into my house and every step of the way told me there were no limits or caps. Now 6 months down the line they are upset I am using my upload as they sold it to me. Keep in mind they charged me $200 dollar activation fees per line for this service.
(read more)
DawnOS is a new operating system designed to not only do away with the inefficiencies of mainstream OSes like Windows, but “to liberate people from the imperialistic oppression" of Intel. Its creator, who goes only by Geri, built it on a subleq chip, with subleq a “One Instruction-Set Computer” (or OISC), a programming language/architecture with only a single command. This means the language lacks goto and while for flow control, or if for branching, or even increment, replacing them all with only a single operation – yet it is Turing Complete, capable of supporting an entire operating system. I spoke with the creator of DawnOS, and the text of our interview runs be
(read more)
Why you might want to stop talking about your anxiety and try this insteadPhoto: Kittiphan Teerawattanakul/EyeEm/Getty ImagesLet’s back up 50,000 years or so. Imagine you’re a Neanderthal taking a leisurely stroll through the fields. Suddenly, in the nearby bushes, you hear a tiger. In a nanosecond, your entire body starts reacting. Your pulse quickens, your breathing gets shallow, your eyes dilate, your body starts producing adrenaline.Everything happening in your body is good; you’re prepared to survive this tiger encounter. There’s just one small problem. It wasn’t a tiger. It was a tiny prehistoric weasel. Now your body is primed for fight-or-flight, your heart is racing, you’re totally jacked up on adrenaline… but there is no danger.This is your body on anxiety. Replace the (nonexistent) tiger in the bushes with social media, traffic, politics, Covid-19, money, childcare, climate change, work stress, family drama, and you can quickly see why anxiety is the most common mental illness in America, affecting nearly 20% of the population. Modern-day humans are basically a bunch of freaked-out Neanderthals in fight-or-flight mode 24/7.“Anxiety is an impulse in our body that says, ‘I’m not safe right now,’” says Elizabeth Stanley, PhD, the author of Widen The Window: Training Your Body and Brain to Thrive During Stress and Recover from Trauma. “It’s automatic, really fast and unconscious.”In her work, Stanley makes the distinction between the thinking brain, our neocortex, responsible for decision-making, reasoning, ethics, conscious memory, learning, and the survival brain — the limbic system, brain stem, and cerebellum — which handles our basic survival, emotions, implicit memory, and stress arousal.One of the survival brain’s most important functions, according to Stanley, is neuroception, an unconscious process of rapidly scanning the internal and external environment for safety and danger. When danger is spotted, your survival brain sends an instantaneous stress arousal message to your body by turning on the sympathetic nervous system, resulting in the release of specific hormones that lead to certain physical sensations related to our heart, breathing, and digestion. “Whatever’s happening in the survival brain has these tremendous ripple effects through our body,” Stanley says.As Stephen Porges, PhD, a psychologist and the creator of the Polyvagal Theory, explains in an interview with PsychAlive, “These responses are not voluntary. Our nervous system is picking up information in the environment, not on a cognitive level, but on a neurobiological level.”Importantly, when we’re caught in a defensive response, the thinking brain is the last to be aware that something is wrong.“The thinking brain isn’t what decides whether we’re stressed, whether we’re feeling threatened or challenged, whether we’re going to turn stress on, whether we’re going to turn emotions on,” Stanley says. “Stress arousal and emotions belong to the survival brain.”So if you want to track your anxiety, your body, not your thoughts, will be your most accurate map.Unlike our prehistoric ancestors (who might
(read more)
[This is a transcript of the video embedded below.] Space, the way we experience it, has three dimensions. Left-right, forward backward, and up-down. But why three? Why not 7? Or 26? The answer is: No one knows. But if no one knows why space has three dimensions, could it be that it actually has more? Just that we haven’t noticed for some reason? That’s what we will talk about today. The idea that space has more than three dimensions may sound entirely nuts, but it’s a question that physicists have seriously studied for more than a century. And since there’s quite a bit to say
(read more)
Work directly with the CEO and CTO to build a better UI for maritime operations from scratch. You will have the opportunity to design and build the interface primitives that lay the foundation for maritime software for the next ten years. This is the right job if you like building things that have never existed before, are excited by new challenges and understand that products live and die on the user experience. If successful, you will help decide the future of Greywing, as well as lay the roadmap for all future development of the interface. You will be aided in making key decisions about the
(read more)
Noncombatant 😚 About 🤓 Other Writing 🧐 Bandcamp 🎵 11 April 2021 Apparently, there is some confusion about whether sandboxing is necessary, sufficient, and/or affordable. (Here is an example from Security Week, although this is not the only instance.) As the lead of Chrome’s sandboxing team and as co-lead of Chrome’s memory safety efforts, perhaps I can clarify a little. As I said in my Enigma presentation (slide 7), “good sandboxing is table stakes.” I reiterated this point in my previous post (“if [...] your application is not making use of process sandboxing, consider exploring that first before starting a rewrite effort”). Contrary to what the Security Week article and some Twitter discourse suggest, sandboxing and memory safety are complementary techniques, and both are necessary. Sandboxing reduces the severity of bugs. Sandboxing isolates code away from system resources and application resources, reducing the damage that compromise can do. (Sandboxing also has certain efficiency advantages, as well as disadvantages, too.) However, a certain amount of attack surface will always be available from within a sandbox, and memory unsafety (and other bugs) can enable an attacker to get at it. So you still need to get rid of as many bugs inside the sandbox as possible. Memory safety reduces the number of bugs. As discussed at Enigma and in my previous post, very many bugs, including an overwhelming majority of the vulnerabilities we know about right now, are due to memory unsafety. It helps to get rid of as many of those as possible. However, memory safety can’t constrain access to system resources, including the file system, system calls, et c. So you still need sandboxing. There are 2 key ways that Chromium (specifically) is nearing the limits of how much sandboxing we can do right now: Our unit of isolation, the process, is expensive in time and space on some (not all) platforms. Some operating systems do not provide sufficiently fine-grained mechanisms to allow us to maximally constrain sandboxed processes. Things are improving, but it’s an unavoidably slow process. I tried also to raise awareness that not all the applications that need sandboxing are making use of it. I know of at least 1 organization that was compromised because their server application did not sandbox a file format parser (written in C), and allowed anyone on the internet to send input to it. So, more developers need to do more sandboxing — as an industry, we are nowhere near the limits yet. We are still pursuing additional sandboxing in Chromium. It’s just that we can see a limit to what’s possible at the moment. If OS developers give us more of the primitives we want, we’ll jump right on them — as we always have. Finally, nobody knowledgeable, that I know of, has claimed or would claim that eliminating 100% of memory unsafety bugs would also get rid of all vulnerabilities. The claim — based on repeated real-world experience and evidence — is that memory unsafety accounts for a large majority of vulnerabilities. There will still be bugs. Our goal is to marginalize memory
(read more)
A Machine Learning Framework for Julia MLJ (Machine Learning in Julia) is a toolbox written in Julia providing a common interface and meta-algorithms for selecting, tuning, evaluating, composing and comparing over 150 machine learning models written in Julia and other languages. In particular MLJ wraps a large number of scikit-learn models.MLJ is released under the MIT licensed and sponsored by the Alan Turing Institute.Lightning tourFor more elementary introductions to MLJ usage see Basic introductions below.The first code snippet below creates a new Julia environment MLJ_tour and installs just those packages needed for the tour. See Installation for more on creating a Julia environment for use with MLJ.Julia installation instructions are here.using Pkg Pkg.activate("MLJ_tour", shared=true) Pkg.add("MLJ") Pkg.add("MLJIteration") Pkg.add("EvoTrees")In MLJ a model is just a container for hyper-parameters, and that's all. Here we will apply several kinds of model composition before binding the resulting "meta-model" to data in a machine for evaluation using cross-validation.Loading and instantiating a gradient tree-boosting model:using MLJ Booster = @load EvoTreeRegressor # loads code defining a model type booster = Booster(max_depth=2) # specify hyper-parameter at construction booster.nrounds=50 # or mutate post factoThis model is an example of an iterative model. As is stands, the number of iterations nrounds is fixed.Composition 1: Wrapping the model to make it "self-iterating"Let's create a new model that automatically learns the number of iterations, using the NumberSinceBest(3) criterion, as applied to an out-of-sample l1 loss:using MLJIteration iterated_booster = IteratedModel(model=booster, resampling=Holdout(fraction_train=0.8), controls=[Step(2), NumberSinceBest(3), NumberLimit(300)], measure=l1, retrain=true)Composition 2: Preprocess the input featuresCombining the model with categorical feature encoding:pipe = @pipeline ContinuousEncoder iterated_boosterComposition 3: Wrapping the model to make it "self-tuning"First, we define a hyper-parameter range for optimization of a (nested) hyper-parameter:max_depth_range = range(pipe, :(deterministic_iterated_model.model.max_depth), lower = 1, upper = 10)Now we can wrap the pipeline model in an optimization strategy to make it "self-tuning":self_tuning_pipe = TunedModel(model=pipe, tuning=RandomSearch(), ranges = max_depth_range, resampling=CV(nfolds=3, rng=456), measure=l1, acceleration=CPUThreads(), n=50)Binding to data and evaluating performanceLoading a selection of features and labels from the Ames House Price dataset:X, y = @load_reduced_ames;Binding the "self-tuning" pipeline model to data in a machine (which will additionally store learned parameters):mach = machine(self_tuning_pipe, X, y)
(read more)
C++ std::unique_ptr that represents each object as an NFT on the Ethereum blockchain. Follow us: worthdoingbadly.com | @zhuowei | @[email protected] auto ptr1 = make_nft<Cow>(); nft_ptr ptr2; ptr2 = std::move(ptr1); This transfers the Non-Fungible Token 0x7faa4bc09c90, representing the Cow's memory address, from ptr1 (OpenSea, Etherscan) to ptr2 (OpenSea, Etherscan). [2021-04-09T01:59:48Z INFO nft_ptr_lib] Transferring 0x7faa4bc09c90 (Cow) to 0x7ffee35a7890 (0x1564b0a7c258fc88a96aa9fe1c513101883abb13) from 0x7ffee35a78a8 (0x9ed6006c6f3bb20737bdbe88cc6aa0de00597fef) at PC=0x10c65a946 (main (example.cpp:33)) [2021-04-09T02:00:15Z INFO nft_ptr_lib] Transaction: 0xcbe06fdd54bd9d221993c875022fe2960128874811a25075d692cc638a28f290 [2021-04-09T02:00:15Z INFO nft_ptr_lib] https://testnets.opensea.io/assets/goerli/0x90eaf0ab2c6455a9b794f9dcf97839fa25b4ce2d/0x7faa4bc09c90 After the transfer, ptr1 is set to null, and ptr2 contains the new object, just like std::unique_ptr: std::cout << "Moved: ptr1 = " << ptr1.get() << " ptr2 = " << ptr2.get() << std::endl; ptr2->MakeNoise(); Moved: ptr1 = 0x0 ptr2 = 0x7faa4bc09c90 Moo! auto ptr1 = make_nft<Cow>(); This: initializes the nft_ptr runtime creates the first nft_ptr<Cow> transfers ownership of the newly created Cow* to the nft_ptr First, it creates an ERC-721 smart contract that represents each memory address as a Non-Fungible Token. [2021-04-09T01:57:48Z INFO nft_ptr_lib] Connected to network id 5 [2021-04-09T01:57:48Z INFO nft_ptr_lib] Account: 0xd54b39c6bb7774aba2be4b49dc2667332b737909 [2021-04-09T01:57:48Z INFO nft_ptr_lib] https://goerli.etherscan.io/address/0xd54b39c6bb7774aba2be4b49dc2667332b737909 [2021-04-09T01:57:48Z INFO nft_ptr_lib] Deploying NFT contract! [2021-04-09T01:58:18Z INFO nft_ptr_lib] Token contract deployed at 0x90eaf0ab2c6455a9b794f9dcf97839fa25b4ce2d [2021-04-09T01:58:18Z INFO nft_ptr_lib] https://goerli.etherscan.io/token/0x90eaf0ab2c6455a9b794f9dcf97839fa25b4ce2d Next, it creates another smart contract, that represents the nft_ptr<Cow> instance which can own NftPtr tokens: [2021-04-09T01:58:18Z INFO nft_ptr_lib] Deploying contract for nft_ptr 7ffee35a78a8 Cow main (example.cpp:25) [2021-04-09T01:58:48Z INFO nft_ptr_lib] Deployed contract for nft_ptr 7ffee35a78a8 Cow main (example.cpp:25) at 0x9ed6006c6f3bb20737bdbe88cc6aa0de00597fef [2021-04-09T01:58:48Z INFO nft_ptr_lib] https://goerli.etherscan.io/token/0x9ed6006c6f3bb20737bdbe88cc6aa0de00597fef Finally, it calls new Cow(), and mints an NFT for this memory address, owned by the new nft_ptr<Cow>. [2021-04-09T01:58:48Z INFO nft_ptr_lib] Transferring 0x7faa4bc09c90 (Cow) to 0x7ffee35a78a8 (0x9ed6006c6f3bb20737bdbe88cc6aa0de00597fef) from 0x0 (0xd54b39c6bb7774aba2be4b49dc2667332b737909) at PC=0x10c65a76f (main (example.cpp:25)) [2021-04-09T01:59:18Z INFO nft_ptr_lib] Transaction: 0x0a148cee1abe8d4b5721996ea3a107c87b526ded155dc2e3895f1f42983bd2e8 [2021-04-09T01:59:18Z INFO nft_ptr_lib] https://testnets.opensea.io/assets/goerli/0x90eaf0ab2c6455a9b794f9dcf97839fa25b4ce2d/0x7faa4bc09c90 A full example program can be found at example/example.cpp, along with a sample of
(read more)
Microsoft CEO Satya Nadella speaks during the Future Decoded Tech Summit in Bengaluru, India, on Feb. 25, 2020.Samyukta Lakshmi | Bloomberg | Getty ImagesMicrosoft is in advanced talks to acquire speech-recognition company Nuance Communications, a person familiar with the discussions told CNBC on Sunday. A transaction could be signed as early as Sunday and announced as soon as Monday, the person said.The plans illustrate Microsoft's recent efforts to expand through deals. Microsoft considered buying the U.S. operations of video-sharing app TikTok last year, and last month it completed the $7.5 billion acquisition of video game maker Zenimax.Nuance would be more aligned with the part of Micro
(read more)
On Thursday, the defense in the Derek Chauvin trial played a body cam video clip of the arrest of George Floyd, that subsequently led to his death. As part of their broader strategy of casting aspersions on Mr. Floyd’s character to sow doubt among the members of the jury, they played an audio clip with multiple speakers and significant background noise, and claimed that Mr. Floyd said “I ate too many drugs.” They attempted to convince the witness on the stand, a use-of-force expert from the LAPD, that Mr. Floyd had said “I ate too many drugs.” Initially, the expert agreed, but he very shortly took that
(read more)
If we want the internet to be different we can’t keep following the same roadmap. I am celebrating a one-year anniversary at Mozilla this week, which is funny in a way, since I have been part of Mozilla since before it had a name. Mozilla is in my DNA–and some of my DNA is in Mozilla. Twenty-two years ago I wrote the open-source software licenses that still enable our vision, and throughout my years here I’ve worn many hats. But one year ago I became CEO for the second time, and I have to say up front that being CEO this time around is the hardest role I’ve held here. And perhaps the most rewarding. On this anniversary, I want to open up about what it means to be the CEO
(read more)
Step One Download an iCard app and set up your account iCard is your digital wallet, which is linkable with the Walletmor implant. Step Two Activate and top up your implant in the iCard app link your Walletmor implant with your iCard account by typing its activation code in the app. Then, add money to your account.
(read more)
The move by authorities has faced opposition from fisheries and local governments. (Photo by Kosaku Mimura) April 9, 2021 15:34 JSTUpdated on April 9, 2021 17:16 JST | JapanTOKYO (Kyodo) -- The Japanese government has decided to release treated radioactive water accumulated at the crippled Fukushima nuclear plant into the sea despite opposition from fishermen, a source familiar with the matter said Friday.It will hold a meeting of related ministers as early as Tuesday to formally decide on the plan, a major development following over seven years of discussions on how to discharge the water used to cool down melted fuel at the Fukushima Daiichi plant.The release into the sea of the tr
(read more)
SeerSell beyond the store.Connect directly with founders of the best YC-funded startups.Sign up now ›About the rolehttps://www.helloseer.com/ Skills: JavaScript, Vue, HTML, CSS Our team needs a versatile lead frontend engineer. You will lead projects from start to finish and incrementally ship useful features. This includes designing, applying principles of good UX, and jumping into the Python/Django backend to keep projects moving. 3+ years professional experience. Strong Javascript skills. Positive and solution-oriented mindset. Communicate well with engineers and non-engineers alike. A strong team player, with a do whatever it takes attitude. Detail-oriented and can keep up with t
(read more)
Introduction to the most famous equation in financeThe Black–Scholes model is a mathematical model simulating the dynamics of a financial market containing derivative financial instruments. Since its introduction in 1973 and refinement in the 1970s and 80s, the model has become the de-facto standard for estimating the price of stock options. The key idea behind the model is to hedge the options in an investment portfolio by buying and selling the underlying asset (such as a stock) in just the right way and as a consequence, eliminate risk. The method has later become known within finance as “continuously revised delta hedging”, and been adopted by many of the world’s foremost investment banks and hedge funds.The goal of this article is to explain the Black-Scholes equation’s mathematical foundation, underlying assumptions and implications.Happy reading!The Black–Scholes model is a mathematical model simulating the dynamics of a financial market containing derivative financial instruments such as options, futures, forwards and swaps. The key property of the model is that it shows that an option has a unique price regardless of the risk of the underlying security and its expected return. The model is based on a partial differential equation (PDE), the so-called Black-Scholes equation, from which one can deduce the Black-Scholes formula, which gives a theoretical estimate of the correct price of European stock options.AssumptionsThe original Black-Scholes model is based on a core assumption that the market consists of at least one risky asset (such as a stock) and one (essentially) risk-free asset, such as a money market fund, cash or a government bond. In addition, it assumes three properties of the two assets, and four of the market itself:Assumptions about the assets in the market are: 1. The rate of return on the risk-free asset is constant (thus effectively behaves as an interest rate); 2. The instantaneous log return of the risky asset’s price is assumed to behave as an infinitesimal random walk with constant drift and volatility, more precisely, according to geometric Brownian motion. 3. The risky asset does not pay a dividend.Assumptions about
(read more)
The general method of browser render process exploit is: after exploiting the vulnerability to obtain user mode arbitrary memory read/write primitive, the vtable of DOM/js object is tampered to hijack the code execution flow. Then VirtualProtect is called by ROP chain to modify the shellcode memory to PAGE_EXECUTE_READWRITE, and the code execution flow is jumped to shellcode by ROP chain finally. After Windows 8.1, Microsoft introduced CFG (Control Flow Guard)[1] mitigation to verify the indirect function call, which mitigates the exploitation of tampering with vtable to get code execution. However, the confrontation is not end. Some new methods to bypass CFG mitigation have emerged. For example, in chakra/jscript9, the code execution flow is hijacked by tampering with the function return address on the stack; in v8, WebAssembly with executable memory property is used to execute shellcode. In December 2020, Microsoft introduced CET(Control-flow Enforcement Technology)[2] mitigation technology based on Intel Tiger Lake CPU in Windows 10 20H1, which protects the exploitation of tampering with the function return address on the stack. Therefore, how to bypass CFG in a CET mitigation environment has become a new problem
(read more)
[Super Mario 64 menu theme] When we write const x = 0.1 in a JavaScript source file and execute it, JavaScript does not interpret the 0.1 as the real number 0.1, because JavaScript numbers cannot represent every single possible real number, and 0.1 is not one of the real numbers which they can represent. Instead, 0.1 is interpreted as the closest JavaScript number to 0.1, which in binary is the number 0.0001100110011001100110011001100110011001100110011001101 or in decimal is 0.1000000000000000055511151231257827021181583404541015625 Note that there's nothing stopping us from writing all of those decimal digits out in our JavaScript source file if we want to: const x = 0.1000000000000000055511151231257827021181583404541015625 JavaScript will always interpret what we wrote, no matter how (im)precise, as the closest available JavaScript number. Sometimes this reinterpretation will be absolutely precise. But sometimes this reinterpretation will lose some precision. For the same reason, when we write const y = 0.2 JavaScript does not interpret this as the real number 0.2 but as the real number 0.200000000000000011102230246251565404236316680908203125 And if we write const z = 0.3 JavaScript does not interpret this as the real number 0.3 but as the real number 0.299999999999999988897769753748434595763683319091796875 * This means that when we write const sum = 0.1 + 0.2 (or const sum = x + y), what JavaScript actually computes is the precise sum 0.1000000000000000055511151231257827021181583404541015625 + 0.200000000000000011102230246251565404236316680908203125 = 0.3000000000000000166533453693773481063544750213623046875 JavaScript numbers cannot represent this precise result either, so the value returned is the closest available JavaScript number, which is 0.3000000000000000444089209850062616169452667236328125 Again, we have lost a little precision, although for a different reason. At first, we lost some precision in the interpretation of the source code. Now, we have lost some more precision in the calculation. Notice that this sum value, which we got by writing 0.1 + 0.2, is a different JavaScript number from what we got
(read more)
30 Mar 2021 Introduction 🐈 15 years of that, during my master, a teacher taught us a new technology, allowing, I quote: You will not have to write SQL queries anymore! If you are like me, and you hate writing SQL queries you are going to love this framework! This is how, for the first time, a framework that was growing in popularity was sold to me. No more complexity of writing SQL queries, we replaced a scripting language with object-oriented programming. JPA and its best-known Hibernate implementation are thus among the most widely used technologies in the JAVA ecosystem today. Thousands of projects exist on GitHub using them. Although so many projects use these technologies, in this article I will try to convince you to stop using them in your next projects. Before I jump into my take about JPA and Hibern-HATE, let me talk about documentation. Documentation and complexity 🐱 It seems undeniable to me that many who read this article will be able to offer solutions or even counterarguments to some of my reasons for hating JPA / Hibernate. I would of course be happy to hear them. However, I would like us to dwell on the official 3.6 Hibernate documentation. This document is 406 pages long. This is not the most recent version, but one of the latest version still offering the full PDF to download. To compare: The Lord of The Rings: The Fellowship of the Ring is 231 pages long (in the same PDF format as Hibernate) Version 2 of the Data Management: Structured Query Language (SQL) specification is 288 pages long The first and most important argument I could have against JPA / Hibernate is this: I don’t want to have to pass a master to perform database queries. Mutability 😹 Default empty constructor must be present Invariant means something that does not change or vary. In Object Oriented Design, a common practice, is to couple the object invariants with its life cycle. An Order cannot be placed without an Item? Therefore, an Order should NOT be created if an Item is not provided. A simple example of the implementation of an invariant would be: public class Order { private final
(read more)
This is my Thinkpad T410 with a 1st generation Intel Core i5 and 8 GB of RAM. It runs Arch Linux with Xfce. The macOS Mojave (chosen over Catalina or Big Sur for it’s lower resource usage) VM works surprisingly well with 3GB RAM, but even when the Windows VM was allocated that much, it was very sluggish. The Windows installation was very easy. All you have to do is download the ISO from Microsoft, and fill in your username, password, and product key in the “Express Installation” feature of Gnome Boxes. For MacOS, you can use the excellent scripts by foxlet to automatically download the image from Apple and provision a QEMU virtual machine. The installation will take some time. Once you have installed macOS using the onscreen menus, you need to select the fourth option in th
(read more)
This is a rudimentary online compiler for the Zig programming language. It is inspired by the Go playground. Setup The main server is a Go binary that serves up a single HTML page that allows you to enter your Zig code and then run it. To run it yourself, you will need a Go tool chain which can be installed via brew on a Mac. If you wish to run it locally, you must compile it for your GOOS and GOARCH but I have included a small shell script to make a Linux binary that Docker can use as well. You should also have Zig installed and accessible from within your $PATH on the host. Hosting In theory this could be run anywhere that a Docker container can execute. Google's Cloud Run may be a cheap option considering their generous free tier. FAQ What can this playground do? It is c
(read more)
Should you be self-isolating right now? You could check using the government's website*, but that would be boring - check by seeing if Prolog can satisfy the fact that you should be self-isolating. * jokes aside, please do use the government's website. This tool is for entertainment only and is probably broken, I haven't written any Prolog since university. Usage You'll need to have Prolog installed. If you use nix, just run nix-shell in the root of the repo. $ swipl should_i_isolate.pl Then enter should_isolate(your_name)., and Prolog will try and prove your query. Example run: ?- should_isolate(james). Has james got a high temperature (above 38 degrees celsius)? [y/n] Has james got a continuous cough (coughing a lot for more than an hour, or 3 or more coughing episodes in the last 24 hours)? [y/n] Has james lost their taste? [y/n] Has james experienced any change in their taste? [y/n] Has james tested positive for coronavirus within the last 10 days? [y/n] Does james live with other people? [y/n] Is james in a childcare or support bubble? [y/n] Has anyone in james's bubble got a high temperature (above 38 degrees celsius)? [y/n] Has anyone in james's bubble got a
(read more)
You can also join us on the Forums or hop onto our Discord server. What is it? MiSTer is an open project that aims to recreate various classic computers, game consoles and arcade machines, using modern hardware. It allows software and game images to run as they would on original hardware, using peripherals such as mice, keyboards, joysticks and other game controllers. MiSTer utilizes a readily available FPGA board called the 'DE10-Nano', which connects to your TV or monitor via HDMI video out. It can additionally be expanded with various add-ons (such as a USB hub, SDRAM, audio and VGA out). The MiSTer software/OS itself is freely downloadable, and anyone is welcome to contribute to its development. In fact MiSTer relies on the contributions of many developers for the various systems (known as 'cores') it replicates. The MiSTer project is currently under active development, with new cores, features, and bug-fixes appearing on a regular basis. DISCLAIMER: MiSTer is an open source project without a focus on sales. Base hardware (Terasic DE10-Nano) can be bought from major electronic component resellers and will run a few cores out of the box. No soldering is required. DISCLAIMER 2: Many cores require RAM expansion hardware, which can be assembled or bought from a few sources in the forums. The author of this project and contributors are NOT affiliated with these vendors and do not derive any income from them. Please direct any inquiries or concerns about expansion hardware to relevant third parties. Technical Details MiSTer is a port of the well-known MiST project to a larger field-programmable gate array (FPGA) and faster ARM processor. MiSTer provi
(read more)
Someone was working on modernizing some legacy C++ code. The code base contained a function like this: void DoSomething(const char* name) The DoSomething function takes a read-only string expressed using a C-style string pointer: remember, this is a legacy C++ code base. For the sake of this discussion, suppose that DoSomething contains some simple C++ code that invokes a C-interface API, like this (of course, the code would be more complex in a real code base): void DoSomething(const char* name) { SomeCApi(name); } SomeCApi also expects a “const char*” that represents a read-only string parameter. However, note that the SomeCApi cannot be modified (think of it like a system C-interface API, for example: a Windows C API like MessageBox). For the sake of this discussion, suppose that SomeCApi just prints out its string parameter, like this: void SomeCApi(const char* name) { printf(“Hello, %s!\n”, name); } In the spirit of modernizing the legacy C++ code base, the maintainer decides to change the prototype of DoSomething, stepping up from “const char*” to std::string_view: // Was: void DoSomething(const char* name) void DoSomething(std::string_view name) The SomeCApi still expects a const char*. Remember that you cannot change the SomeCApi interface. So, the maintainer needs to update the body of DoSomething accordingly, invoking string_view::data to access the underlying character array: void DoSomething(std::string_view name) { // W
(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)
A Bloom filter is a probabilistic data structure present in many common applications. Its purpose is answering the question: "is this item in the set?" very fast and not using a lot of space. The answers can be NO, or MAYBE YES.They work using hash functions, we learned about them some time ago.Bloom filters explainedFor example, one use case of Bloom filters is the following: you have a huge list of malicious URLs. In your browser, before a user navigates to a new URL, you want to check if it's inside the list of dangerous URLs. You can use a bloom filter to do that! It will take less s
(read more)
Hello, and welcome back to Beyond NERVA! Really quickly, I apologize that I haven’t published more recently. Between moving to a different state, job hunting, and the challenges we’re all facing with the current medical situation worldwide, this post is coming out later than I was hoping. I have been continuing to work in the background, but as you’ll see, this engine isn’t one that’s easy to take in discrete chunks! Today, we jump into one of the most famous designs of advanced nuclear thermal rocket: the “nuclear lightbulb,” more properly known a
(read more)
Home > Law and Politics > The European Parliament is considering a draft resolution that requires online services to take pirated sports streams offline within 30 minutes. This includes a proposal to allow copyright holders to act as trusted flaggers. According to Pirate Party MEP Patrick Breyer, the plan is dangerous as it can cause massive collateral damage. In recent years the European Commission has proposed and adopted various legislative changes to help combat online piracy. This includes the Copyright Directive which passed last year as well as the Digital Services Act, which was officially unveiled last December. These laws will have a significant effect on how online services respond to copyright infringement complaints. However, according to some, upload filters and o
(read more)
A new study uses a brain-computer interface (BCI) to observe the neural activity in monkeys during the process of learning.Why it matters: The internal state of the brain is often a mystery — including to ourselves — but new neural interfaces are making it easier for scientists to observe the mind in action.How it works: In a paper published recently in Nature Neuroscience, a large team of researchers hooked up a group of monkeys to BCIs while the study subjects were trained to play a basic computer game.Details: The researchers found that neural fluctuations took place when the monkeys were surprised by something happening during the game.Those monkeys that showed greater engagement performed better during following rounds of the test, indicating that arousal and engagement — intern
(read more)
Home News (Image credit: Tom's Hardware) Nine years ago this week, my son was born and, to mark the occasion, I wrote an article, predicting 15 current technologies he would never use, because they would be obsolete by the time he would have a reason to interact with them. Now, as Isaac turns 9, it’s a good time to take a look back at my predictions and assess their accuracy. Why revisit an article that I wrote for a different website (laptopmag.com) nearly a decade ago? Analyzing the ambitious predictions I made at that time provides an abject lesson in how slowly technology actually changes and how soon children are exposed to grown-up gadgets. Looking at my listicle proves that I have no future as a futurist. Predictions like the death of windowed operating
(read more)
Jon Corbett's languages Cree# and Ancestral Code allow programming in Cree keywords using Cree concepts and metaphors. In addition to this language, Corbett's PhD research has led to his Indigenous Coding Framework, a work-in-progress that will help other Indigenous communities bring to computation not only their languages but their cultural logic and values as well. Corbett describes the challenges of this work, from the danger of accidentally including colonial understandings in such a system, to working with technologies that assume programming languages have Roman-character keywords. » First, for people who are not yet familiar with Cree#, can you describe the how you expect it to be used? My desired output for this language is graphical based. I originally envisione
(read more)
Version 7.0 The Gradle team is excited to announce a new major version of Gradle, 7.0. This release enables file system watching by default to make your incremental builds faster, expands support for building projects with Java 16, and adds support for building on Macs using Apple Silicon processors (such as M1). This release also introduces a feature preview for centralized dependency versions, enables build validation errors to make your builds more reliable, and makes it easier to create convention plugins for settings files. Many incubating features have been promoted to stable. These release notes only list what's new since Gradle 6.8. You can also see the highlights of all the changes between Gradle 6.0 to 7.0. We would like to thank the following community members for their contri
(read more)
image copyrightReutersimage captionA satellite image of Iran's Natanz nuclear facility taken last OctoberA nuclear facility in Iran was hit by a "terrorist act" a day after it unveiled new advanced uranium centrifuges, a top nuclear official says.He did not say who was to blame but urged the international community to deal with nuclear terrorism.Israeli media suggest the incident was a result of an Israeli cyber attack.Last year, a fire broke out at the Natanz underground facility, which the authorities alleged was the result of cyber sabotage.The latest incident comes as diplomatic efforts to revive a 2015 nuclear deal - abandoned by the US under the Trump administration in 2018 - have resumed. On Saturday, Iran's President Hassan Rouhani inaugurated new centrifuges at the Natanz site, wh
(read more)
It is hard to describe what a Workflow Platform is. It is both familiar and exotic. There are aspects of the problem space we all know well: Retries, eventual consistency, message processing semantics, visibility, heartbeating, and distributed processing to name a few. Yet, when they’re all put together in a pretty package with a bow tied on top, it becomes something almost magical. It feels like seeing the iPhone for the first time: Of course you want a touch screen on a cellphone and mobile internet access. Similarly, a workflow platform feels like the only natural way to solve problems. Once you learn it, anything else feels as clunky as using a feature phone.I believe thinking in terms of workflows is as important as learning about Design Patterns. While dated, Design Pattern gave us
(read more)
FILE PHOTO: An Air France Airbus A350 airplane lands at the Charles-de-Gaulle airport in Roissy, near Paris, France April 2, 2021. REUTERS/Christian Hartmann//File PhotoPARIS (Reuters) - French lawmakers voted late on Saturday to abolish domestic flights on routes than can be covered by train in under two-and-a-half hours, as the government seeks to lower carbon emissions even as the air travel industry reels from the global pandemic.The measure is part of a broader climate bill that aims to cut French carbon emissions by 40% in 2030 from 1990 levels, though activists accuse President Emmanuel Macron of watering down earlier promises in the draft legislation.The vote came days after the state said it would contribute to a 4 billion euro ($4.76 billion) recapitalisation of Air France, more
(read more)
One of the themes of my previous Apple Silicon M1 article - Apple Silicon M1: Black. Magic. Fuckery. - was the stupendous battery life offered by the new M1-based MacBooks. While unveiling the M1 chip, Apple touted the new M1-based MacBook Air and MacBook Pro’s energy efficiency with up to 18 hours and 20 hours of movie playback, 6 and 10 hours more than previous models. Apple M1 MacBook Pro and MacBook Air battery video playback numbers [Source: Apple] Apple M1 MacBook Air battery improvement [Source: Apple M1 unveiling event] Apple M1 MacBook Pro battery improvement [Source: Apple M1 unveiling event] These battery life advances are massive and typically once-in-a-generation improvements. These are made possible because of Apple’s focus on low-power design and decoding
(read more)
OpenTTD, the free and open-source software recreation of Transport Tycoon Deluxe, has been a popular game for a long time, but recently something unusual happened. The team behind the project decided to release the game on Steam (still free as always) and this has changed everything. Let me explain why this matters. If you have ever played OpenTTD on Linux, let me venture that you have probably relied on your distro’s package manager to keep your game up-to-date. In theory, this is the BEST way to keep your packages up to date. Rely on maintainers. In practice however, it’s far from being something you can rely on, beyond security updates. Debian stable tends to have really old packages, sometimes years behind their latest versions. So on Debian stable you end up with OpenTTD 1.
(read more)
academic, developer, with an eye towards a brighter techno-social life [prev] [next] 2021-04-07Demystifying programs that create programs, part 1: A disassembler All source code for this blog post can be found here. People appear to enjoy the blog posts about me porting different compilers to OpenBSD. What I would like to do for the next couple of posts beginning with this one is to take a step back and de-complexify these programs. Both the D compiler and the GNU Modula-2 compiler are highly complex pieces of software. But at their core they are the exact same thing: a program that can create programs. We need not explore something so complex in order to learn how to create a program of our own that creates programs. In this series of blog posts, we wi
(read more)
1. One man's constant is another man's variable. 2. Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process. 3. Syntactic sugar causes cancer of the semicolon. 4. Every program is a part of some other program and rarely fits. 5. If a program manipulates a large amount of data, it does so in a small number of ways. 6. Symmetry is a complexity-reducing concept (co-routines include subroutines); seek it everywhere. 7. It is easier to write an incorrect program than understand a correct one. 8. A programming language is low level when its programs require attention to the irrelevant. 9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures. 10. Get into a rut early: Do the sa
(read more)
Introduction What is TD3? What is HER? Why TD3 + HER? Setup FetchReach Environment Sparsified Reacher Environment Results FetchReach Environment Results Sparsified Reacher Environment Results Takeaways Conclusion Resources Papers Other Resources Appendix Introduction This past semester we took a deep reinforcement learning course together at CMU. The class introduced us to goal-conditioned learning and Hindsight Experience Replay (HER). The underlying concepts behind HER interested us, and we wanted to try reproducing the authors’ results in sparse/binary reward environments - in our case, simulated reacher environments - benchmarked against vanilla TD3. We hope to illustrate the benefits of using hindsight experience in sparse, binary reward environments through sharing a discussion of our implementation, experimentation, and methods. While we won’t go in-depth into the implementation details, we hope that you come out of this with a better idea of why hindsight replay is so useful and interesting, and how we went about trying to prove it! What is TD3? An illustration of how TD3 works. TD3 is an off-policy RL method for continuous action spaces, which improves its predecessor, DDPG, by reducing overestimation bias and improving training stability. This generally results in higher performance than DDPG. We’re going to assume we all have a working knowledge of RL algorithms, but if you want to learn more then you can read more details about TD3 and DDPG here. What is HER? Some good questions
(read more)
Take a look at any given corporation’s registration docs, and there’s a good shot you’ll see the address 1209 North Orange Street. Spanning less than a city block in Wilmington, Delaware, this nondescript office building is the official incorporation address of 285k+ companies from all over the world. On the surface, there’s no reason that Delaware — home to blue hens and Civil War monuments — should be a corporate paradise. It’s the second smallest state in America, and the 6th least populous, with just 986k residents.  Yet, nearly 1.5m businesses from all over the world are incorporated there, including 68% of all Fortune 500 firms. Among them: How did Delaware become an unlikely mecca for corporate America? And why are so many businesses parked there? The story begins 100+ years ago, in New Jersey In the early 19th century, every company had to be incorporated (legally established) in the state where they conducted business — and beholden to that state’s tax codes. Post-Industrialization, huge firms like Standard Oil and the Whiskey Trust began to consolidate fractured markets. To combat this, many states set up laws aimed at regulating monopolies through heavy taxation. But New Jersey saw an opportunity to cater to industry. In 1891, the Garden State adopted an extremely generous corporate tax law that “would allow business to do as business pleases.” By incorporating there, a company based in another state could save big on taxes and enjoy perks like unlimited market expansion. A flood of conglomerates took up this offer and New Jersey earned so much from taxes that it was able to pay off its entire state debt. Pressured to incentivize busine
(read more)
This week's newsletter continues to explore how technology changes the distribution of rewards in different professions. Earlier pieces on this topic include:NFTs and the Future of WorkRise of the 10X ClassThe Tiktokization of WorkThe Risk-Sharing EconomyIn 1997, David Bowie issued "bonds" that enabled their holders to earn a percentage of royalties from his back-catalog for the next ten years. An owner of a $1000 "Bowie Bond" would receive a 7.9% coupon each year. Prudential Insurance bought the first batch for $55 million.At the outset, these securities seemed like a safe investment. Bowie's songs were played regularly on the radio, and his albums were selling well, even decades after they were published. Royalties from his work generated a steady income stream that was likely to continue. Bowie Bonds received a triple-A rating from Moodys, indicating they were as safe as U.S. government bonds.But as online music sharing grew in popularity, Bowie's album sales declined, and the bonds started to trade at a discount. Bondholders were looking to sell them, expecting a further deterioration in the underlying income stream's quality. In 2004, Moodys downgraded Bowie bonds to Baa3, eight levels below its opening rating and one level above "junk." The bonds ultimately recovered somewhat thanks to the emergence of new, legal ways to listen and pay for music online. In 2007, the original Bowie bonds reached maturity and were repaid in full. But the journey was turbulent.Bowie was not naive. He didn't issue the bonds because he thought his income would remain stable. Being a rockstar was a precarious existence, to begin with. But Bowie understood that the internet was about to make it much more precarious. As he told The New York Times in 2002:"I'm fully confident that copyright, for instance, will no longer exist in 10 years, and authorship and intellectual property is in for such a bashing… Music itself is going to become like running water or electricity."Issuing the bonds was a way to share his risks with people who were more optimistic about the future of online media — or were passionate enough to want to own a "piece" of David Bowie, regardless of th
(read more)
This repository is a fork from maxandersen/internet-monitoring, tailored for use on a Raspberry Pi. It has only been tested on a Raspberry Pi 4 running Pi OS 64-bit beta. Here's a quick start to stand-up a Docker Prometheus stack containing Prometheus, Grafana with blackbox-exporter and speedtest-exporter to collect and graph home network connections and speed. Pre-requisites Before we get started installing the Prometheus stack. Ensure you install the latest version of docker and docker-compose on your Docker host machine. This has been tested with Docker for Mac and Synology and it works. git clone https://github.com/geerlingguy/internet-monitoring cd internet-monitoring docker-compose up Goto http://localhost:3030/d/o9mIe_Aik/internet-connection (change localhost to your docker host ip/name). Configuration To change what hosts you ping you change the targets section in /prometheus/pinghosts.yaml file. For speedtest the only relevant configuration is how often you want the check to happen. It is at 30 minutes by default which might be too much if you have limit on downloads. This is changed by editing scrape_interval under speedtest in /prometheus/prometheus.yml. Once configurations are done let's start it up. From the /prometheus project directory run the fo
(read more)
cartographyos mapstolkienAs a full-time cartographer with previous experience as an ecologist, our guest blogger Dan Bell is a huge advocate of the outdoors. In his spare time, he enjoys fell/long distance running and is currently training to become a Mountain Leader in the Lake District! If that wasn’t enough, he also runs Middle Earth’s Maps. Here, he tells us how he has used (Ordnance Survey) OS data in his Tolkien-inspired mapping…Why are maps useful?Maps are a window into an unknown landscape. They are simplifications of an increasingly complex world, affording us the opportunity to plan our adventures, make memories, and inspire our curiosities. It is these three attributes of maps and map making that continually motivate my work, in my endeavour to explore the realms of fantasy map creation within a real-world setting.Crystal Palace, London.Where did it all begin?In October 2017 I sat down and sketched out a small section of Middle-earth; one of the most widely recognised examples of fantasy map making ever conceived. As a fan of Tolkien’s literature, I am interested by how his stories are interwoven within this cartographic framework. One quick glance can rekindle specific storylines, characters, and events. It is a hugely imaginative and often emotive experience, and one of which I was keen to explore in my own work.Soon after drawing my first map, and in knowing that there was such a big Tolkien fan base worldwide, it occurred to me that the blending of this iconic style with real world maps was worth pursuing. ‘My Favourite Square’ is a project that was a devised by myself to bridge the gap. It utilises OS data using the method below, to create highly detailed fictional renditions of our favourite places.TutorialTo create my illustrations, I use OS data as it is accurate and routinely updated to match the ground. The 1:25,000 Explorer map series allows me to pull out specific locations in detail. I make use of OS Maps desktop as it is a fast an efficient way to look up and get mapping for anywhere in GB without the need for a paper map. All you will need is a pen, pencil, ruler and rubber.Step 1 – setting your paperUsing the pencil, draw
(read more)
Skip to page content Objective Analysis. Effective Solutions. Toggle Menu Site-wide navigation Research Latest Insights Reports /content/admin/rand-header/jcr:content/par/header/reports Blog Posts /content/admin/rand-header/jcr:content/par/header/blogPosts Policy Experts Capabilities Drawing upon decades of experience, RAND provides research services, systematic analysis, and innovative thinking to a global clientele that includes government agencies, foundations, and private-sector firms. Graduate School Student Spotlight Graham Andrews Assistant Policy Researcher; Ph.D. Candidate, Pardee RAND Graduate School Nima Shahidinia Assistant Policy Researcher; Ph.D. Candidate, Pardee RAND Graduate School About Toggle Search RANDPublished ResearchPapers>P-6092 Purchase Purchase Print Copy  FormatList Price Price Add to Cart Paperback35 pages $20.00 $16.00 20% Web Discount Describes a subway concept called "Planetran" comprising electromagnetically supported and propelled cars traveling in underground evacuated tubes, able to cross the United States in one hour. It is designed to interface with local transit systems, and the tunnel complex also contains utility transmission and auxiliary freight-carrying systems. Tunnels represent a major problem area and most of the cost. They will be placed several hundred feet underground in solid rock formations. It will require advanced tunnel-boring machines, such as hypersonic projectile spallation, laser beam devices, and the "Subterrene" heated tungsten probe that melts through igneous rocks. Planetran is rated as a system high in conservation of energy. For every car being accelerated, there is one decelerating in an adjoining tube. The decelerating cars return energy to the system. The tubes have a reduced atmosphere, making drag losses much smaller than for aircraft. Coast-to-coast energy costs are expected to be less than $1.00 per passenger. This report is part of the RAND Corporation paper series. The paper was a product of the RAND Corporation from 1948 to 2003 that captured speeches, memorials, and derivative researc
(read more)
Please enable cookies. Ray ID: 63e61d980b93edff • 2021-04-11 18:00:38 UTC Access denied What happened? This website is using a security service to protect itself from online attacks. Cloudflare Ray ID: 63e61d980b93edff • Your IP: 35.203.250.238 • Performance & security by Cloudflare
(read more)
Getting started with developing applications for a mobile platform can be a challenging task, especially when it comes to building and testing the application on the mobile device itself.The Librem 5 makes its application development workflow extremely simple.You don’t need to worry about registering a developer account with some parent company.You don’t need to register your testing devices and ask the permission to a parent company just to be able to build and run your applications on those devices.You don’t need to “Jailbreak” your devices in order to access some restricted softwa
(read more)
I’ve got an old HP laser printer in my basement. We barely print 10 pages a month between the two of us, so we only turn it on when we’re going to print. That’s a hassle though, because inevitably we forget to shut it off sometimes and it stays on overnight or even for days, and while it has a powersave mode, the 4050N is so old that even that burns a good amount of power. Enter Home Assistant. Prerequisites You have HA configured to connect to a MQTT server The watcher script and associated tooling all presume that we can send messages to a MQTT topic that HA is watching. Your printer is connected to a cupsd server running in a container Your computers should be configured to print to the cupsd server instead of directly to the printer. I run cupsd in a container on one of my Odroids. I could run it on the same Odroid HC2 that I run Home Assistant (HA) on, but there’s no compelling reason to do so and I’m reserving that node for strictly HA containers like Home Assistant itself and my MQTT server. I picked an Odroid because it has a SATA drive attached and my /var/lib/docker is on the hard drive and not an microSD card - there’s no reason you can’t run it on a Raspberry Pi other than to prevent excessive wear on the microSD card. You could modify the watcher script if you’re running cupsd directly instead of in a container, but I run my cupsd in a container, so that’s what the script is designed for. There are plenty of articles about setting up cupsd, but I wrote about setting up cupsd here. Your printer is plugged into an outlet controlled by HA We want to be able to toggle the power from Home Assistant. Printer Power Control mosquitto helper script I don’t like to install anything more on my docker hosts than I absolutely have to, so instead of installing mosquitto directly on the printserver machine, I run mosquitto_pub inside a container with the following c-mosquitto_pub helper script. You can download it from github here. Put this in /usr/local/bin. #!/usr/bin/env bash # # Use docker to run mosquitto_pub # # Copyright 2019, Joe Block # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, softwa
(read more)
Wall Street investment funds took control of Oregon’s private forests. Now, wealthy timber corporations reap the benefits of tax cuts that have cost rural counties billions By Tony Schick, OPB, Rob Davis, The Oregonian/OregonLive, Lylla Younes, ProPublica June 11, 2020 This article was produced in partnership with OPB and The Oregonian/OregonLive. OPB is a member of the ProPublica Local Reporting Network. ProPublica is a nonprofit newsroom that investigates abuses of power. Sign up to receive our biggest stories as soon as they’re published. FALLS CITY, Ore. — A few hundred feet past this Oregon timber town, a curtain of Douglas fir trees opens to an expanse of skinny stumps. The hillside has been clear-cut, with thousands of trees leveled at once. Around the bend is another clear-cut nearly twice its size, then another, patches of desert brown carved into the forest for miles. More: See how we analyzed the data from Oregon’s timber industry. Logging is booming around Falls City, a town of about 1,000 residents in the Oregon Coast Range. More trees are cut in the county today than decades ago when a sawmill hummed on Main Street and timber worker
(read more)
Welcome to BIG, a newsletter on the politics of monopoly power. If you’d like to sign up to receive issues over email, you can do so here.Henry Adams, one of the most important thinkers in the 19th century and an ardent anti-monopolist, believed that corporate secrecy was the enemy of self-rule. "From whatever point of view the trust problem is considered,” he wrote, “publicity stands as the first step in its solution; and there is reason to believe that the further the government is willing to go in its statutory definition of publicity the greater likelihood is there that it may be excused from the necessity of exercising direct administrative control." When Congress originally designed the corporate tax system in 1909, the goal was to make corporate tax returns public. (This actually happened for one year in the 1920s, but was quickly ended.)Today, big business in America is far too secretive, with an endless thicket of confidentiality rules, trade secrets law, and deferential judges and enforcers who think that revealing public information about big business is some sort of scandal. It’s so bad that when the FDA asked pharmaceutical companies where their manufacturing plants were at the beginning of the pandemic, some firms cited trade secrets rules and refused to divulge the information. This is a consistent problem - we didn’t know why the FTC refused to bring a case against Google in 2012 until a leak this year, and the information would have been incredibly
(read more)
I'm really blown away by the reception of this article. It has spread far wider than I could have ever imagined. The many comments and discussions it has prompted that essentially confirm what I believe is truth by not just fellow engineers but many in all fields of game development and even the wider programming space inspires me to go deeper on some of these points and really try to nail down what we can do as a whole to fix a lot of these widespread issues. On the other hand, the fact that I've seen almost zero comments and discussions from those in manager, producer, or executive roles regarding this further makes me think this endeavor is pointless. A.K.A. How to Save 15% or More on Your Engineering Budget I have been working professionally with Unreal Engine for over 9 years. During this time, I have acquired many specializations and have fulfilled various roles in game development: from grunt engineering, to managing large engineering teams for games, or even consulting investors for game teams. Lately I have been working for myself, but occasionally I will offer an emergency white-label “firefighting” service to my word-of-mouth clients. It is hard to describe what this service entails exactly, but it is a lot like having an emergency plumber. You really do not want to be in a situation that requires calling for one. If a game company in Los Angeles is having an Unreal Engine 4 problem that no one can solve, I usually end up getting that call. I am writing this article to explain why I get that call, how one would prevent the need for that call, and what I normally do after getting that call. Most game development problems are well understood by those “in the trenches”, but those problems fly right over the heads of those on the management and executive ladder. It also seems like the people in those trenches are the ones who read articles like this one, instead of the others who need to. This article is most likely irrelevant to you if you belong to a small fully indie team. Most of the evidence provided is anecdotal, thus validity and mileage may vary. Due to the nature of my work, I am often uncredited; the mere fact that I am involved with fixing a team's mistakes is kept confidential. This is exactly why most of my clients are referred through word-of-mouth, and this is also why there is no public proof that I am even qualified to write about this subject. I am writing this regardless of whether I can be believed, as the people who truly need to know this information will not read about it until it is too late… which is in a nutshell exactly the problem I'm writing about. In the Los Angeles area, there is a severe and unmet demand for high-level Unreal Engine 4 specialized game engineers. Incredibly often, I have seen teams hire one or multiple entry/mid-level engineers, and then immediately try to extract senior/higher-level work out of them, without offering them the room to grow or fail. This is due to teams generally agreeing to deliver a product before having the means to build said product. I believe that this is causing rapid turnover and extreme burnout: it is a negative feedback loop that crus
(read more)
Video game programmer Chris Oberth (1953-2012) Hey all, VGHF founder Frank Cifaldi here. Today I’m tag-teaming with Rich Whitehouse to bring you the story of how we recovered and re-assembled Days of Thunder, an unreleased, never-before-seen title co-authored by Chris Oberth at Mindscape. Programmer and designer Chris Oberth had a long, diverse career in the video game industry before he passed away in 2012. I think for most of us, the definitive Chris Oberth game was Anteater, the arcade title he designed and engineered during his time at Stern (or perhaps you know the clone that Chris himself wrote for home computers – Ardy the Aardvark – or the one he didn’t – Oil’s Well). For others, it might be Winter Games for the Commodore 64, or perhaps his later arcade work at Incredible Technologies like Time Killers or World Class Bowling, or the handful of titles he developed on his Apple II in the late 70s and early 80s (on an Apple II with serial number 201, as he liked to brag). In early 2020, The Video Game History Foundation was approached by a friend of Oberth’s surviving family to help them make sense of the materials he had left behind. Untouched for years in the home basement he often worked from were piles of old computers, CD-R backups, floppy disks, notes, cassettes, EPROMs, and data tape going back to his earliest Apple II work in the late 70s, which his family agreed to loan to us for evaluation. As is often the case when looking at archives like this, our first priority was trying to recover any works of Chris’ that were lost – games he developed that, for one reason or another, were never available commercially. Unfortunately we found almost no remains of his time at Stern, which meant that his unreleased Hunt the Wumpus-inspired arcade game Crypt is likely gone forever. But the rest of the collection gave us high hopes for his later home computer and console work. The mysterious “Hot Rod Taxi” was our first indication that Oberth’s code archive might contain unpublished work. One disk in particular jumped out at us – a 5.25” floppy with a hand-written label that said “NINTENDO HOT ROD TAXI FINAL.” This is not a known title for a game, but we knew that Chris had developed at least one game for the Nintendo Entertainment System – American Gladiators. We didn’t know much else about his career around this time, but fortunately Oberth conducted at least two interviews in his later years with early retro game enthusiast websites – one with Derek’s Basement Arcade and a three-parter in 2006 for Retrogaming Times (specifically in issues 21, 24, and 27 of “Retrogaming Times Monthly”). It was in the latter that Chris briefly mentioned an unreleased NES game – an unpublished version of Days of Thunder done for Mindscape (a separate attempt done by Beam Software was ultimately published in its place). Was “Hot Rod Taxi” our lost Days of Thunder? Perhaps stripped of its movie license title? Hot Rod Taxi for the NES, as compiled from Oberth’s source code. This isn’t a game, so much as an early tech demo. Days of Thunder still eluded us. The answer
(read more)
You awake in an old lodge, in the centre of a housing estate beside the sea, with no memories of the estate or how you got there.  Nothing about this place seems right, like a world viewed via an angled mirror. Welcome to Winsome Heartwood. In this solo table-top RPG you will explore the Winsome Heartwood estate using a single D6 and a standard 52 card deck - searching through its buildings, mapping its roads and recording the experiences you have. Included is the game - in normal, low-ink and text only or formats - along with 60 minutes of ambient, abstract noise to accompany your play.DownloadClick download now to get access to the following files:Development logNew release - Winsome
(read more)
About PickleBrined in 2020, Pickle set out to build a platform that helps companies of any size understand their customer conversations and strengthen their relationships. Pickle transcribes any audio format into text with high fidelity, provides a search database to quickly find any call, then the conversation is analyzed and summarized for easy comprehension. Optimize sales performance and customer experiences with your best conversations. Powered by artificial intelligence, Pickle helps refine your sales process by uncovering blind spots and transforming conversations into actionable insights. We tell you how to duplicate your best reps to create an army of superhuman sales and customer e
(read more)
John Tromp [email protected] http://tromp.github.io/ Judges' comments: To build: On a 32-bit machine: make tromp On a 64-bit machine: make tromp64 # And mentally substitute ./tromp64 for ./tromp everywhere below To run: cat ascii-prog.blc data | ./tromp -b cat binary-prog.Blc data | ./tromp Try: (cat hilbert.Blc; echo -n 1234) | ./tromp (cat oddindices.Blc; echo; cat primes.blc | ./tromp -b) | ./tromp cat primes.blc | ./tromp -b | ./primes.pl Selected Judges Remarks: The judges dare to say that the data files this entry is processing are more obfuscated than the entry itself. Author’s comments: This program celebrates the close connection between obfuscation and con
(read more)
Ask HN: I feel my career is at a dead end. Any advice on what could I do? 74 points by iamcirou 1 hour ago | hide | past | favorite | 44 comments Hey HN,I'm 35, working for an IT consultancy company and I feel my career is going at a dead end.I did well with my career (maybe too much?) and after 10 years I'm far away from coding activities, more involved in project management and I'm not sure that this is what I want.I like coding (that's why I started this job, I also consider myself good at coding) I like to learn and explore new things.The problem is that, at same time I feel that coding can't be a lifetime career: what will happen in 10
(read more)
The obsolete units of measurement of German-speaking countries consist of a variety of units, with varying local standard definitions. Some of these units are still used in everyday speech and even in stores and on street markets as shorthand for similar amounts in the metric system. For example, some customers ask for one pound (ein Pfund) of something when they want 500 grams. The metric system became compulsory on 1 January 1872, in Germany and on 1 January 1876, in Austria.[1] Some obsolete German units have names similar to units that were traditionally used in other countries, and that are still used in the United Kingdom (imperial units) and the United States (United States customar
(read more)
Light and friendly interface for your datasources For your environment SQL and NoSQL support MySQL, PostgreSQL, Oracle, SQL Server, MongoDB, SQLite, AWS datasources and more others. More details AWS ready Available in AWS Marketplace. Connect to AWS RDS, Redshift and Dynamo DB in a few clicks. More details Docker pack Official Docker container on Docker hub. Launch with one command. More details Choose your CloudBeaver Choose your CloudBeaver Enterprise Community License type All CloudBeaver products are licensed but with different types of licenses. Commerc
(read more)