並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 676件

新着順 人気順

data-structureの検索結果161 - 200 件 / 676件

  • The Death of Hype: What's Next for Scala

    A recent tweet by a friend of mine noted how the public interest in the Scala programming language seems to have plateaued or waned, which matches my feeling of the latest trends and zeitgeist. This blog post will go into why I think that has happened, where Scala stands now, and what the future holds for the Scala community. About the Author: Haoyi is a software engineer, and the author of many o

    • Good Code Design From Linux/Kernel

      Learn how Linux/FFmpeg C partial codebase is organized to be extensible and act as if it were meant to have “polymorphism”. Specifically, we’re going to briefly explore how Linux concept of everything is a file works at the source code level as well as how FFmpeg can add support fast and easy for new formats and codecs. Good software design – Introduction To write useful and long term maintainable

        Good Code Design From Linux/Kernel
      • When To Use Generics - The Go Programming Language

        The Go 1.18 release adds a major new language feature: support for generic programming. In this article I’m not going to describe what generics are nor how to use them. This article is about when to use generics in Go code, and when not to use them. To be clear, I’ll provide general guidelines, not hard and fast rules. Use your own judgement. But if you aren’t sure, I recommend using the guideline

          When To Use Generics - The Go Programming Language
        • ソフトウェアエンジニア育成プログラム「Build@Mercari」がスタート! #メルカリな日々 | mercan (メルカン)

          みなさんこんにちは!Engineering OfficeチームのKayoreenaです。 2020年、新しい1年がスタートしましたが、皆さんは今年、どんな1年にしたいですか? 今日は、今年5月から始まるソフトウェアエンジニア育成プログラム「Build@Mercari」についてご紹介します。 Build@Mercariとは? Build@Mercariとは、メルカリのエンジニアリング組織が提供するハイブリッド型エンジニア育成プログラムです。これまで さまざまな事情でチャンスが巡ってこなかった方(特にSTEM分野・IT分野におけるマイノリティである女性やLGBT+コミュニティの方、またはUnderrepresented groupのメンバーと自覚している方)を対象に、スキルトレーニングの機会を提供します。スキルトレーニング修了後、選考を経てインターンシップに進める可能性もあります。 今日、IT

            ソフトウェアエンジニア育成プログラム「Build@Mercari」がスタート! #メルカリな日々 | mercan (メルカン)
          • Origami Simulator

            × ORIGAMI SIMULATOR This app allows you to simulate how any origami crease pattern will fold. It may look a little different from what you typically think of as "origami" - rather than folding paper in a set of sequential steps, this simulation attempts to fold every crease simultaneously. It does this by iteratively solving for small displacements in the geometry of an initially flat sheet due to

              Origami Simulator
            • Moving from DynamoDB to tiered storage with MySQL+S3

              Originally we implemented a feature to persist an event-stream into DynamoDB to allow customers to retrieve them. This proved effective, serving as a strong use case for a key/value storage, yet the drawback was its high cost. Moving to provisioned billing-mode reduced cost by ~50%, but that was not going to be sustainable as we scaled to more customers. We also kept multiplying the cost each time

                Moving from DynamoDB to tiered storage with MySQL+S3
              • How a simple Linux kernel memory corruption bug can lead to complete system compromise

                In this case, reallocating the object as one of those three types didn't seem to me like a nice way forward (although it should be possible to exploit this somehow with some effort, e.g. by using count.counter to corrupt the buf field of seq_file). Also, some systems might be using the slab_nomerge kernel command line flag, which disables this merging behavior. Another approach that I didn't look

                • Logic programming in Rust

                  use ascent::ascent; ascent! { relation edge(i32, i32); relation path(i32, i32); path(x, y) <-- edge(x, y); path(x, z) <-- edge(x, y), path(y, z); } fn main() { let mut prog = AscentProgram::default(); prog.edge = vec![(1, 2), (2, 3)]; prog.run(); println!("path: {:?}", prog.path); } Features Lattices Ascent supports computing fixed points of user-defined lattices. The lattice keyword defines a lat

                  • Build Your Own Redis with C/C++ | Build Your Own Redis with C/C++

                    Introduction Why build Redis? Redis exposes you to basic data structures and system programming (mainly network programming), both of which are overlooked by most developers. You can study 2 important subjects in 1 project. Why from scratch? A quote from Richard Feynman: “What I cannot create, I do not understand”. Reading about things often just gives you an illusion of knowledge. Learn deeper by

                      Build Your Own Redis with C/C++ | Build Your Own Redis with C/C++
                    • Rust: Dropping heavy things in another thread can make your code 10000 times faster - Aaron Abrams

                      Rust: Dropping heavy things in another thread can make your code 10000 times faster When working on Rust applications or CLIs that need to show something to the end user as fast as possible I often find that a significant chunk of the time is usually spent not in doing any computations, but in dropping large data structures at the end of the function. For example, imagine you have a function that

                      • Defunctionalization and Freyd’s Theorem

                        Defunctionalization and Freyd’s Theorem Posted by Bartosz Milewski under Category Theory, Programming [9] Comments The main idea of functional programming is to treat functions like any other data types. In particular, we want to be able to pass functions as arguments to other functions, return them as values, and store them in data structures. But what kind of data type is a function? It’s a type

                          Defunctionalization and Freyd’s Theorem
                        • Epigrams in Programming | Computer Science

                          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-r

                          • Real time communication at scale with Elixir at Discord

                            Welcome to our series of case studies about companies using Elixir in production. See all cases we have published so far. Founded in 2015 by Jason Citron and Stan Vishnevskiy, Discord is a permanent, invite-only space for your communities and friends, where people can hop between voice, video, and text, depending on how they want to talk, letting them have conversations in a very natural or authen

                              Real time communication at scale with Elixir at Discord
                            • Zhenghao's site

                              Published on 18 March, 2022Last updated on 17 April, 2022 This post has been translated into Korean This post is my version of Mark Erikson's essay A (Mostly) Complete Guide to React Rendering Behavior where I try to answer one of the most commonly asked questions in this React community – "when or why does React render my component?" – with a tiny amount of React source code walkthrough. Normally

                              • My thoughts on writing a Minecraft server from scratch (in Bash)

                                My thoughts on writing a Minecraft server from scratch (in Bash) For the past year or so, I've been thinking about writing a Minecraft server in Bash as a thought excercise. I once tried that before with the Classic protocol (the one from 2009), but I quickly realized there wasn't really a way to properly parse binary data in bash. Take the following code sample: function a() { read -n 2 uwu echo

                                • Demystifying Cache Normalization | Apollo GraphQL Blog

                                  Apollo Client has a particularly challenging responsibility: to make interconnected GraphQL data easy to use on the client-side. In most rich client applications, we need the ability to cache data and pass it to components. We also need to know when to re-fetch data vs. when to return what’s already cached; this helps to avoid making unnecessary network requests. This kind of caching logic can be

                                    Demystifying Cache Normalization | Apollo GraphQL Blog
                                  • CRDTs go brrr

                                    5000x faster CRDTs: An Adventure in Optimization July 31 2021 A few years ago I was really bothered by an academic paper. Some researchers in France put together a comparison showing lots of ways you could implement realtime collaborative editing (like Google Docs). They implemented lots of algorithms - CRDTs and OT algorithms and stuff. And they benchmarked them all to see how they perform. (Cool

                                    • 【pwn 10.0】 gnote (kernel exploitation) - TokyoWesternsCTF2019 - newbie dive into binary

                                      1: イントロ 2: 解き始めるまで 問題について デバッグ環境について 3: モジュールの挙動について 4: jmptableの脆弱性について switch分岐のアセンブラ おおよその展望 5:kmalloc()とスラブアロケータについて スラブアロケータ概略 kmalloc() kmem_cache_alloc_trace() slab_alloc()/ slab_alloc_node() つまりは 6: timerfd_ctxを利用したkernel symbol の leak __x64_sys_timerfd_createシステムコール timerfd_release()とRCU 7: RIPを取る 8: privilege acceleration prepare_kernel_cred(NULL); commit_creds() ROPを組んでroot権限を取る sysretq

                                        【pwn 10.0】 gnote (kernel exploitation) - TokyoWesternsCTF2019 - newbie dive into binary
                                      • Exploring the c4... compiler?

                                        This week I found myself digging through the code of c4, an implementation of C “in four functions”, by Robert Swierczek. I remember coming across c4 when it was released ten years ago. It got me excited: hey, C in four functions, that means it’s easy to understand right? That excitement turned into “oh, I see” as soon as I scrolled through the code. c4 is dense, barely commented, and, frankly, st

                                          Exploring the c4... compiler?
                                        • Building data-centric apps with a reactive relational database

                                          Building apps is too hard. Even skilled programmers who don’t specialize in app development struggle to build simple interactive tools. We think that a lot of what makes app development hard is managing state: reacting and propagating changes as the user takes actions. We’re exploring a new way to manage data in apps by storing all app state—including the state of the UI—in a single reactive datab

                                            Building data-centric apps with a reactive relational database
                                          • Amazon MemoryDB for Redisの論文がSIGMOD 2024で採択されたので読んでみた | DevelopersIO

                                            Amazon MemoryDBではトランザクションログサービスへの耐久性のオフロード、スナップショット用にephemeralクラスタを作成、形式手法(TLA+)で一貫性の検証などが活躍しています Amazon MemoryDB for RedisはAWSが2021年から提供するRedis互換でありながら高速なパフォーマンスと耐久性を兼ね備えたエンタープライズなインメモリデータベースです。このAmazon MemoryDBの仕組みについて説明した論文が、2024年6月にチリ・サンティアゴで開催される国際的なデータベース学会の「SIGMOD/PODS 2024」で採択されました。 The 2024 ACM SIGMOD/PODS Conference: Santiago, Chile - Welcome Amazon MemoryDB: A fast and durable memory-fi

                                              Amazon MemoryDB for Redisの論文がSIGMOD 2024で採択されたので読んでみた | DevelopersIO
                                            • Lezer

                                              I keep coming across people who consider parser technology a forbidding, scary field of programming. This is nonsense—a small parser can be very, very simple, and provide a wholesome exercise in recursive thinking. At the same time, it is true that you can make parsing extremely complicated. Mostly, this tends to happen when you generalize parsing techniques to work for different grammars. Since c

                                              • Mocking and Testing GraphQL in React

                                                Testing GraphQL doesn't have to be difficult. This article will explore static and dynamic mocks to make testing GraphQL a breeze. Imagine you're working on a new feature with another team. You're in charge of the React side, but someone else is in charge of the GraphQL changes. Is it possible for you to develop your side before they have finished theirs? Or how about wanting to test your componen

                                                  Mocking and Testing GraphQL in React
                                                • Tips on Adding JSON Output to Your CLI App - Brazil's Blog

                                                  Brazil's Blog Musings on automation, scripting, programing, DevOps, and cybersecurity A couple of years ago I wrote a somewhat controversial article on the topic of Bringing the Unix Philosophy to the 21st Century by adding a JSON output option to CLI tools. This allows easier parsing in scripts by using JSON parsing tools like jq, jello, jp, etc. without arcane awk, sed, cut, tr, reverse, etc. in

                                                    Tips on Adding JSON Output to Your CLI App - Brazil's Blog
                                                  • AWK As A Major Systems Programming Language — Revisited

                                                    AWK As A Major Systems Programming Language — Revisited Preface I started this paper in 2013, and in 2015 sent it out for review to the people listed later on. After incorporating comments, I sent it to Rik Farrow, the editor of the USENIX magazine ;login: to see if he would publish it. He declined to do so, for reasonably good reasons. The paper languished, forgotten, until early 2018 when I came

                                                    • npm Blog Archive: npm v7 Series - Why Keep `package-lock.json`?

                                                      The npm blog has been discontinued. Updates from the npm team are now published on the GitHub Blog and the GitHub Changelog. << Arborist Deep Dive >> Beta Release! One common question we’ve gotten a few times now, once we announce that npm v7 will include support for yarn.lock files, is “Why keep package-lock.json at all, then? Why not just use yarn.lock only?” The simple answer is: because yarn.l

                                                        npm Blog Archive: npm v7 Series - Why Keep `package-lock.json`?
                                                      • xi-editor/docs/docs/crdt-details.md at master · xi-editor/xi-editor

                                                        This document contains a detailed description of the data structures and operations Xi uses for text. These data structures and the merge operation also form a Conflict-free Replicated Data Type (CRDT). It being a CRDT allows Xi to be used for concurrent editing of text on multiple devices, it can merge edits, including those made offline, between multiple devices and converge on a consistent docu

                                                          xi-editor/docs/docs/crdt-details.md at master · xi-editor/xi-editor
                                                        • Prettier 2.3. In which assignments are consistent, short keys non-breaking, and Handlebars official · Prettier

                                                          This release focuses on fixing long-standing issues in the JavaScript printer. Be warned that, unfortunately, reformatting a project with the new version might result in quite a big diff. If you don’t use ignoreRevsFile to hide such wholesale changes from git blame, it might be about time. A remarkable milestone is the long-awaited release of the Ember / Handlebars formatter. It’s supposed to be t

                                                            Prettier 2.3. In which assignments are consistent, short keys non-breaking, and Handlebars official · Prettier
                                                          • Memory Management in Lobster

                                                            This is a more in-depth explanation of how memory management in Lobster works, and is typically not needed to be understood fully to use the language. It may be interesting to those wanting to implement a similar scheme in another language. Introduction Memory management is an aspect of a language that has one of the biggest influences on how a language turns out: it affects the type system and th

                                                            • Flow Diagram Software Good Data Flow Diagram Software For Mac - gigachicago

                                                              Visiteurs depuis le 25/01/2019 : 1512 Connectés : 1 Record de connectés : 35 There are many types of Flowcharts, such as Cross-Functional Flowcharts, Data Flow Diagrams, Swimlane Flowcharts, Workflow Diagrams, Business Process Diagrams, Process Flowcharts, etc. ConceptDraw PRO is a powerful diagram software used to create Flow chart on Mac. Jul 7, 2018 - These free flowchart creating softwares are

                                                                Flow Diagram Software Good Data Flow Diagram Software For Mac - gigachicago
                                                              • Lua: The Little Language That Could

                                                                Lua is probably my favourite “little language” - a language designed to have low cognitive load, and be easy to learn and use. It’s embedded in a lot of software, such as Redis, NGINX via OpenResty and Wireshark. It’s also used as a scripting language in games such as World of Warcraft and Roblox via Luau. This post is a brief love letter to the language, with some examples of why I like it so muc

                                                                • Emulating an iPod Touch 1G and iPhoneOS 1.0 using QEMU (Part I) | Martijn de Vos

                                                                  Around a year ago, I started working on emulating an iPod Touch 1G using the QEMU emulation software. After months of reverse engineering, figuring out the specifications of various hardware components, and countless debugging runs with GDB, I now have a functional emulation of an iPod Touch that includes display rendering and multitouch support. The emulated device runs the first firmware ever re

                                                                  • Let's Build a Compiler 01: Starting Out - The General Problem

                                                                    Compilers, interpreters, runtimes, and the like can sometimes feel vaguely magical. They take your code, perform complex transformations that you only partially understand, and spit out an executable binary. Clearly, the inner workings of such a beast must contain arcane secrets, not meant for the minds of mortals. Of course, even if it feels that way sometimes, that doesn't make it true. As with

                                                                    • GitHub - javascriptdata/danfojs: Danfo.js is an open source, JavaScript library providing high performance, intuitive, and easy to use data structures for manipulating and processing structured data.

                                                                      Danfo.js is fast and supports Tensorflow.js tensors out of the box. This means you can convert Danfo data structure to Tensors. Easy handling of missing-data (represented as NaN) in floating point as well as non-floating point data Size mutability: columns can be inserted/deleted from DataFrame Automatic and explicit alignment: objects can be explicitly aligned to a set of labels, or the user can

                                                                        GitHub - javascriptdata/danfojs: Danfo.js is an open source, JavaScript library providing high performance, intuitive, and easy to use data structures for manipulating and processing structured data.
                                                                      • How RocksDB works - Artem Krylysov

                                                                        Introduction # Over the past years, the adoption of RocksDB increased dramatically. It became a standard for embeddable key-value stores. Today RocksDB runs in production at Meta, Microsoft, Netflix, Uber. At Meta RocksDB serves as a storage engine for the MySQL deployment powering the distributed graph database. Big tech companies are not the only RocksDB users. Several startups were built around

                                                                        • Understanding Allocations in Go

                                                                          Cleaning up heap allocations in GoThis is the 18th article of the Eureka Advent Calendar 2020. Yesterday we had a post from Jun Ernesto Okumura on diversity in Spotify’s recommender systems. IntroductionThanks to efficient in-built memory management in the Go runtime, we’re generally able to prioritise correctness and maintainability in our programs without much consideration for the details of ho

                                                                            Understanding Allocations in Go
                                                                          • Understanding the Heap - a beautiful mess

                                                                            In this blog, I am going to explain the important concepts of Heap and use the ptmalloc in the Glibc 2.31 library as an example. The heap is a beautiful mess :) I really like the saying shown above. The word Heap we always use refers to the dynamically allocated segment in the virtual memory space of a process, but it actually stands for the implementation of the memory pool(the dynamic memory all

                                                                            • Why Authorization is Hard

                                                                              Feb 2023 Update: Since writing this post in 2021, we've built, released, and GA-ed Oso Cloud: our opinionated solution for authorization. Two years ago, my cofounder and I started building security tools for infrastructure. We kept hearing that application developers were building their own homegrown authorization tools. At first we were a little skeptical. People have been building authorization

                                                                                Why Authorization is Hard
                                                                              • Writing a scheduler for Linux in Rust that runs in user-space

                                                                                Overview I’ve decided to start a series of blog posts to cover some details about scx_rustland, my little Linux scheduler written in Rust that runs in user-space. This project started for fun over the Christmas break, mostly because I wanted to learn more about sched-ext and I also needed some motivation to keep practicing Rust (that I’m still learning). In this series of articles I would like to

                                                                                • Rewriting Recoil from scratch

                                                                                  Published September 9, 2020 - (Updated October 5, 2022) Recoil is a slick new React library written by some people at Facebook that work on a tool called "Comparison View." It came about because of ergonomics and performance issues with context and useState. It's a very clever library, and almost everyone will find a use for it - check out this explainer video if you want to learn more. At first I

                                                                                    Rewriting Recoil from scratch