مدتیه که وارد یادگیری انگلیسی (B2/C1) شدم و چیزی که خیلی جالبه، اینه که مترادفات زیادی یاد میگیرید. دیگه لازم نیست بگید hate، چون یه سری کلمات نزدیک یا هممعنای دیگه براش هست که با استفادهکردنش ممکنه زبانبلدتر به نظر بیایید. البته این رو نباید توی تیمهای کاری انجام داد چون وقتی افراد از کشورهای مختلف باشند و سطح زبانشون فرق کنه، استفاده از کلمات سطوح پایینتر تعامل بهتری به وجود میاره. یعنی مجبورید سادهتر حرف بزنید تا همه بفهمند.
I'm desperate for a cup of tea => I want coffee.
میدونم توی جمله اول چایی بود، ولی چون مجبور شدم سادهاش کنم بهجاش قهوه خواستم. :))
I'm desperate for a cup of tea => I want coffee.
میدونم توی جمله اول چایی بود، ولی چون مجبور شدم سادهاش کنم بهجاش قهوه خواستم. :))
👍5
سورس PHPStan نسخه ۱.۰ رو خواستید بخونید:
https://github.com/phpstan/phpstan/tree/0.1/src
نسخههای بعدیش پیچیده میشه و خوندنش مشکله.
https://github.com/phpstan/phpstan/tree/0.1/src
نسخههای بعدیش پیچیده میشه و خوندنش مشکله.
GitHub
phpstan/src at 0.1 · phpstan/phpstan
PHP Static Analysis Tool - discover bugs in your code without running it! - phpstan/phpstan
👍2
گول این پکیجفروشهای اینستاگرام رو نخورید. تنها راه میلیاردرشدن یه برنامهنویس اینه که روزها کد بزنه، شبها بانک.
😁7
package main
import (
"context"
"fmt"
"strings"
"time"
"github.com/redis/go-redis/v9"
)
var ctx = context.Background()
var rdb *redis.Client
func main() {
rdb = redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
DB: 0,
})
Listen()
}
func Listen() {
val, err := rdb.BLPop(ctx, 0, "jobs").Result()
if err != nil {
panic(err)
}
fmt.Println(Mask(val[1]))
Listen()
}
func Mask(str string) string {
time.Sleep(time.Second * 5)
return strings.Repeat("*", len(str))
}
یه صف ساده با Go/Redis نوشتم. ☺️🙄
🔥2👍1
توی MySQL یه چیز داریم generated column. هم میشه یه فیلد داخل json رو index کرد و هم میشه از اون فیلد داخل json یه generated column ساخت:
https://planetscale.com/blog/indexing-json-in-mysql
ALTER TABLE activity_log ADD COLUMN email VARCHAR(255)
GENERATED ALWAYS as (properties->>"$.request.email");
https://planetscale.com/blog/indexing-json-in-mysql
❤1👍1
یه تیبل ساختم، بالای یه میلیون رکورد اضافه کردم و کوئری زدم:
نتیجه این کوئری توی 0.0424 ثانیه برگشت که عدد قابل ملاحظهایه. بعد یه index روی ستون name اضافه کردم (این کار مقداری زمان برد، چون با اضافهکردن ایندکس یه کپی از بخشی از دیتای ما گرفته میشه؛ راجع به B-Tree بخونید) و مجددا همون کوئری رو اجرا کردم و این بار 0.0007 ثانیه طول کشید که نتیجه برگرده.
در حالت دوم، فقط و فقط 461 سطر رو درگیر کردیم تا دیتای مورد نظر رو پیدا کنیم!
اینجا هم حتی بدون ایندکس، زمان اجرای کوئری به شکل چشمگیری کمتر میشه. هرچی رکوردها بیشتر باشه، این تفاوت چشمگیرتره.
SELECT * FROM `users` WHERE name = 'Faye';
نتیجه این کوئری توی 0.0424 ثانیه برگشت که عدد قابل ملاحظهایه. بعد یه index روی ستون name اضافه کردم (این کار مقداری زمان برد، چون با اضافهکردن ایندکس یه کپی از بخشی از دیتای ما گرفته میشه؛ راجع به B-Tree بخونید) و مجددا همون کوئری رو اجرا کردم و این بار 0.0007 ثانیه طول کشید که نتیجه برگرده.
در حالت دوم، فقط و فقط 461 سطر رو درگیر کردیم تا دیتای مورد نظر رو پیدا کنیم!
SELECT id, name FROM `users` WHERE name = 'Faye';
اینجا هم حتی بدون ایندکس، زمان اجرای کوئری به شکل چشمگیری کمتر میشه. هرچی رکوردها بیشتر باشه، این تفاوت چشمگیرتره.
🔥4
زدم:
بعد این خط رو اضافه کردم:
حالا وقتی توی ترمینال بزنم pma، اتوماتیک هم PHPMyAdmin رو ران میکنه و هم توی براوزرم باز میشه. :)
nano ~/.bashrc
بعد این خط رو اضافه کردم:
alias pma='xdg-open http://127.0.0.1:8001 && php -S 127.0.0.1:8001 -t /home/dreamweaver/phpmyadmin'
حالا وقتی توی ترمینال بزنم pma، اتوماتیک هم PHPMyAdmin رو ران میکنه و هم توی براوزرم باز میشه. :)
👍1🔥1
-- All the rows, everybody knows that!
SELECT COUNT(*) FROM users;
-- How many developers each company has.
SELECT company_id, COUNT(*) FROM `users` GROUP BY company_id;
-- How many verified users we have. (=not null values)
SELECT COUNT(verified_at) as verified_users FROM users;
-- How many languages should we support?
SELECT COUNT(DISTINCT language) FROM users;
👍3