#rethinkdb
Explore tagged Tumblr posts
Text
How much of yourself do you put online?
It’s as much of an age-old question as anything of the internet age is, but I think about it every few years. Slapping up a web page full of personal thoughts in 1999 didn’t carry the same weight that it does in 2024; employers, even ones literally in the internet space, didn’t necessarily do a web search on your name to see what came up. Now, though, I don’t know. Now everyone does that kind of search. And, as someone who’s been conducting an unsuccessful, albeit woefully low-key, job hunt in 2024, it’s hard not to ask if what I have online at this point is working against me with more skittish employers. Even before I wrote about conservatives being snowflakes, it wasn’t exactly hard to suss out my left-wing politics, and I’ve been vocally skeptical of generative AI. In a moment where tech companies madly chase AI in either a sincere belief it’s going to change everything or mere FOMO that it might, vocal AI skepticism might be a career-limiting move—and in a moment where alt-right techbros cow companies into walking back DEI efforts, merely noting my pronouns at all, let alone noting them as “he/they”, might also be one. (“What kind of woke beta cuck uses pronouns?” Anyone who speaks English, you stupid motherfucker.) (Also, cursing in my blog might be a career-limiting move.) And yet, I don’t know. Do I want to frantically dash around the internet, tearing down anything that might give a prospective employer the heebie-jeebies about me? Is that even possible? While I’ve never reached “internet famous” status, I’ve posted lots of stuff in lots of places. When I was more actively doing tech blogging at Coyote Tracks, it got linked to by other blogs often enough that I used to joke that while you’re probably not reading me, somebody you’re reading probably is. There is an alternate universe in which I figured out how to monetize that. And, well, while I don’t advertise being a furry, I’ve been writing furry fiction for decades and have been guest of honor at more than one furry con. One does not have to possess mad internet sleuthing skills to put two and two together. Frankly, I’m always amazed when I find people I grew up with, especially members of the Original Internet Nerd cohort, have next to no footprint online. The one whose LinkedIn includes “Futurist at the Center for 21st Century Teaching Excellence” you’d kind of expect to have, I don’t know, a low-effort Substack, if not a YouTube channel, right? If you can tell someone your job title is “futurist” and keep a straight face, I’m pretty sure they’re legally required to give you a TED Talk. But apart from that LinkedIn, there’s basically nothing out there about them, and that’s true for the majority of other folks I knew in that place at that time. Does that help with job hunts? Maybe. On the other hand, maybe it hurts. It’s my understanding the former futurist’s LinkedIn is long out of date, and they struggled to find work for years before moving into non-tech fields. I can’t say that actually being, you know, present on the internet might have helped if they’d wanted to stay in tech, but I wonder. I made the shift to tech writing largely because of my loudmouth tech blog, when Joey Zwicker at RethinkDB came across it and thought, “we should talk to them about our new tech writing position.” Of course, I don’t know that they did want to stay in tech. If they didn’t, I couldn’t blame them. In any case, I don’t think erasing my digital footprint is either possible or worth it. Anyone who reads what I write and decides they can’t work with someone like me is probably right. (originally published at Coyote Tracks)
1 note
·
View note
Text
Database Management System (DBMS) Development
Databases are at the heart of almost every software system. Whether it's a social media app, e-commerce platform, or business software, data must be stored, retrieved, and managed efficiently. A Database Management System (DBMS) is software designed to handle these tasks. In this post, we’ll explore how DBMSs are developed and what you need to know as a developer.
What is a DBMS?
A Database Management System is software that provides an interface for users and applications to interact with data. It supports operations like CRUD (Create, Read, Update, Delete), query processing, concurrency control, and data integrity.
Types of DBMS
Relational DBMS (RDBMS): Organizes data into tables. Examples: MySQL, PostgreSQL, Oracle.
NoSQL DBMS: Used for non-relational or schema-less data. Examples: MongoDB, Cassandra, CouchDB.
In-Memory DBMS: Optimized for speed, storing data in RAM. Examples: Redis, Memcached.
Distributed DBMS: Handles data across multiple nodes or locations. Examples: Apache Cassandra, Google Spanner.
Core Components of a DBMS
Query Processor: Interprets SQL queries and converts them to low-level instructions.
Storage Engine: Manages how data is stored and retrieved on disk or memory.
Transaction Manager: Ensures consistency and handles ACID properties (Atomicity, Consistency, Isolation, Durability).
Concurrency Control: Manages simultaneous transactions safely.
Buffer Manager: Manages data caching between memory and disk.
Indexing System: Enhances data retrieval speed.
Languages Used in DBMS Development
C/C++: For low-level operations and high-performance components.
Rust: Increasingly popular due to safety and concurrency features.
Python: Used for prototyping or scripting.
Go: Ideal for building scalable and concurrent systems.
Example: Building a Simple Key-Value Store in Python
class KeyValueDB: def __init__(self): self.store = {} def insert(self, key, value): self.store[key] = value def get(self, key): return self.store.get(key) def delete(self, key): if key in self.store: del self.store[key] db = KeyValueDB() db.insert('name', 'Alice') print(db.get('name')) # Output: Alice
Challenges in DBMS Development
Efficient query parsing and execution
Data consistency and concurrency issues
Crash recovery and durability
Scalability for large data volumes
Security and user access control
Popular Open Source DBMS Projects to Study
SQLite: Lightweight and embedded relational DBMS.
PostgreSQL: Full-featured, open-source RDBMS with advanced functionality.
LevelDB: High-performance key-value store from Google.
RethinkDB: Real-time NoSQL database.
Conclusion
Understanding how DBMSs work internally is not only intellectually rewarding but also extremely useful for optimizing application performance and managing data. Whether you're designing your own lightweight DBMS or just exploring how your favorite database works, these fundamentals will guide you in the right direction.
0 notes
Photo

