الثلاثاء، 28 يوليو 2020

Show HN: I rebuilt a web-based IDE https://ift.tt/30ZZtnr

Show HN: I rebuilt a web-based IDE https://www.atheos.io/ July 29, 2020 at 01:30AM

Show HN: Cute tricks for SIMD vectorized binary encoding of nucleotides in Rust https://ift.tt/2X05PBZ

Show HN: Cute tricks for SIMD vectorized binary encoding of nucleotides in Rust https://ift.tt/2DbsLqX July 29, 2020 at 01:49AM

Safe Streets 2019 Year End Report

Safe Streets 2019 Year End Report
By Victoria Chong

The Results Are In!

Over the course of 2019, the SFMTA implemented a record number of pedestrian, bicycle and traffic calming projects. But our goal is not only to deliver projects, but to make our streets safer and more comfortable for all San Franciscans. SFMTA’s Safe Streets Evaluation Program is sharing  our annual Safe Streets Evaluation Report which takes stock of last year’s progress as well as lessons learned.

People walking under the freeway in the afternoon
Pedestrians and bicyclist using the bike lane and pedestrian walkway along Townsend Street on June 13, 2019

Under the direction of Mayor London Breed, the SFMTA initiated the Vision Zero Quick-Build Program. This program represented reduced barriers for SFMTA to install pedestrian and bicycle safety improvements on the city’s High Injury Network.

Quick-build projects offer opportunities to take community feedback in real time and make design changes as needed. These projects can be put in the ground in as little as 10 percent of the time and cost as our traditional infrastructure projects, such as Masonic Avenue and 2nd Street.

A key part of the quick-build program is evaluating these fast-tracked projects so we can make the adjustments as we learn more; this report reviews some completed quick-build projects such as 7th Street, 6th Street and Taylor Street.

In addition to the quick build projects, we also evaluated the effectiveness of dozens of city-wide safety measures and corridor projects.  

So…How Are We Doing?

Overwhelmingly, quick-builds, traditional corridor projects and citywide countermeasures completed in 2019 provide clear safety benefits:

  • Corridor pedestrian safety projects reduce vehicle speeds and provide improved loading experiences.
  • Proactive, neighborhood-wide traffic calming leads to reduced vehicle speeds on the City’s residential streets.
  • Protected bike facilities decrease blockages of bike lanes, and nearly eliminate mid-block vehicle-bike conflicts such as near-dooring incidents.
  • Separated bike signals keep turning vehicles from causing conflicts with bicyclists in protected lanes.
  • Through our surveying efforts, we heard from community members from different demographic backgrounds. While we have some things to improve on, new and improved bicycle and pedestrian facilities make people feel safer and more comfortable.

Just as importantly, we are also learning what doesn’t work:

  • While providing safety improvements in addition to public realm benefits, large capital streetscape projects have long timelines and high price tags. Large capital projects should be accompanied by quick-build efforts to implement changes as soon as possible.
  • Partially raised bikeways, especially on commercial corridors, have issues such as bike lane blockage – partially raised bikeways do not provide enough of a barrier to deter cars from the bike lane.
  • We need more reporting on equity. While we improved our survey methods and techniques to better represent a wider demographic and socio-economic range of users, our program must go further. We need metrics that specifically measure equity and inclusivity through the process through implementation.

What’s Next?

Given the many changing parts of the social and physical infrastructure in this year,  our pedestrian and bicycle safety efforts in 2020 will need to be evaluated, analyzed, and assessed in very different ways than previous years. We are considering new evaluation goals to understand what works on our streets within the constraints and unique characteristics of the pandemic and the intersecting racial equity movement.



Published July 29, 2020 at 01:05AM
https://ift.tt/3g9mA5f

Show HN: Form Capital, a seed fund offering design sprints with each investment https://ift.tt/2P3Xp8e

Show HN: Form Capital, a seed fund offering design sprints with each investment http://formcapital.com July 28, 2020 at 11:22PM

Show HN: Tired of reading NerdWallet to see the best credit card? I automated it https://ift.tt/39yOjKd

Show HN: Tired of reading NerdWallet to see the best credit card? I automated it https://ift.tt/30S9GSQ July 28, 2020 at 07:54PM

Show HN: Nova – Monitor Helm for New Kubernetes Releases https://ift.tt/3g9s13U

Show HN: Nova – Monitor Helm for New Kubernetes Releases https://ift.tt/30XbhXk July 28, 2020 at 06:11PM

Show HN: Go-fileserver – Share files from PC to mobile over WiFi via QRCode https://ift.tt/30X8dKO

Show HN: Go-fileserver – Share files from PC to mobile over WiFi via QRCode https://ift.tt/3hzIjU5 July 28, 2020 at 03:37PM

Show HN: oso – Open-Source Policy Engine for Authorization https://ift.tt/3jQlOfu

Show HN: oso – Open-Source Policy Engine for Authorization https://www.osohq.com/ July 28, 2020 at 05:10PM

Launch HN: QuestDB (YC S20) – Fast open source time series database https://ift.tt/2EjYre2

