ToCode
Open in Telegram
××פ×× ×§×¦×Ø×× ×××Ŗ×× ×Ŗ×× ×××Ŗ ×× ×× ×¤×Ø×§
Show more1 420
Subscribers
No data24 hours
No data7 days
-530 days
Posts Archive
1 420
ש××ש ×Ŗ×× ××Ŗ ×××Ø× ××צ×××Ŗ ×¢×××× ××××××§
×§××× ×× ××××× × ×××Ŗ, ××Ŗ×ר פר×××× ×”×Ø × 12 ×©× ×× ×××ר×× ××Ŗ ×¢×ר ×ר×× ××× ××× ××¤×¢× ×××ר×× × ×©×××¤×©×Ŗ× ×¢××××. ×× × ×××× ×××ר ××Ŗ ××¢××× ××× ××תר ××Ø× ××ר×× ×× ×× ××”××× ××Ŗ ש×× ××¢××ר ×××§××××Ŗ ×××××”.
×××× ×××Ŗ ×× ×§×××Ŗ ×××× ×קצת ×ר×××§×Ŗ ש×× ×ש ש×××©× ×¢×§×Ø×× ××Ŗ ××× ××רה×××× ×©×× × ×Ø××× ××× ×Ŗ×××× ×©× ××פ×ש ×× ××××”. עקר×× ××Ŗ ש×ש××Ŗ× ×××× ×× ×××Ŗ× ××Ŗ××× × ×©× ××פ×ש ×¢×××× × ×Ø×××Ŗ ×ר×× ×¤×××Ŗ ××××צ×.
×× ×××Ŗ תשת××Ŗ
××¢×קר×× ×ר×ש×× ××× ×× ×××Ŗ ×תשת××Ŗ. תשת××Ŗ ××××× ×©× ××פ×ש ×¢×××× ××ר×××Ŗ ××××ר××Ŗ ×¢× ×× ×©×× ×Ø×××× ××× ××Ŗ×××, ש×פ×ר ×ר×× ××קצ××¢××Ŗ ש×××, ×× ×××Ŗ ×Ŗ××§ ×¢×××××Ŗ ש×ר×× ×¢× ×××××Ŗ ×קצ××¢××Ŗ ××× ×××Ŗ ××××× ××××Ŗ ר×××Ŗ ש×××¤×©×Ø× ××× ××שת×× ××ר×××.
×פר××× ××× ×× ×¤×××Ŗ ×ש×××× ××§× ××צ×× ×××× ××פ×× ×רשת ×××. ××××× ×ש××× ××××ר ×× ×©×× ×××× ×ש××× ×§×ר××Ŗ ×××× ×××ר××Ŗ ×ש×× ××צ××¦× ××××××”××Ŗ ×©× ××× ××××× ×× ×××× ×שפר (××× ×××Ŗ×××× ×¢× ×××Ŗ× ×× ×©×× ×××ר××Ŗ ××ש××), ××שתתף ×××ר××¢×× ×קצ××¢××× ×©× ×תעש×××, ××××Ŗ ××××§×Ŗ×× ××, ××××× ×” ××§×××××Ŗ ×רשת ×××שתתף ××××× ×× ×©×. ×× ××ר שע××ר ××× ××××ר ×× ×©×× ××¢× ××× ×× ××תעש××× ×××× ××××ר ××Ŗ××.
×ש××× ××שתפר ×קצ××¢××Ŗ ×ש×× ×× ×××× ×××××. ×ש ×××× ×××× ×§×רה×× ×רשת, ×רצ×××Ŗ ×קצ××¢×××Ŗ ××× ×× ×” ××¢××× ×××× ××Ŗ ×××××××, ××תר הפר×× ××× ×©×פשר ×קר×× ××××× ×©××××. ×¢×©× ×עצ××× ×ר×× ×× ××× ××××× ×ש×× ××ש ×× ×ש ××××Ŗ ×××× ×××× ××ר×× ×©×Ŗ×¦×ר×× ×××××.
××Ŗ×ש×× ×Ŗ×Ŗ×××× ××××Ŗ×§× ×××××× ××××Ŗ ××¢×××× ××× ×Ŗ×Ø×¦× ××ר×××Ŗ ש×ש ××× ××Ŗ ××××××Ŗ ××צע ××Ŗ ×× ×©×¦×Ø××. פר×××§××× ××××× ××Ŗ××§ ×¢×××××Ŗ ×× ××× ×× ×××× ××× ××¢×××£ ×××Ŗ××× ××¢××× ×¢×××× ××× ×©××תר ×××§××.
×××Ŗ×ר×× ×ש×× ××× ×× ×©×× ×× × ×× ××××¢×× ××× ××× ××× ×××§× ×××× ×× × ××Ø× ××§×× ×¤××××§ ××××Ŗ× ×©×שקף ×× × ××× ××× ×× ×× × ××Ŗ×§××××. ××× ××× ××Ŗ×××× ×××××¢ ××××× ××××Ŗ. ×¢× ×©×× ××§×Ø× ×××ר ××××× ×©×פשר ×צר×× ×עש××Ŗ ××× ×××ש×× ××¢×××.
× ×צ×× ××××× ××××Ŗ
×ש××Ŗ×××× ×××××¢ ××××× ××××Ŗ ×ש×× ×ש×× ×× ×××××, ×× ×פהפה ××××××Ŗ ×××× ×ר×ר×× ×××× ××××× ××Ŗ ש××× ××××××××Ŗ ש×××. פת××× ××ש×× ×צ××¦× ×ר××¦× ×××××× ×××Ŗ× ×ר×××× ××שרת פ××Ŗ×× Full Stack. ×× ×©×ש×××¢ ××× ×××פ×× ×¤×Ŗ××× ×× ×פה××§ ×צ××¦× ××××× ×Ø×צ×× ×©×Ŗ×××× ××¢××× ×צ×× ×¢× ×¤×Ø×××§××× ×©× ××××¢××Ŗ ××ר×××××××. ×× ×××× ×××××Ŗ ×× ××ר.
×ש×× ××××× ×××× ×××§×× ×× ×××××§ ××Ŗ× ××פש×× ××× ×××××Ŗ ×¢×Ø× ××× ×××××× ××××Ŗ ×× ××× ××Ŗ ××× ××××Ŗ ש××× ×××Ø× ××ר×× ×× ×Ø×××× ×××. ×× ×©×× ×©×× ×¦××× ××××× ××××Ŗ ×× ××Ŗ×××××. ×ש××××¢ פר×××§× ×Ø×××× ×× ×¢×©××Ŗ× ××ר ×הפ××§ ש××¢××Ø× ×××Ŗ ××× ×××¢×Ŗ ש×× ×¤×Ø×××§× ××× ××××§××× ×××Ŗ× ××× ×××”×”.
×××Ŗ×ר ×ש×× ×××××× ××××Ŗ ××× ×©×× ×©×× ×©××××× ×©××××× ××××Ŗ ××××Ŗ ××Ŗ×§×פ××Ŗ. ש×××¢ ×××פ×× ×× ×פה××§ ×צ××¦× ××× ×××ש××× ××× ×©×× ×צע×. ×× ×Ŗ×Ŗ× × ××¢×××£ ×××××× ××××Ŗ ××××× ××Ŗ××.
×תפשר××Ŗ
×צ××Ŗ× ××Ŗ ×××××× ××Ŗ ×פר×××§× ×××? ר×× ××”×××××× ×©××× ×× ×××× ××ש××. ××ר××§, ××ש××רת, ×××× ××××××, ××× ×©××, ×שע××Ŗ, ×××פצ×××Ŗ, ... ××××§ ×××ר×× ××ר×ש ×ש××× ××צ×× ×¢×××× ××× ×× ××× ××Ŗ ××תפשר ×¢× ×××ר×× ×פ×××Ŗ ×ש×××× ×ש××× ××§×× ××Ŗ ×××××× ××Ŗ ש×××××Ŗ× ××.
ש××× ×× ××Ŗ×× ××Ŗ ×××× ×××פ×ש ××¢×××× ××× ×©××× ××Ŗ× × ×עצ××× ×××, ××× × ×××× ×©××Ŗ×××× ×××× ×¤×××Ŗ ××××ׄ ×××תר פר××××§××××.
1 420
××× × ×× ×××
××× ×× ×Ŗ××× × ×©×××Ŗ× ×××Ŗ× × ×ר×× ×××, ×× node.js ×××©× ×××Ŗ× ×ר×× ×§×× ××©× ×פ×צ'ר×× ×©××£ ××× ××ר ×× ××××¢ שק×××××. ×××ר×× ×××× ××××× ××Ŗ ×פ××Ŗ×× ××× ××Ŗ ×××× ×ר××¦× ××× ×× ×”×× ×©××ש××× node ××× ×××××× ×××××Ŗ ×××ר×× ××תר.
× ××”×£ ×¢× ×× × ×× ××××× ×¢× ××× ××× × ××ר××××§×××Ø× ×©×× ×©×× ××ר ×תר××× ××××× ×× ×××¢×× ×¢×××§ ××Ŗ×× ×××§××”××”×× ×©× ×פר×××§×. ××ר×× ××× × ×××× ×Ŗ×××××Ŗ ××Ø× package.json, ××××Ø×”× ×©××× × Buffer-×× ×××××Ø×”× ×©××× × Stream ×××××× CommonJS ××¢×× ×××× ×¤××Ŗ×××× ×©×¢××Ø× ×”×× ×ר×××צ×× ×××Ø× ×©× ×× ×”× × Node.
××× ××ש×××××Ŗ ש×צ××Ŗ× ××× ×©××שת ××××× ××× ××× ××××ר ×××תר, ×¢× ××¢× ×××××Ŗ ××× ×©××תר ×Ŗ××× × node. ××××Ø×”× 1.1 ש×צ×× ×¢×ש×× ×× ×הפר×× ×××Ŗ×××××Ŗ ×¢× × APIs ××× ××Ŗ××¢××× ×©× node ש×× ×ש×פ×××.
××× × ××××¢ ×¢× ×××× ×רש×××Ŗ ×××××× By Default, ×Ŗ×××× ×××Ŗ× ××”××××Ŗ ××”×× ×ר××× ×©× JavaScript × TypeScript. ×× ××× ××× ××צ×ר ×¢××× ××× ××”×× ×ר×× ×©×××× ×§× ×××¢××ר ×× ×§×× ××× ×שרת ××פ××¤× ××.
××× ×× ××××?
×§×©× ×× ×××××× ×¢×Ŗ×× ×× node.js ××ש×× ××××××. ×× ××× ××¢××× × ××× ××ר ×××× ×× ×©×× ××Ŗ×××× ××××××£ ××Ŗ × node ש××× × bun ××× ××ר××ש ×××××. ××××××§ ××× ×©××£ ××× ×× ××Ŗ××¢××¢ ××××פ××§ ×× ×× × ×Ø×× ××¢×××¢×× × node. ×××ר ×××ש ××¢××× ×××××§ ×××Ŗ× ××ר רק ××ר ××תר.
××¢×××× ×× × ××§××× ×ר×××Ŗ ××Ŗ ××× × ×××§× ××Ŗ ××××××. ×ש ××× ×§×××× ×פר×× ×Ŗ ××××Ŗ×× ××× ××××× × ××××Ŗ××Ŗ ××צ×ר ×ש×× ××× ××תר. ×× ×× ××§×Ø× ×× ×× ×××× Drop In Replacement ××× ××××Ø× ×××©× ×©× ×¦××Ø× ×עש××Ŗ. ×× × ×ש×× ×××Ŗ×¢×רר ××× ××× ××××××Ŗ ש××× ×©×× ××××Ŗ× ×¦×Ø×× ××תר ××Ŗ jQuery ×× × ×× ×× ×צ××Ø× ××Ŗ ×× × require, × Buffer ×× APIs ××× ××Ŗ××¢×××.
1 420
××× ×× × ×× ×שת×ש × xz
××× ××¢×××Ŗ ×©× ××¢××× ××¢×§×××Ŗ ×× ××”××× ×××ר×× ×שת×× ×××Ŗ ×××ר××Ŗ ××Ŗ××× × ×©×××× ×שת×ש×× ××-
×§×× ×¤×Ŗ×× ×× ×Ø×¢××× ××¢×××. ×××× ×שת×ש×× ××××Ŗ× ××צר×× ×××××Ŗ× ×Ŗ×©×Ŗ×××Ŗ ××× ×××£ ×× ××Ŗ× ××§×× ××××©× ××Ŗ ××× ××××××Ŗ. ×§×× ×¤×Ŗ×× ××ש ×הר ×× ××¢××× ×©× × Generative AI ××× × ×× ×Ø××¦× ×××××× ××× ××××× ××× × ×Ø××× ×× ××× ××צר ×××× × ×¦×Ø×××× ×ש×× ×Ŗ×××××× ×××××Ŗ ×× ×××¤× ××ר××Ŗ. ××× ×§×× ×¤×Ŗ×× ×× ×× ××¢××, ×× ×¤××Ø×¦× ×§×ר××Ŗ ××× × ××× ××Ŗ×× ×Ŗ× ×§×× ×¤×Ŗ×× ×ר×××××× ××¢× ××× ×××ר××× ×¢× ××תר ×××. ××”××£ ×× ×©×× ××××× ×צ××××× ××§×× ××Ŗ ×××× ××§×××× ××פ××× ×¦××× ×× ××§ ××× ×¢×¦××.
שרשרת ××”×¤×§× ×××Ŗ ××¢×× ××××Ŗ××Ŗ. ××צר × ×שת×ש ×××צר × ×©×שת×ש ×××צר × ×©×שת×ש ×××צר × ××× ×××× ×¢×©×Ø××Ŗ ×××××Ŗ ר×××Ŗ. ×הפ××§ ש××ש×× ×צ××× ×ש×× ×¢ ××Ŗ ××× ×××Ŗ×× ×Ŗ×× ×©××ר×××× ×¢× ××צר ×©× ××¦× ××ש ×××× ×שרשרת ××Ŗ×Ŗ ×× ×××× ××× ×שת×× ×§×× ×××× × ××××Ŗ× ××צר, שרשרת ××××× ×¢××××Ŗ ××Ø×¢×Ŗ× × ×××§×× ××××× × ××××¢ ×××צר×× ×©×× ×× × ×× ×××ר×× ××××××× ××פ××× ××ער××Ŗ ××פע××.
××× ×× ××××ר ×× ×רה פר××× ×, ×××Ŗ×× ×Ŗ ש××××Ø× ×× ×§×©×ר ××”×פ×ר ××× ×××§×Ø× ×××× ××Ŗ ××§×× ××××× ×, ××Ŗ ×× ×”××××Ŗ ×××××× ××××Ŗ ××××ר××Ŗ. ×××”×Ŗ××××Ŗ ×§×××× ×ש ×”××× ×××××. ×× ×× ×××צע ××× × ××©× ××× ×× ××× ×ר×ש×× ××× ×××× ×××ר××.
× ×Ø×××Ŗ ×××× ××”×××× ××××× ×©×× × ×צ××Ŗ ××× ×קצת ×שפר ××Ŗ ×××××× ×©× ××¢×××. פר×××§× xz ××× ×¤×Ø×××§× ××§×× ×¤×Ŗ×× ××× ×× ×××Ŗ ×××× ×ר×× ×××¤×¦× × ×¢×©×Ŗ× ×¢× ××××× × ×©× ×××¤×Ŗ× ××××× ×. ×××Ŗ ×××××××Ŗ ×©× ×§×× ×¤×Ŗ×× ××× ×©××תר ×¢×× ××× ××××××Ŗ ×ר×××Ŗ ××תר ×××××. ××”×פ×ר ×©× xz ××ש×× ×××¢ ××Ŗ ×× ××¢×× ×§×©× ×ש××× ×××”×Ŗ×ר ××Ŗ ×פר×צ×.
1 420
×§×צ×× ×”××××× ××קהפרה ×¢× Deno Deploy
×× ×Ŗ×××Ŗ× ××××¤× ××××¢× ×× ×פ××”××× ×¢× node × deno ××××× ×××ר×× ×× ×× ×Ŗ×©××× ×ש×××¢ ש×× × ×¢××× ×¢×ש×× ×¢× ×Ø×¢× ×× ×§×רה Node ש××תר ×××§××× ×©×¢× ×¤×”× ××Ŗ× ×Ŗ×§××× ×§×רה ××¢×××× ×¢× Node ש××ר ×××× ××× ×”××£ ×××××××Ŗ ×§×× × TypeScript ××Ŗ××× ×× × Node ××× × Deno. ר×× ×××× ×× ×× × ××Ø× ××”××× ××× ××× ×§×¦×Ŗ ××¢×××Ŗ ×Ŗ×××××Ŗ ××××× ×× ××× ××¢× ××× ××. ×פ××”× ×××× ×× × ×Ø××¦× ×××ר ×¢× ××¢×××Ŗ ×Ŗ×××××Ŗ ×§×× × ××××Ŗ ×ש×ר××Ŗ Deno Deploy.
××× ×©×× ×××ר×× Deno Deploy ×× ×©×ר××Ŗ ××××”×× ××× ×× ×©× Deno ×××× ×פשר ×××¢×××Ŗ ×× ××ש×× ×¦× ×©×Ø×Ŗ ××× ×¤×©×× ×ר×צ×× ×××Ŗ× ×¢× ×שרת×× ×©×××. ×ש ××× ××”××××× ×תש××× ××× ×©×× ×©×¦×Ø×××× ×××× ×ש××××, ××× ××ש××§×× ×××”××× ×××× ×× ××ש ××¢×××.
×××× ×Ŗ× ×Ŗ××§×××Ŗ פר×××§× Deno ×פשר ×××Ŗ×× ×ש×רת ×פק×××:
$ deployctl deploy
××פר×××§× ×¢××× ×××××ר.
×××××× ×× ×פר×××§× ×××××”× ×¢× ×××××× ×פשר ××Ø× ×תפר×××× ××ער××Ŗ ×××ר ××Ŗ ××× × ××פ××× ××××××× ×©××× ××× ×× Push ×××צר ×××Ø×”× ×××©× ×©× ×פר×××§× ×¢× ×שרת.
×××Ŗ×ר ××××× ××× ××¢×××Ŗ ×Ŗ×××××Ŗ, ×× ×××× × ×ש Web Frameworks ש××× ××קהפרה ×× ×Ø×× ×× ××§×× ×©× ×¢××פ××Ŗ. פ×צ'ר ×§×× ××× ×ש×× ×©× ×§×צ×× ×”××××× ×רש קצת ××תר ×¢×××× ××× ×©××× ×¦×Ø××. ×××× × ×Ø×× ×××.
××Ŗ ×§×× ×פר×××§× ××Ŗ× ×××××× ××צ×× ××××××× ×©×× ××§×ש×ר:
https://github.com/ynonp/deno-deploy-files
××× ×צ×× ×Ø×§ ××Ŗ ×¢××§×Ø× ×××ר××.
××¦× ×¤××Ŗ×× ×¢× ××××× × ×©××
×××¦× ×¤××Ŗ×× ×¢× ××××× × ×©×× ××שת ×§×צ×× ×”××××× ×¢××××Ŗ ×צ××Ø× ×××× ××Ŗ ××קהפרה. ×× ××§××:
import express, {Request, Response, NextFunction} from 'express';
import process from 'node:process';
import root from './routes/root.ts';
import path from 'node:path';
import url from 'node:url';
import createError from 'http-errors';
const PORT = process.env.PORT || 3000;
const app = express();
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
app.set('view engine', 'ejs');
app.set('views', path.join(dirname, '/views'));
app.use('/', root);
app.use(express.static('./public'));
app.use((req: Request, res: Response, next: NextFunction) => {
next(createError(404, 'Not Found'));
})
app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
console.error(err);
res.status(500).send({ errors: [{ message: "Something went wrong" }] });
});
app.listen(PORT, () => {
console.log(\Server listening on port ${PORT}\);
});
××שר ×ש××Ø× ×ר×××× ×××Ŗ ×××:
app.use(express.static('./public'));
×× ×§××Ø× ×ש×××פ×× × Deno Deploy
×××Ø× ××¢××× × Deno Deploy ××Ŗ××× ××Ŗ ×¢××××Ŗ ××× ××§××ׄ ××”××× (×××××× ×©×× ×× ×§××ׄ CSS) ×× × ××¢×. ××××§× ×××× ×ר×× ××Ŗ ×ש×××× ××××:
TypeError: Cannot read properties of null (reading 'toUTCString')
at SendStream.setHeader (file:///node_modules/.deno/send@0.18.0/node_modules/send/index.js:874:31)
at SendStream.send (file:///node_modules/.deno/send@0.18.0/node_modules/send/index.js:620:8)
at onstat (file:///node_modules/.deno/send@0.18.0/node_modules/send/index.js:725:10)
at Deno.stat.then.denoErrorToNodeError.syscall (ext:deno_node/_fs/_fs_stat.ts:85:32)
at eventLoopTick (ext:core/01_core.js:153:7)
×¤× ××ר ××Ŗ×××Ŗ× ×פ××. ×× × ×Ø×× ×© stat ×©× ××× × ×× ×¢××× ×××××§ ××× stat ×©× node.js ×××× ×ש×× × ×©×ר ×ש×××ר ××§××ׄ.
×××§×× ×ר×× ×××Ŗ× ××××Ŗ× ×××Ŗ×× ××××××ר ×ש×× ×©×ש×× ××Ŗ ××§××ׄ ××× stat. ××× × ×Ø×× ×××:
app.use(async (req: Request, res: Response, next: NextFunction) => {
try {
const userInput = path.join('./public', req.path);
const safeInput = path.normalize(userInput).replace(/^(\.\.(\/|\\|$))+/, '');
const mime = contentType(path.extname(safeInput))
console.log(\File: ${safeInput}. content type = ${mime}\);
const content = await Deno.readFile(safeInput);
res.set('Content-Type', mime);
res.send(buffer.Buffer.from(content));
} catch (err) {
console.log(\file not found ${req.path}\);
next();
}
});
×××Ŗ ××Ŗ×צ×× ×פשר ×ר×××Ŗ ××× ×××× ×¢× Deno Deploy ×¢× × CSS ××§×ש×ר:
https://ynonp-deno-deploy-files-yfge7qm6f97y.deno.dev/1 420
×××¢×Ŗ×§×Ŗ ×§×צ×× ×× × ××¢×××£ ×××תר ×¢× × Text Decoding ×× ×צ××Ø× ××××Ŗ ×× × ××¢×Ŗ××§ ××Ŗ ×××××× ××× ×©×× ××§××ׄ ×××§×ר ××× ×§×©×Ø ×× ×× ×××צ××× ××§×”× ×× ×× ×× ×× ××§×××× ×©×××.
×××××¢ × ××”×£ ×¢× Streams ××× ×× ×©×פשר ×עש××Ŗ ×××Ŗ× × Node.JS ש××× ×××¢××£ ××× ××Ŗ××¢××:
https://nodejs.org/api/webstreams.html
×× ××××××××Ŗ ×פ××”× ××× × ×××§× ××¢×××××Ŗ × Node ×××Ø×”× 21.7 ×××Ø× ×©×©××Ø×Ŗ× ××Ŗ ××§×× ××§××ׄ ×ש×
a.mjs.1 420
קר××× ×××Ŗ××× ××§×צ×× ×¢× Streams × Node.JS
×¢×××× ×¢× ××××¢ ××× ××Ø× ××Ø× Streams ××× ×××§ ×××Ŗ×§× ×©× JavaScript ×× ×Ŗ×××Ŗ ×צ××Ø× ×××× ×× × Node ××× × Deno, ×××× ××ש××Ŗ ×××××Ŗ ×× ×Ŗ××× ×××£ ש××ר×× ×¢××××× ××× ××§××. ×××× × ××ר ×¢× ××§××.
קצת ×Ŗ×××ר××
×ר×× ×××”××”××Ŗ Streams ×××× ××©× × ××¢××× ×ש ××Ŗ × ReadableStream ש×××Ŗ× ×× ×× × ×§×ר××× ××××¢ ×××Ŗ × WritableStream ש×××Ŗ× ×××Ŗ××× ××××¢. × node.js ××××××
stream ××××¢ ××פ×× Streams ×©× Node × Streams ×©× Web API.
×××ר×× ×××××× ×©×פשר ×עש××Ŗ ×¢× Streams ××:
1. ×פשר ×××ר ×××Ŗ× ××× ××©× ×. ×× ×××ר×× Stream ×קר××× × Stream ×©× ××Ŗ××× ×× ××§×××× ××¢×Ŗ×§×.
2. ×פשר ××××”××£ ××Ø× ×”×¤×ר×צ×××Ŗ ×¢× Stream ×××× ××§×× Stream ××ש. ×××××× ×× ×××§××× Stream ××× ××Ø× ×©× ××××¢ ש××××¢ ××§××ׄ ××××”×פ×× ××Ø× ×”×¤×ר×צ×× ×©× ×¤××¢× ×× ×××××× ×××§×”× ××§×××× Stream ×©× ××ר××××Ŗ.
×××××××Ŗ? ×ש×××.
קר×××Ŗ ××××× ××§××ׄ ××××¤×”×Ŗ× × Chunk-××
× ×Ŗ××× ×¢× ×§×Ø×××Ŗ ×§××ׄ ××× ××Ø× ××¤× ××××§×× ××Ø× Stream ×קר×××. ×פ×× ×§×¦×× fs.createReadStream ×©× Node ××צרת Stream ×קר××× ×©× Node, ×××¢×רת stream.toWeb × ×פ×× ×××Ŗ× × Stream ×”×× ×ר××. ×קר××× ×××Ø× ×קר××× ××× ×¤×©×× ×××רצ×× ××”×× ×ר×× ××Ŗ ×××× × ××× ×××Ŗ××:
import fs from 'node:fs';
import stream from 'node:stream';
const sin = stream.Readable.toWeb(fs.createReadStream('text.md'));
for await (const chunk of sin) {
console.log(chunk);
}
××פ××:
Uint8Array(15143) [
35, 32, 215, 156, 215, 162, 215, 169, 215, 149, 215, 170,
32, 215, 144, 215, 170, 32, 215, 148, 215, 144, 215, 153,
215, 158, 215, 153, 215, 153, 215, 156, 32, 215, 160, 215,
164, 215, 156, 215, 144, 32, 215, 169, 215, 149, 215, 145,
10, 215, 144, 215, 153, 215, 158, 215, 153, 215, 153, 215,
156, 32, 215, 148, 215, 149, 215, 144, 32, 215, 155, 215,
160, 215, 168, 215, 144, 215, 148, 32, 215, 144, 215, 151,
215, 147, 32, 215, 148, 215, 158, 215, 167, 215, 149, 215,
158, 215, 149, 215,
... 15043 more items
]
קר×××Ŗ ××§×”× ××§××ׄ ×××צע××Ŗ ××Ø× ×”×¤×ר×צ××
×קר××× ××§××ׄ ××Ø× Stream ×¢××× ××××¤×©×Ø× ×קר×× ××Ŗ ××§××ׄ ×××××§××. ××§×צ×× ××× ×ר××× ×פשר ×עצ×ר ×××, ××× ×× ×××××× ×©××§××ׄ ×××××× ××§×”× ×××× × ×Ø×¦× ×× ××¤×¢× × ×××Ŗ× ××ר×××Ŗ ××ר××××Ŗ ×¢× ×××”×. ×ש××× ×× ×××××§ ××Ŗ×§× ×©× Web Streams ×××”××£ ××××§× ××©× TextDecoder. ×ש×××ש ×× ×××× ×¤×©××, ×× ×× × ××צר×× ××¤×¢× ×, ××× ×× ×פשר ×××¢××ר ×× ××Ŗ ××§×××× (×ר×רת ××××× ××× utf8), ××× ×פע×××× ××Ŗ ×פ×× ×§×¦×× decode ×¢× ××××§ ×©× ××××× ×ש××× ××¤×¢× × ×××Ŗ× ×××§×”×. ××× ×Ŗ×××× ××× ××××¢ ×××¤× ××× ×©×¦×Ø×× × Multi Byte Strings ×פ××× ××× Chunk-××.
×ש××× ×©××Ŗ××× ××Ŗ ××§××××Ŗ ×Ŗ×פ××” ××§×”××× ×××§×× ××××× ×¦×Ø×× ×Ø×§ ×××¢××ר ××Ŗ ×××××× ×©×× × ××Ø× ××× Decoder. ××××× × × API ×©× Streams ×הפק ××Ø× ×§×× ×עש××Ŗ ××Ŗ ×× ×××××Ŗ ××××§× ××©× TextDecoderStream:
import fs from 'node:fs';
import stream from 'node:stream';
const sin = stream
.Readable
.toWeb(fs.createReadStream('/etc/shells'))
.pipeThrough(new TextDecoderStream());
for await (const chunk of sin) {
console.log(chunk);
}
××Ŗ××× ××§××ׄ ×¢× WritableStream
×××Ŗ××× ××§××ׄ ×ש ××× × ×§××××Ŗ שצר×× ××××ר ××× ××¢×קר×× ××× ×פתע××Ŗ ××××××Ŗ:
1. פ××Ŗ××× WritableStream ××פע×××× ××Ŗ ×פ×× ×§×¦×× getWriter ש××.
2. ×פע×××× ××Ŗ פ×× ×§×¦×××Ŗ write ×©× × Writer שק×××× × ×ש××× ×××Ŗ××.
3. ××”××£ ×§×ר××× × Close שה××ר ××Ŗ × Writer ×××Ŗ × Stream.
××§×× ××× ×××Ŗ× ××××× ××§××ׄ:
import fs from 'node:fs';
import stream from 'node:stream';
const sout = stream
.Writable
.toWeb(fs.createWriteStream('demo.bin'));
const writer = sout.getWriter();
const data = new Uint8Array(10).fill(0).map((_, i) => i);
await writer.write(data);
writer.close();
××¢×Ŗ×§× ×¢× Pipe
××ר××§ ×××ר×× ××××× ×¢× Streams ××× ××¢×Ŗ×§×Ŗ ×§×צ××, ×××ש××§ ××× ××× - ×××§×× ××ר×ׄ ××××× ×©×Ŗ×§×Ø× ×צ××Ø× ×פ×רשת ××××§×× ××Ŗ××Ŗ×× ×××Ŗ× ×××Ø× ××©× × ×פשר פש×× ×××ר ××Ø× ×קר××× ×××Ø× ×××Ŗ××× ×××× ××”×Ŗ×ר. ×× × ×Ø×× ×××:
import fs from 'node:fs';
import stream from 'node:stream';
const sin = stream
.Readable
.toWeb(fs.createReadStream('/etc/shells'));
const sout = stream
.Writable
.toWeb(fs.createWriteStream('shells.txt'));
sin.pipeTo(sout);1 420
×××× ××Ŗ ×××××Ŗ, ××צ××¢×× ×ר××¢××
×××× ××צר ×××××× ×©×× × ×××Ŗ× ×©×××Ŗ ×××××¢ ×××”××Ŗ פש××× - ×××× ×©××ר ×ר×××”×××Ŗ ××××× ×ש××× ×ר×××”×× ×ש ×××× ××§×××× ××××× ×××××Ø× ××× ××× ×××× ×ש××× ××××× ×× ×¢× ×××××× ××××. ×ש××× ×× ××צ×ר ×פ××××××Ŗ ×× ×¤×¢× ×©×××”×פ×× ×Ŗ×Ø××× ××ש ×××× ××××§ ×××”××” ×× ×Ŗ×× ×× ×× ×ש ××ר ×ר×××”×× ×¢× ×××××× ××××, ×××צר רק ×× ××××ר ×××××ר ××ש.
×××Ŗ ×××Ŗ× ×ש××××Ŗ× ×©×××§××Ŗ ××××× ×××צרת ×ר×××”×× ×× ×××××Ø× ××Ŗ ××ר×××”×× ××§××××Ŗ:
g
.V()
.has(VertexLabels.Card, Properties.IndexedLabel, VertexLabels.Card)
.where(__.and(
__.out(EdgeLabels.Front).hasId(front.entityId),
__.out(EdgeLabels.Back).hasId(back.entityId)))
.fold()
.coalesce(
__.unfold(),
__.addV(VertexLabels.Card)
.as("card")
.addTimestampsProperties()
.property(Properties.IndexedLabel, VertexLabels.Card)
.asCard()
.addE(EdgeLabels.Front).to(__.V(front.entityId))
.select("card")
.addE(EdgeLabels.Back).to(__.V(back.entityId))
.select("card"))
.id()
.next()
×תר××× ××¢×ר××Ŗ - ×§× ××Ŗ ×× ××ר×××”××, ×פש ××× ×©××Ŗ××× ×××××× ×©×× × ×Ø××¦× ××××”××£, ×× ×§××× × ×©×Ŗ×ש ×× ××רת ×××”×£ ×ר×××” ××ש ×××ר ×××Ŗ×. ×§× ×קר×× ××Ŗ ×× ××§× ××××× ××× ×× ×©××ר.
×××× ×©××× ×××× ×××××× ××ר×××”, ××ר ×××× ×ש ××תר ××× ×ר×××”×× ××רף ×××פ×ש ×ר×××” ××¤× ×××××ר×× ×××צ××× ××× × ××Ŗ××× ××§××Ŗ ××תר ××× ×××. ××× ×××? ×ש×× × ×Ŗ×¤×”×Ŗ× ××Ŗ ×ש××××Ŗ× ××Ŗ××× ××ר ××§× ×× 3-4 ×©× ×××Ŗ ×××× ×ר×××”.
××××Ŗ ××××× ×××× ×××¢×Ŗ× ×××תר×× ×©× ×ר×××× - ×§× ×ר×××Ŗ ××Ŗ ×××¢×××Ŗ ××§× ××Ŗ×§× ×××Ŗ×. ××ר×××× ×× ×× × ×Ŗ××× ×Ø×צ×× ×××Ŗ××× ×©××××Ŗ× ×צ×××Ŗ ש××פ××¢ ×××× ××§×”. ××××× ×©×× ×ר×××” ×× ×××ר ש×× ××××¢ ××× ××× ××××ר ×××××× ××צ××Ŗ×× ×©× ×××××× ×× ×××××× ××Ŗ ×××§×”× ×©× ×××××, ש×× ××ר ××××¢ ש×פשר ×ש××ר ×××× ××§×”. ××× ××Ŗ××§×× ××× ××”× ××× ××©× ××Ŗ ××Ŗ × ×§×××Ŗ ××× ××”× ×ש××××Ŗ×. ×××§×× ×××Ŗ××× ×¢× ×× ××ר×××”×× ×××פש ××Ŗ ×× ×©××Ŗ××ר ×××××× ×©×ש ××, ×× × ××Ŗ××× ×¢× ×××Ŗ ×××××× ××××× ××¤× ×קשת××Ŗ ××× ××××× ×× ××× ××××רת ××ר×××” ש××Ŗ××× ××××× ××©× ××. ×××Ŗ ×ש××××Ŗ× ×××Ŗ××§× ×Ŗ:
val id = g
.V(front.entityId)
.coalesce(
__.in(EdgeLabels.Front).where(__.out(EdgeLabels.Back).hasId(back.entityId)),
__.addV(VertexLabels.Card)
.as("card")
.addTimestampsProperties()
.property(Properties.IndexedLabel, VertexLabels.Card)
.asCard()
.addE(EdgeLabels.Front).to(__.V(front.entityId))
.select("card")
.addE(EdgeLabels.Back).to(__.V(back.entityId))
.select("card")
).id()
.next()
××××Ŗ ××× ××”××× ×©×× × ××¢×××£ ××Ŗ ×ר×××× ×¢× ×¤× × Cypher × Datalog. ×ר×××× × ××Ŗ× ××× ×ר×× ×©×××× ×××× ×××צעת ×ש××××Ŗ×, ×××פשר ×××× ××§×××Ŗ ×××Ŗ××× ××Ŗ ×××¤× ×”×Ø××§×Ŗ ××רף ××××× ×× ×Ŗ×× ×× ×הפצ××¤× ×©× ××ער××Ŗ.1 420
×ש××Ŗ×§× ×¢××× ×רעת×
×××רה×××Ŗ ××©× ××Ŗ ×©× ×הפר×× ××”×× ×ר×××Ŗ ×©× ××× × ××× ××××× ×ש×
read_lines ש×פשר ×××Ŗ×× ×§×× ×××:
import { readLines } from "https://deno.land/std@0.221.0/io/read_lines.ts";
import * as path from "https://deno.land/std@0.221.0/path/mod.ts";
const filename = path.join(Deno.cwd(), "std/io/README.md");
let fileReader = await Deno.open(filename);
for await (let line of readLines(fileReader)) {
console.log(line);
}
×× ×©×ש×× ×× ×××××× ××”××£ שק×ר××Ŗ ×§××ׄ ש××Ø× ××ר ש××Ø× ×××פשרת ×××¤× ××× ×©××Ø× ×× ×¤×Ø×.
×××××× ××××¢ ×××× ×¢× ×××רת Deprecation. ×ש××× ×Ŗ×××××Ŗ ××Ŗ×§× ×©× Web Streams API ×××ר×× ×××× × ×××××× ×××תר ×¢××× ××××××ׄ ××¢××× ×¢× Web Streams, ש×ר××¢ ×× ×××× ××Ŗ ×פ×× ×§×¦××× ×××××Ŗ ××××Ŗ.
××¢×ש×× ×ש××× - ××× ×שתף פע××× ×¢× ××§×××× ××××Ŗ×× ××× ×× ×× ×× ×©××ר ש×ר××Ŗ, ×××ש×ר ×¢× ××× ×× ×× × Deprecated ×× ×××× ××שת×ש ×××××× readline ×©× node, ש×× × ××¢× ××§×××Ŗ ××Ŗ××× ××Ŗ ××× ×?
×× × ×××× ×©××× ×× ×Ŗ×©×××. ×× ××× ×©×× ××× ×××ש×ר ×¢× readline ×©× node ×××××¤× ×××× ××שת×ש ×הפר×× ××”×× ×ר×××Ŗ ×©× node ×× ××¢×××× ×¢× ××× ×, ×××× ×©×הפר×× ××”×× ×ר×××Ŗ ×©× ××× × ×¢×××× ×× × ×Ø×××Ŗ ×הפ××§ ×צ×××.
× .×. ××× ×× × ×Ø×× ×שק×ר××× ×§××ׄ ש××Ø× ×××Ø× ×©××Ø× ×¢× × Web Streams API:
const file = await Deno.open("a.js", { read: true });
const readableStream = file.readable.pipeThrough(new TextDecoderStream()).pipeThrough(new TransformStream({
transform: (chunk, controller) => {
const lines = chunk.split("\n");
for (const line of lines) {
if (line) {
controller.enqueue(line);
}
}
},
}));
for await (const line of readableStream) {
console.log(\> ${line}\);
}
××××Ŗ ××××Ø×”× ×¢× readline ×©× node:
import readline from 'node:readline';
import fs from 'node:fs';
const myName = "a.js";
const rl = readline.createInterface({
input: fs.createReadStream(myName),
})
let index = 0;
rl.on('line', (line) => {
index += 1;
console.log(\${String(index).padStart(2, '0')} ${line}\);
});
×× ××¢×Ŗ××? ×××× ×××Ø×”× ××××Ŗ× ×××ר××? ××××?1 420
× × ×× ××Ŗ××× ×¤×©×× ×¢× ×××××Ŗ for, ××× ××××¢× ×©×רת ×××ׄ - ×× × ×××§× ×× ×©× ×§××ׄ ×××¢××ר ×××Ŗ× ×פק××× ×××× ××Ŗ ××©×¤× ×©× ×§×Ø××Ŗ parse ש××¤×¢× ××Ŗ ××Ŗ ×××ר×××Ŗ ××©× × ××©×Ŗ× ×× (×××§×Ø× ×©×× n × name, ×¢× ××§×£ ××× ×××). ×××Ø× ×× ××Ŗ××××× ×ש××§ ×¢× ×××××¢, ××פ××× ××Ŗ n ××הפר, ××¢××× ×××Ŗ× ×-1 ××× ×××ר×× ××Ŗ ×× ××¢×××××Ŗ ×××ר×××Ŗ ×××Ŗ ×××Ŗ× ×× × ×©××ר ×××©×Ŗ× ×
newname. ש××Ø× ××ר×× × ×©× ×××××× ××× × mv ש××©× × ××Ŗ ×©× ××§××ׄ.
ש×פ×× ×”×§×Ø××¤× ×עצ××
×¢× ××¤× ××××Ŗ× ×××× ×©×××¢×Ŗ× × Shell ש××××¢ ×עש××Ŗ ××× ××× ×× ××××¢× ××ש××× ×ש××ש××Ŗ ×©× nushell קצת ×××× ×××Ŗ×. ××××Ø× ×©×× × ××× ×××Ŗ×× ×”×§×Ø××¤× ×©××§×× ×ש×רת ×פק××× ×הפר ש×××Ŗ ×©× ×§×צ×× ×××¢×Ŗ××§ ××Ŗ עצ×× ××§×צ×× ×©×©×××Ŗ××× ×¢××Ø× ×פר××ר××. ×××¢××? × nushell ××× ××§×××× ×××©×Ŗ× × $0 ×©× Shell-×× ×§×××”××× ×××× ×× × ×¦×Ø×× ×××”×Ŗ×× ×¢× ×× ×©×× × ××××¢ ×× ×©× ××§××ׄ. ××× ×× ×©×©× ××§××ׄ ××× clone.nu ××§×× ××× ×¢×××:
def main [...destinations] {
let sourceFile = $env.FILE_PWD + "/clone.nu"
for output in $destinations {
cp $sourceFile $output
}
}
×”× ××× nushell × ×Ø×× ××× ×¤×Ø×××§× ××××× - ××× ×¢××× ××ר ××¢×××× ×¢× ××××¢ ×××§×× ×¢× ××§×”× ××××× ×××”×× ××¢××××Ŗ ××Ŗ××× ×××Ŗ ××ר××××Ŗ.1 420
ש×××©× ×”×§×Ø×פ××× ×Ø×ש×× ×× × nushell ××× ××××× ××× ×× ×¢×××
× ×-×©× ××× ×”×× ××ש ×©× Shell, ××× ××Ŗ×× × rust ××××× ××Ŗ ××××©× ×©× Powershell - ×פ×× ×× ××ר ××× data - ×× ×××× ××§×”. ×××× × ××Ŗ×× ×©×××©× ×”×§×Ø×פ××× ×Ø×ש×× ×× × nushell ××× ××××× ××× ×× ×¢××× ×××ש×× ×× ××× ××Ŗ×××.
×צ××Ŗ ××§×”× ×¢× ×¢×Ø× ××××§×פ×××
××Ŗ nushell ×פשר ×××Ŗ×§×× ××¤× ×××ר×××Ŗ ××תר ש×××:
https://www.nushell.sh/
××× ×§× ×××צע××Ŗ ×פע××Ŗ:
brew install nushell
×××Ø× ×××Ŗ×§× × ×פע×××× nu ××× ××××× ×” × Shell ××הפ××§ ××פע×× ls ××× ××××× ×©×× ×× × ××ר ×× ××§× ××”. ×× ×פ××:
ls 27/03/24 18:00:15
āāāāā¬āāāāāāāāāāāā¬āāāāāāā¬āāāāāāāā¬āāāāāāāāāāāāāāāāā®
ā # ā name ā type ā size ā modified ā
āāāāā¼āāāāāāāāāāāā¼āāāāāāā¼āāāāāāāā¼āāāāāāāāāāāāāāāāā¤
ā 0 ā 02-one ā dir ā 64 B ā 2 hours ago ā
ā 1 ā 03-two ā dir ā 64 B ā 2 hours ago ā
ā 2 ā 04-three ā dir ā 64 B ā 2 hours ago ā
ā 3 ā carlos.py ā file ā 643 B ā 35 minutes ago ā
ā 4 ā clone.nu ā file ā 153 B ā 2 hours ago ā
ā 5 ā inc.nu ā file ā 229 B ā an hour ago ā
ā°āāāā“āāāāāāāāāāāā“āāāāāāā“āāāāāāāā“āāāāāāāāāāāāāāāāāÆ
×”××× ××§× ×× ×× ××Ŗ×¤×§× ×¤×××Ŗ ×× ××תר ××× ×©×Ŗ×¤×§× × Shell-×× ××§×××”×××, ××× ×¢×ש×× ×××× ×©××× ××× data ×ר×× ××תר ×§× ××¢××× ×¢× ×××××¢, ×××××× ×ש××× ×××פ××” רק ××Ŗ ×©× ××§××ׄ ×××××× × ××Ŗ××:
ls | select type size
āāāāā¬āāāāāāā¬āāāāāāāā®
ā # ā type ā size ā
āāāāā¼āāāāāāā¼āāāāāāāā¤
ā 0 ā dir ā 64 B ā
ā 1 ā dir ā 64 B ā
ā 2 ā dir ā 64 B ā
ā 3 ā file ā 643 B ā
ā 4 ā file ā 153 B ā
ā 5 ā file ā 229 B ā
ā°āāāā“āāāāāāā“āāāāāāāāÆ
הקר××¤× × nushell ××”×Ŗ××× ××”××××Ŗ nu. ×× ×צ×××Ŗ× ×××Ŗ×§×× ××Ŗ ××Ŗ××”×£ × vim ש××× ××× ××Ŗ××”×£ × VS Code ×¢×× ×× ×צ×××. ××× ×©×××××Ŗ× ×©×××©× ×”×§×Ø×פ××× ×ש××× ××Ŗ×××, ×ר×ש×× ××§×× ×©× ×©× ×¢×Ø× ××××§×פ××× ××צ×× ××Ŗ ××Ŗ×××:
def main [value] {
let url = $"https://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=($value)&rvslots=*&rvprop=content&formatversion=2&format=json"
http get $url | get query.pages.0.revisions.0.slots.main.content
}
××× ×× ×¢×××? ×× ×”××¤×Ø×Ŗ× ××ר ש×× ××ר ×× Data, ×××× ×× JSON ש××××¢ ××רשת ××× ××××¢ ש×פשר ××¢××× ×××Ŗ×. ×פק××× http get פ×× × ×רשת ××ש×× ××××¢ ××פק××× get ×צ××× ×Ø×§ ×××§ ××××××. ×××§×Ø× ×©× ×××§×פ××× × JSON ×××× ×××××§××× ××§×× × ×× ××××ר×××Ŗ:
query.pages.0.revisions.0.slots.main.content
××× ×× ×Ŗ×× ××Ŗ×× ××××××§× ×©×××× ××Ŗ ×ער×. ×× ×Ŗ×Ŗ×§×× × nushell ×תש××Ø× ××Ŗ ×הקר××¤× ××§××ׄ ××©× wiki.nu ×Ŗ×××× ××פע×× ×××Ŗ× ××××¤× ××× ××× ××צ×× ×¢×Ø× ××Ŗ×× ×××§×פ×××:
nu wiki.nu Pet_door
ש×× ×× ×©× ×©× ×× ××§×צ×× ×©××Ŗ××××× ××הפר
××Ŗ×ר ×©× × ×©×Ø×¦××Ŗ× ×× ×”××Ŗ ×ש××× ××××× ×¢× nushell ××× ××©× ××Ŗ ××Ŗ ×ש×××Ŗ ×©× ×× ××§×צ×× ×©×©×× ××Ŗ××× ××הפר ×××צע××Ŗ ××¢×××Ŗ ××הפר ×-1, ××××ר ×× ××× ×× ××Ŗ××§×× ××§×צ××:
ls [0-9]*
27/03/24 18:07:58
āāāāā¬āāāāāāāāāāā¬āāāāāāā¬āāāāāāā¬āāāāāāāāāāāāāā®
ā # ā name ā type ā size ā modified ā
āāāāā¼āāāāāāāāāāā¼āāāāāāā¼āāāāāāā¼āāāāāāāāāāāāāā¤
ā 0 ā 02-one ā dir ā 64 B ā 2 hours ago ā
ā 1 ā 03-two ā dir ā 64 B ā 2 hours ago ā
ā 2 ā 04-three ā dir ā 64 B ā 2 hours ago ā
ā°āāāā“āāāāāāāāāāā“āāāāāāā“āāāāāāā“āāāāāāāāāāāāāāÆ
×× ×××Ø× ×פע××Ŗ ×הקר××¤× ×× × ××§××:
ls [0-9]*
āāāāā¬āāāāāāāāāāā¬āāāāāāā¬āāāāāāā¬āāāāāāāāāāāāāā®
ā # ā name ā type ā size ā modified ā
āāāāā¼āāāāāāāāāāā¼āāāāāāā¼āāāāāāā¼āāāāāāāāāāāāāā¤
ā 0 ā 03-one ā dir ā 64 B ā 2 hours ago ā
ā 1 ā 04-two ā dir ā 64 B ā 2 hours ago ā
ā 2 ā 05-three ā dir ā 64 B ā 2 hours ago ā
ā°āāāā“āāāāāāāāāāā“āāāāāāā“āāāāāāā“āāāāāāāāāāāāāāÆ
××§×× ×הקר×פ×:
for f in (ls [0-9]* | get name) {
let newname = $f | parse '{n}-{name}' | into int n | update n {|row| $row.n + 1 } | each {|row| [($row.n | fill -a right -c '0' -w 2), "-", $row.name] | str join } | get 0
mv $f $newname
}1 420
×ר×××× - ×”×××× × ××”××
××××ש×× ×××ר×× ×× ×× ××Ŗ× ××× ×××××Ø× ×©×שת×ש ×××”××” × ×Ŗ×× ×× ×רפ×. ×××× × ×× ××Ŗ× ××××קר ×¢× ××”××”× × ×Ŗ×× ×× ×רפ××× ×××××Ŗ× ×¢× ×××× ×”×××× ×©××× ××× ×ש××Ø× ××Ŗ××Ŗ×× × ×× ×¢×¤×Ŗ× ×¢×××× ××× ×Ø×× ×©×פר×××§× ××× ××ר ××××ר ×פ××”××רה. ×× × ××”×× ××× ××Ŗ ×× ×§××××Ŗ ××ר×××××Ŗ ××× ××”××.
×ר××××, × ××× ×× ××××××§
×××§×Ŗ× ×©×××©× ××”××”× × ×Ŗ×× ×× ×רפ××× - neo4j, datomic × TinkerPop ×¢× ×©×××Ø×Ŗ× ×××× ×§×Ø, ××× ×× ××× ×ש×××Ŗ ××××××× ×¦××. ×שפת ×ש××××Ŗ××Ŗ ×©× ××××××§ ×× ××Ŗ××רת×. × ××× ××× ××”××Ø× ××× ×××× × ×©×ר ××× ×§×Ø×¤×פ ש××× ×××× Spec ×שפת ש××××Ŗ××Ŗ ×©× ×§×Ø××Ŗ ×ר××××. ××Ŗ ×ר×××× ×××§× ××× ××××× ××× ××”××¤× ×©× ××ר ××× ××¢×××. ××Ŗ××Ŗ× ×¢××× ×××:
https://www.tocode.co.il/blog/2023-10-gremlin-first-steps
××××:
https://www.tocode.co.il/blog/2023-10-dsl-gremlin-queries
××× ×××¢×× × Spec ×× ×©×¦×Ø×× ××”××£ ××ר×ׄ ××Ŗ ×× ××× ××”××” × ×Ŗ×× ×× ××”×××. ×ש ×××× ××”××”× × ×Ŗ×× ×× ×©×ר×צ×× ×ר×××× ××× ×××× ×©×× ×× ××× ×××, ××× ××××¤× ×× ×× ×ר×צ×× ×ר×××× ×× ×Ŗ××× ×××. ×× ×××ר ש×××× ×××××Ŗ שש××××Ŗ××Ŗ ××¢××× ×× ××¢××× ×צ××Ø× ×××”××Ŗ ××××Ø× ×¢× ××”××” × ×Ŗ×× ×× ××× ××× ×× ××¢××× ×¢× ××”××” × ×Ŗ×× ×× ××ר.
×¢××ר ×××× ×©×× ×××Ø×Ŗ× ××”××£ × JanusGraph ×©× ×Ø×× ××ש ××× ×××××§××Ŗ ××§×××××Ŗ ××××× ××¢××× ×× In Memory ×××¦× ××××§××Ŗ, ×× ××× ×ער××Ŗ ×§×צ×× ××× ××× ××”××” × ×Ŗ×× ×× ××××ר ××× ×§×”× ×ר×.
××¢×× 1 - ×Ŗ××¢××
××Ŗ××¢×× ××תר ×©× ×פ×צ'× ×××× ×פ×ר×, ××× ×¢×××× ××× ×××× ×Ŗ××¢×× ×רשת ×××ׄ ××תר ×רש××, ×××× ×× ×פ×ר×××× ××××©× ×× ×××× ××× AI ×× ××××¢×× ××¢××ר ×××Ŗ×××Ŗ ש××××Ŗ××Ŗ. ××Ŗ×צ×× ××× ×¢×§×××Ŗ ××××× ××תר ×§×©× ×ער××× ××§×× ××× ×©××××Ŗ××Ŗ ש××Ŗ××Ŗ× ×ש××ש ×× ×××¢×Ŗ× ×ר×××× ×ש××××Ŗ××Ŗ ××תר רצ×× ×××Ŗ ש××Ŗ××Ŗ× ×ש××ר ××× ×Ŗ× ××× ×× ×¢×××.
×× ×ר××Ŗ ×תפע×× ×××× ×§×©× ××צ×× ××××¢ ×¢× JanusGraph ×××ׄ ××Ŗ××¢×× ×רש××, ××ר×× ×¤×¢××× ××Ŗ× × ×Ŗ×§×¢ ×¢× ××¢×××Ŗ ×צר×× ××פ×ר × Issues ××××××× ×××××× ×§××צ××Ŗ ×ש××× ××צ×× ××××× ××.
××¢×× 2 - ×××ר××
×××ר ××©× × ×©×× ×”××¤×Ø× ×× ×¢× JanusGraph ×× ×©××× ×××× ×××ר××. ×ש ש×××¢× ×©×× ×××× ×©××× ××Ŗ×× × Java, ××××§××××Ŗ ××ר×× ×××ר×× ×©×פשר ×צ××¦× ××Ŗ צר×××Ŗ ××××ר××. ×× × ×× ××××¢. ××Ŗ×צ×× ×פ××¢× ×××Ŗ× ×¦×Ø×××Ŗ ×××ר×× ×××× ××××× ×¢××ר Cache-×× ×× ×ש××”××” ×× ×Ŗ×× ×× ×× ××× ××××, ××× ××ש×××× ×××”××”× × ×Ŗ×× ×× ××××××× (8 ×'××× ×××ר×× ×ש××× ××”××” × ×Ŗ×× ×× ××ש××§××).
××¢×× 3 - ××× ××§×”×× ×× ×§×Ø×××××
×Ŗ××× × ×©××ש××Ŗ ×©× JanusGraph ש×××××Ŗ× ×Ŗ×× ××× ×Ŗ× ××¢× (××× ×× ××××£ ×× ××”×××× ××××) ××× ×©×פשר ××שת ×× ×Ŗ×× ×× ×Ø×§ ××Ø× ××× ××§×”. ××× ×× ×× ×××××§, ×Ŗ××× ×פשר ×××Ŗ×× ×©××××Ŗ×Ŗ ×ר×××× ×©×× ×Ŗ×¢××ר ××Ø× ××× ××§×”, ×× ×¤×©×× ×©×ש××××Ŗ× ×× ×Ŗ×”×Ŗ××× ××£ פע×. × ××× ×× ×××”××”× × ×Ŗ×× ×× ××××××× ××××Ŗ× ×¦×Ø×× ×××××ר ××× ××§×”×× ××× ×× ×Ø×§ ×ש××× ×××× ××××¢ ×× ×ש××××Ŗ××Ŗ ××ר××××Ŗ. ××× ×©××תר ×ר××× ×”×¤×¦×פ××Ŗ × JanusGraph ×× ×©×ש ××ש ××§×” ×××××Ø× ×ש×× ×× ×©× ××× ××§×” ××× ×××Ŗ ×× × ××× × ×©×××Ŗ××× ××××× ××§××§× ××Ŗ ××× ××× ××Ŗ× × ×Ŗ×§×¢ ×¢× ×××× ××× ××§×” ×××¦× ××¦× ×פ××.
×”××××
×ש××Ø× ××Ŗ××Ŗ×× × ××”××”× × ×Ŗ×× ×× ×רפ××× ×¢×××× × ×Ø××× ×× ××× ×Ø×¢××× ××× ××× ×פ×××Ŗ ×××××× ×©×× ×××××ש ××× ×××××. × ×¤××× ×©× ××××× (×× ×Ŗ××× ×ר××××) ××× ×××× ×קר ×× ×שש××Ø×Ŗ× ×¢××× ××¢× ××××¢, ××ר×× ×פשר××××Ŗ ×××× ×©××פ××¢××Ŗ ××תר ×©× ×ר×××× ×× ×¢××× ×× ××× ××”×ר×××Ŗ ×××.
×××”×× ××§××× ×©× JanusGraph ×רש ×ר×× ××תר ××Ŗ×¢×”×§××Ŗ ××××ר××Ŗ ××ש×××× ×פ××”××רה ××¢×§×××Ŗ ×××××× ×××Ŗ×××Ŗ ×ש××××Ŗ××Ŗ ×××Ŗ× ×× ××××××Ŗ. ×ש ×× ×¤×××Ŗ ×××× ×רפ××× ××ש×××× ××¢×××× ×¢× ××”××”× × ×Ŗ×× ×× ×××××××.
×× × ×× ×Ø×× ×× ×××ר ×××”××” × ×Ŗ×× ×× ××Ø×¤× ×פר×××§× ××× ×©××, ×× ××¢×Ŗ××? ××¦× ××× ××¢××× ×¢× ××”××”× × ×Ŗ×× ×× ×רפ×××? ××× ××× ×××××××Ŗ ש×××? ×פשר ×שתף ×××××Ø× ×× ××Ŗ×××××Ŗ ×××.
Available now! Telegram Research 2025 ā the year's key insights 