Build a realtime application with Node.js and RethinkDB ☞ http://dev.edupioneer.net/0083c387b5 #realtime #application #Nodejs #RethinkDB
1 note
·
View note
Photo

Build Realtime Apps | React Js, Golang & RethinkDB ☞ http://deal.techcus.com/p/BJxgyneLx?utm_source=3 #ReactJs
1 note
·
View note
Photo

Build Realtime Apps | React Js, Golang & RethinkDB ☞ http://deal.techcus.com/p/BJxgyneLx?utm_source=3 #ReactJs
1 note
·
View note
Photo

Build a realtime application with Node.js and RethinkDB ☞ http://dev.edupioneer.net/0083c387b5 #realtime #application #Nodejs #RethinkDB
0 notes
Text
RethinkDB: why we failed (2017)
https://www.defmacro.org/2017/01/18/why-rethinkdb-failed.html?zarsrc=30&utm_source=zalo&utm_medium=zalo&utm_campaign=zalo Comments
1 note
·
View note
Photo

Build Realtime Apps | React Js, Golang & RethinkDB ☞ http://bit.ly/2L9xNGp #reactjs #javascript
2 notes
·
View notes
Photo
hydralisk98′s web projects tracker:
Core principles=
Fail faster
‘Learn, Tweak, Make’ loop
This is meant to be a quick reference for tracking progress made over my various projects, organized by their “ultimate target” goal:
(START)
(Website)=
Install Firefox
Install Chrome
Install Microsoft newest browser
Install Lynx
Learn about contemporary web browsers
Install a very basic text editor
Install Notepad++
Install Nano
Install Powershell
Install Bash
Install Git
Learn HTML
Elements and attributes
Commenting (single line comment, multi-line comment)
Head (title, meta, charset, language, link, style, description, keywords, author, viewport, script, base, url-encode, )
Hyperlinks (local, external, link titles, relative filepaths, absolute filepaths)
Headings (h1-h6, horizontal rules)
Paragraphs (pre, line breaks)
Text formatting (bold, italic, deleted, inserted, subscript, superscript, marked)
Quotations (quote, blockquote, abbreviations, address, cite, bidirectional override)
Entities & symbols (&entity_name, &entity_number,  , useful HTML character entities, diacritical marks, mathematical symbols, greek letters, currency symbols, )
Id (bookmarks)
Classes (select elements, multiple classes, different tags can share same class, )
Blocks & Inlines (div, span)
Computercode (kbd, samp, code, var)
Lists (ordered, unordered, description lists, control list counting, nesting)
Tables (colspan, rowspan, caption, colgroup, thead, tbody, tfoot, th)
Images (src, alt, width, height, animated, link, map, area, usenmap, , picture, picture for format support)
old fashioned audio
old fashioned video
Iframes (URL src, name, target)
Forms (input types, action, method, GET, POST, name, fieldset, accept-charset, autocomplete, enctype, novalidate, target, form elements, input attributes)
URL encode (scheme, prefix, domain, port, path, filename, ascii-encodings)
Learn about oldest web browsers onwards
Learn early HTML versions (doctypes & permitted elements for each version)
Make a 90s-like web page compatible with as much early web formats as possible, earliest web browsers’ compatibility is best here
Learn how to teach HTML5 features to most if not all older browsers
Install Adobe XD
Register a account at Figma
Learn Adobe XD basics
Learn Figma basics
Install Microsoft’s VS Code
Install my Microsoft’s VS Code favorite extensions
Learn HTML5
Semantic elements
Layouts
Graphics (SVG, canvas)
Track
Audio
Video
Embed
APIs (geolocation, drag and drop, local storage, application cache, web workers, server-sent events, )
HTMLShiv for teaching older browsers HTML5
HTML5 style guide and coding conventions (doctype, clean tidy well-formed code, lower case element names, close all html elements, close empty html elements, quote attribute values, image attributes, space and equal signs, avoid long code lines, blank lines, indentation, keep html, keep head, keep body, meta data, viewport, comments, stylesheets, loading JS into html, accessing HTML elements with JS, use lowercase file names, file extensions, index/default)
Learn CSS
Selections
Colors
Fonts
Positioning
Box model
Grid
Flexbox
Custom properties
Transitions
Animate
Make a simple modern static site
Learn responsive design
Viewport
Media queries
Fluid widths
rem units over px
Mobile first
Learn SASS
Variables
Nesting
Conditionals
Functions
Learn about CSS frameworks
Learn Bootstrap
Learn Tailwind CSS
Learn JS
Fundamentals
Document Object Model / DOM
JavaScript Object Notation / JSON
Fetch API
Modern JS (ES6+)
Learn Git
Learn Browser Dev Tools
Learn your VS Code extensions
Learn Emmet
Learn NPM
Learn Yarn
Learn Axios
Learn Webpack
Learn Parcel
Learn basic deployment
Domain registration (Namecheap)
Managed hosting (InMotion, Hostgator, Bluehost)
Static hosting (Nertlify, Github Pages)
SSL certificate
FTP
SFTP
SSH
CLI
Make a fancy front end website about
Make a few Tumblr themes
===You are now a basic front end developer!
Learn about XML dialects
Learn XML
Learn about JS frameworks
Learn jQuery
Learn React
Contex API with Hooks
NEXT
Learn Vue.js
Vuex
NUXT
Learn Svelte
NUXT (Vue)
Learn Gatsby
Learn Gridsome
Learn Typescript
Make a epic front end website about
===You are now a front-end wizard!
Learn Node.js
Express
Nest.js
Koa
Learn Python
Django
Flask
Learn GoLang
Revel
Learn PHP
Laravel
Slim
Symfony
Learn Ruby
Ruby on Rails
Sinatra
Learn SQL
PostgreSQL
MySQL
Learn ORM
Learn ODM
Learn NoSQL
MongoDB
RethinkDB
CouchDB
Learn a cloud database
Firebase, Azure Cloud DB, AWS
Learn a lightweight & cache variant
Redis
SQLlite
NeDB
Learn GraphQL
Learn about CMSes
Learn Wordpress
Learn Drupal
Learn Keystone
Learn Enduro
Learn Contentful
Learn Sanity
Learn Jekyll
Learn about DevOps
Learn NGINX
Learn Apache
Learn Linode
Learn Heroku
Learn Azure
Learn Docker
Learn testing
Learn load balancing
===You are now a good full stack developer
Learn about mobile development
Learn Dart
Learn Flutter
Learn React Native
Learn Nativescript
Learn Ionic
Learn progressive web apps
Learn Electron
Learn JAMstack
Learn serverless architecture
Learn API-first design
Learn data science
Learn machine learning
Learn deep learning
Learn speech recognition
Learn web assembly
===You are now a epic full stack developer
Make a web browser
Make a web server
===You are now a legendary full stack developer
[...]
(Computer system)=
Learn to execute and test your code in a command line interface
Learn to use breakpoints and debuggers
Learn Bash
Learn fish
Learn Zsh
Learn Vim
Learn nano
Learn Notepad++
Learn VS Code
Learn Brackets
Learn Atom
Learn Geany
Learn Neovim
Learn Python
Learn Java?
Learn R
Learn Swift?
Learn Go-lang?
Learn Common Lisp
Learn Clojure (& ClojureScript)
Learn Scheme
Learn C++
Learn C
Learn B
Learn Mesa
Learn Brainfuck
Learn Assembly
Learn Machine Code
Learn how to manage I/O
Make a keypad
Make a keyboard
Make a mouse
Make a light pen
Make a small LCD display
Make a small LED display
Make a teleprinter terminal
Make a medium raster CRT display
Make a small vector CRT display
Make larger LED displays
Make a few CRT displays
Learn how to manage computer memory
Make datasettes
Make a datasette deck
Make floppy disks
Make a floppy drive
Learn how to control data
Learn binary base
Learn hexadecimal base
Learn octal base
Learn registers
Learn timing information
Learn assembly common mnemonics
Learn arithmetic operations
Learn logic operations (AND, OR, XOR, NOT, NAND, NOR, NXOR, IMPLY)
Learn masking
Learn assembly language basics
Learn stack construct’s operations
Learn calling conventions
Learn to use Application Binary Interface or ABI
Learn to make your own ABIs
Learn to use memory maps
Learn to make memory maps
Make a clock
Make a front panel
Make a calculator
Learn about existing instruction sets (Intel, ARM, RISC-V, PIC, AVR, SPARC, MIPS, Intersil 6120, Z80...)
Design a instruction set
Compose a assembler
Compose a disassembler
Compose a emulator
Write a B-derivative programming language (somewhat similar to C)
Write a IPL-derivative programming language (somewhat similar to Lisp and Scheme)
Write a general markup language (like GML, SGML, HTML, XML...)
Write a Turing tarpit (like Brainfuck)
Write a scripting language (like Bash)
Write a database system (like VisiCalc or SQL)
Write a CLI shell (basic operating system like Unix or CP/M)
Write a single-user GUI operating system (like Xerox Star’s Pilot)
Write a multi-user GUI operating system (like Linux)
Write various software utilities for my various OSes
Write various games for my various OSes
Write various niche applications for my various OSes
Implement a awesome model in very large scale integration, like the Commodore CBM-II
Implement a epic model in integrated circuits, like the DEC PDP-15
Implement a modest model in transistor-transistor logic, similar to the DEC PDP-12
Implement a simple model in diode-transistor logic, like the original DEC PDP-8
Implement a simpler model in later vacuum tubes, like the IBM 700 series
Implement simplest model in early vacuum tubes, like the EDSAC
[...]
(Conlang)=
Choose sounds
Choose phonotactics
[...]
(Animation ‘movie’)=
[...]
(Exploration top-down ’racing game’)=
[...]
(Video dictionary)=
[...]
(Grand strategy game)=
[...]
(Telex system)=
[...]
(Pen&paper tabletop game)=
[...]
(Search engine)=
[...]
(Microlearning system)=
[...]
(Alternate planet)=
[...]
(END)
4 notes
·
View notes
Photo