Launch HN: QuestDB (YC S20) – Fast open source time series database Hey everyone, I’m Vlad and I co-founded QuestDB ( https://questdb.io ) with Nic and Tanc. QuestDB is an open source database for time series, events, and analytical workloads with a primary focus on performance ( https://ift.tt/2DmHzQo ). It started in 2012 when an energy trading company hired me to rebuild their real-time vessel tracking system. Management wanted me to use a well-known XML database that they had just bought a license for. This option would have required to take down production for about a week just to ingest the data. And a week downtime was not an option. With no more money to spend on software, I turned to alternatives such as OpenTSDB but they were not a fit for our data model. There was no solution in sight to deliver the project. Then, I stumbled upon Peter Lawrey’s Java Chronicle library [1]. It loaded the same data in 2 minutes instead of a week using memory-mapped files. Besides the performance aspect, I found it fascinating that such a simple method was solving multiple issues simultaneously: fast write, read can happen even before data is committed to disk, code interacts with memory rather than IO functions, no buffers to copy. Incidentally, this was my first exposure to zero-GC Java. But there were several issues. First, at the time It didn’t look like the library was going to be maintained. Second, it used Java NIO instead of using the OS API directly. This adds overhead since it creates individual objects with sole purpose to hold a memory address for each memory page. Third, although the NIO allocation API was well documented, the release API was not. It was really easy to run out of memory and hard to manage memory page release. I decided to ditch the XML DB and then started to write a custom storage engine in Java, similar to what Java Chronicle did. This engine used memory mapped files, off-heap memory and a custom query system for geospatial time series. Implementing this was a refreshing experience. I learned more in a few weeks than in years on the job. Throughout my career, I mostly worked at large companies where developers are “managed” via itemized tasks sent as tickets. There was no room for creativity or initiative. In fact, it was in one’s best interest to follow the ticket's exact instructions, even if it was complete nonsense. I had just been promoted to a managerial role and regretted it after a week. After so much time hoping for a promotion, I immediately wanted to go back to the technical side. I became obsessed with learning new stuff again, particularly in the high performance space. With some money aside, I left my job and started to work on QuestDB solo. I used Java and a small C layer to interact directly with the OS API without passing through a selector API. Although existing OS API wrappers would have been easier to get started with, the overhead increases complexity and hurts performance. I also wanted the system to be completely GC-free. To do this, I had to build off-heap memory management myself and I could not use off-the-shelf libraries. I had to rewrite many of the standard ones over the years to avoid producing any garbage. As I had my first kid, I had to take contracting gigs to make ends meet over the following 6 years. All the stuff I had been learning boosted my confidence and I started performing well at interviews. This allowed me to get better paying contracts, I could take fewer jobs and free up more time to work on QuestDB while looking after my family. I would do research during the day and implement this into QuestDB at night. I was constantly looking for the next thing, which would take performance closer to the limits of the hardware. A year in, I realised that my initial design was actually flawed and that it had to be thrown away. It had no concept of separation between readers and writers and would thus allow dirty reads. Storage was not guaranteed to be contiguous, and pages could be of various non-64-bit-divisible sizes. It was also very much cache-unfriendly, forcing the use of slow row-based reads instead of fast columnar and vectorized ones.Commits were slow, and as individual column files could be committed independently, they left the data open to corruption. Although this was a setback, I got back to work. I wrote the new engine to allow atomic and durable multi-column commits, provide repeatable read isolation, and for commits to be instantaneous. To do this, I separated transaction files from the data files. This made it possible to commit multiple columns simultaneously as a simple update of the last committed row id. I also made storage dense by removing overlapping memory pages and writing data byte by byte over page edges. This new approach improved query performance. It made it easy to split data across worker threads and to optimise the CPU pipeline with prefetch. It unlocked column-based execution and additional virtual parallelism with SIMD instruction sets [2] thanks to Agner Fog’s Vector Class Library [3]. It made it possible to implement more recent innovations like our own version of Google SwissTable [4]. I published more details when we released a demo server a few weeks ago on ShowHN [5]. This demo is still available to try online with a pre-loaded dataset of 1.6 billion rows [6]. Although it was hard and discouraging at first, this rewrite turned out to be the second best thing that happened to QuestDB. The best thing was that people started to contribute to the project. I am really humbled that Tanc and Nic left our previous employer to build QuestDB. A few months later, former colleagues of mine left their stable low-latency jobs at banks to join us. I take this as a huge responsibility and I don’t want to let these guys down. The amount of work ahead gives me headaches and goosebumps at the same time. QuestDB is deployed in production, including into a large fintech company. We’ve been focusing on building a community to get our first users and gather as much feedback as possible. Thank you for reading this story - I hope it was interesting. I would love to read your feedback on QuestDB and to answer questions. [1] https://ift.tt/11g71v6 [2] https://ift.tt/39KJE6k [3] https://ift.tt/2CUWTH9 [4] https://ift.tt/30TsPDL... [5] https://ift.tt/37TmfQV [6] https://ift.tt/2EiOfCz July 28, 2020 at 03:57PM

Show HN: I built a free alternative stock data platform https://ift.tt/30ToNvc

Show HN: I built a free alternative stock data platform https://ift.tt/2Yt1YPl July 28, 2020 at 03:48PM

Show HN: Twitter bot generates interactive transcript of any audio/video https://ift.tt/3g5XyDW

Show HN: Twitter bot generates interactive transcript of any audio/video https://twitter.com/spext_it July 28, 2020 at 02:05PM

Show HN: An Actually-Tiny Basic for Arduino https://ift.tt/2X2YRMA

Show HN: An Actually-Tiny Basic for Arduino https://ift.tt/2P0zQgA July 27, 2020 at 11:06AM

Show HN: New Dark Theme for Highlight.js https://ift.tt/2EovUUJ

Show HN: New Dark Theme for Highlight.js https://ift.tt/2WY7Yy3 July 28, 2020 at 12:56PM