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
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
proof-of-contribution
این مفهوم در سیستم‌های توزیع شده و نظریه بازی چه چیزی می‌گوید؟

مثلا سه سرور داریم در یک محاسبات یا کاری مشارکت میکند میزان مشارکت آنها را بر اساس cpuیا رم و یا هر چیز دیگر در قالب یک عدد می‌توانیم محاسبه کنیم. حال سوال این است که توزیع دقیق و مدل اندازه‌گیری این مشارکت چگونه است؟

چه الگوریتم‌های برای پاسخ به این موضوع می‌شناسید
👎2👍1
فرض کنید یک گاو صندوق داریم و رمز آن ۴۲ است میخواهیم به نحوی این رمز را بین ۴ نفر به اشتراک بگذاریم که برای باز کردن درب گاو صندوق حداقل ۲ نفر از چهار نفر کلید خودشان را به نحوی ترکیب کنند تا کلید اصلی (در این مثال ۴۲) ساخته شود.

به عبارت دیگر ما به هیچ یک از ۴ نفر رمز را نخواهیم گفت ولی به آن‌ها داده‌ایی میدهیم که وقتی حداقل ۲ نفر از ۴ نفر داده خود را به اشتراک بگذارند یا ترکیب کنند بتوانند کلید اصلی را بازیابی یا بازسازی کنند و گاو صندوق را باز کنند

پیشنهاد شما چیست؟
👍1