Web_programming
1.14K subscribers
354 photos
14 videos
125 files
1.22K links
Sharif web programming
If you have any questions, please feel free to ask(@yumcoder)
Download Telegram
وقتی پروژه‌ایی داریم که مثلا در خوش‌بینانه ترین حالت ۵۰هزار کاربر دارد. کل پیچیدگی سمت سرور data intensive بودن است یعنی تعدادی entity یا رابطه داریم که باید در پایگاه داده رابطه‌ایی مانند pg و یا nosql مانند مانگو درج شود و قبل و یا بعد از درج باید یک سری قوانین و کارهایی انجام دهیم

در این شرایط چرا باید انتخاب ما تشکیل یک تیم backend چند نفره و پیاده‌سازی عملیات crud برای همه entityها باشد. سوال برای سال ۲۰۲۳ مطرح شده است.

فرض کنید سطح امنیت به صورت مبتنی بر role درختی و حتی دز سطح فیلد مورد نیاز است یعنی یک تعدادی از کاربران باید مثلا ۴ فیلد در یک جدول ببینید و یک تعدادی باید مثلا ۶ فیلد را ببیند.

چرا باید این سرویس را پیاده کنم به جایی این که از چارچوب‌های آماده متن باز و یا سرویسهای آماده استفاده کنم. مثلا

https://github.com/shedaltd/ParseAlternatives

در چند سال اخیر یکی از انتخاب‌های من parse server بوده است. و یا در حالتی که میشد از aws اسفاده کرد سرویسهای و sdkهای aws بود.

چرا این موضوع مهم است؟ هزینه پیاده سازی سمت سرور را به صفر میل میدهد. به دلیل وجود sdk برای زبان‌ها مختلف هزینه پیاده سازی سمت فرانت را نیز کاهش می‌دهد. مثلا با چند کلیک در parse server شما یک entity ایجاد میکنید. به کمک sdk از همان لحظه از فرانت میتوانید داده ذخیره و بازیابی کنید. مکانیزمهای کش کردن پیچیده از طریقه sdk در اختیار front است. بلافاصله میتوانید امنیت را در سطوح مختلف با کلیک تنظیم کنید به جای برنامه نویسی (زمان و هزینه) همچنین بلافاصله وب سرویس در قالب rest برای هر entity در اختیار شماست.


دلیل فنی، زمانی، هزینه، نگهداری برای پیاده سازی مثلا با go یا جانگو در سال ۲۰۲۳ چیست؟ چه نیازمندی و دلیلی شما را سوق می‌دهد به سمت پیاده سازی from scratch

گفتگو کنیم
import React, { createContext, useContext, useEffect, useState } from 'react';
import { parse } from 'bibtex-parse';

export type BibTeXEntry = {
index: number;
name?: string;
key?: string;
type?: string;
title?: string;
// ….
};

export type BibTeXCollection = Array<BibTeXEntry>;

type BibTeXContextType = {
bibTeXData: BibTeXCollection;
citedKeys: { [key: string]: string[] };
updateCitedKeys: (key: string, cites: string[]) => void;
};

const BibContext = createContext<BibTeXContextType | undefined>(undefined);

interface BibProviderProps {
children: React.ReactNode;
}

export const BibProvider: React.FC<BibProviderProps> = ({ children }) => {
const [bibTeXData, setBibTeXData] = useState<BibTeXCollection>([]);
const [citedKeys, setCitedKeys] = useState<{ [key: string]: string[] }>({});

// … code….
const updateCitedKeys = (key: string, cites: string[]) => {
const newCitedKeys = {
...citedKeys,
[key]: Array.from(new Set([...(citedKeys[key] || []), ...cites])),
};

setCitedKeys(newCitedKeys);
}
const contextValue: BibTeXContextType = { bibTeXData, citedKeys, updateCitedKeys };

return <BibContext.Provider value={contextValue}>{children}</BibContext.Provider>;
};

export const useBibContext = () => {
const context = useContext(BibContext);
if (!context) {
throw new Error('useBibContext must be used within a BibProvider');
}
return context;
};

این کد در تابع updateCitedKeys یکی از رایج‌ترین مشکل‌های react را دارد. مشکل چیست؟ چرا ؟ چطور حل میشود

توضیحات یا comment را نگاه کنید
👍1👎1
https://stackoverflow.com/questions/29581005/how-to-run-a-pool-of-docker-containers-on-a-single-host-preserving-their-ip-addr

اگر کسی ایده‌ایی برای docker pool داره ممنون میشوم به اشتراک بگذارد. لزوما راه‌حل داکری هم نبود مهم نیست

نیازمندی را این طور در نظر بگیرید یک تعدادی برنامه یا تست داریم میخواهیم اجرا شود در یک محیط sandbox

مثلا یک صف از برنامه‌ها و یا تست‌ها داریم و میخواهیم بر اساس اولویت یکی یکی اجرا کنیم و حاصل را در صف دیگر قرار دهیم
https://github.com/facebookincubator/cinder

یعنی در اینستاگرام برای اینکه از پایتون استفاده کند چنین تغییری داده به عبارت دیگر کار نشد ندارد ولی هزینه و فایده آن را باید سنجید
Three coworkers —Allie, Bob, and Brian want to compute their average salary without revealing individual salary information.

چطوری این مساله را حل میکنیم؟

در حوزه‌های مختلف کاربرد متفاوت دارد و همچنین روش حل‌های مختلفی برای آن وجود دارد.


مثلا
- Allie: $100k
- Bob: $200k
- Brian: $300k

میخواهیم میانگین بین همه اشتراک گذاشته شود ولی داده‌های اصلی خیر. چگونه بدون اشتراک داده های به چنین دانشی برسیم؟
👍5
Forwarded from hossein Mahdavipour
این چالش کمی نرد طوره ولی جالبه.
حدود 13 گیگ فایل متنی را باید بخونید و پروسس کنید.
Your mission, should you decide to accept it, is deceptively simple: write a Java program for retrieving temperature measurement values from a text file and calculating the min, mean, and max temperature per weather station. There’s just one caveat: the file has 1,000,000,000 rows!

این لینک توضیحاتش:
https://www.morling.dev/blog/one-billion-row-challenge/
توی توییتر میتونید توی کوت ها و منشن هاش بحث های جالبی پیدا کنید. مثلا با زبان های دیگه مثل گو زدند
https://twitter.com/gunnarmorling/status/1741839724933751238?s=19
اینم ریپوش:
https://github.com/gunnarmorling/1brc