Build Realtime Apps | React Js, Golang & RethinkDB ☞ http://bit.ly/2L9xNGp #reactjs #javascript
1 note
·
View note
Text
The basis: NodeJS
I want to create an interactive website for Hearthstone tournaments with NodeJS. user shall be able to create own tournaments, and I want to host somewhat like "Ranked” tournaments. So what do we need to make that happen only with Javascript and HTML5? Well we need the following things:
a webframework: Express 4.x.x
a Database with realtime data polling: RethinkDB
(I hate mongoDB Schematiks)
realtime communication: socket.io( known for stuff like agar.io)
and something to make everything fancy: p5.js
And of course usermanagement: passportjs
These are just the big 5 im gonna use and im just learning right now javascript but I think this is gonna work out, i try and errored the last 4 months through these.
0 notes
Text
RacketDB, and Method Chaining
If you’re wondering where the posts about my Racket RethinkDB driver went, I’ve archived them until I can find the time to reorganize them a little. The good news is that the initial code is now available on Github. It’s missing a few things yet, but there’s enough to play around with.
One of the more interesting aspects to this project was trying to design an API that closely mirrored the nice chaining style offered by the official drivers. To see an example of what I mean, here is how one might write a filter query using the Ruby driver:
r.db("library") .table("books") .filter({:author => "Doris Lessing"}) .run(conn)
What this query serializes to (i.e. what’s transmitted to the server by run) is the following:
[39,[[15,[[14, ["library"]],"books"]],{"author":"Doris Lessing"}]]
where 39 is the code for a filter command; 15, for table; and 14, for db. (See the section on “ReQL Commands” under Serializing Queries in the driver guide for more info.)
The main point here is that the query is nested “inside-out” from the order of the methods. In the most straightforward Racket, we would write something like:
(filter (table "books" (db "library")) (hash "author" "Doris Lessing"))
where each command takes the queries it depends on as arguments. But I find this aesthetically less appealing than the ReQL chaining style, and why make the Racket driver not as great as any other? So then, if we’re going to make calls in inverse order, how do we get each command to “pass itself forward” to the command that needs it?
Inverting the nesting of expressions is exactly what happens with continuation-passing style, so it seems likely that continuations are somehow the answer. In fact, each ReQL command could produce a lambda that takes a “continuation” and applies that to whatever the command itself should produce (in this case, a data structure representation of the command). This continuation knows how the rest of the query needs to be built (hence it’s called “builder”), and how to slot the current command into it. (Where it comes from, we’ll get to in a second.) So, for example, the definition of db might look something like this:
(define (db arg) (λ (builder) (builder (reql-term 'db (list arg) '#hash()))))
db is “anchored” in that it can only occur at the start of a chain, but commands that can be chained in the middle, like table, need to first produce a continuation (for their predecessor), which will in turn produce a lambda that expects a continuation. So, first the chained command receives any query terms it depends on from its predecessor, then it “passes itself forward” via the builder lambda.
(define (table arg) (λ (pred-term) (λ (builder) (builder (reql-term 'table (list pred-term arg) '#hash())))))
Finally, this is all tied together with a function that traverses this list of lambdas and applies them in succession:
(define (build-query . commands) (cond [(empty? commands) (λ (x) x)] [(empty? (rest commands)) ((first commands) (λ (x) x))] [else (let ([chain ((first commands) (second commands))]) (apply build-query (cons chain (rest (rest commands)))))]))
There may be other ways of achieving the same thing, but it’s the best solution I’ve come up with so far for emulating the method chaining style in Racket.
0 notes
Text
câu chuyện khởi nghiệp
khởi nghiệp tinh gọn
When we announced that RethinkDB is shutting down, I promised to write a post-mortem. I took some time to process the experience, and I can now write … Xem thêm
1 note
·
View note
Photo

Build Realtime Apps | React Js, Golang & RethinkDB ☞ http://bit.ly/2L9xNGp #reactjs #javascript
1 note
·
View note