Ramziddin — AI va dasturlash haqida
Open in Telegram
Man bilan bog'lanish – t.me/ramzcoder?direct Ingliz tilida kanalim – @ramzcoderen Ramzcoder community – @ramzcodercom Instagram — instagram.com/ramzcoder Programming emoji pack – t.me/addemoji/ramzcoder
Show more2 162
Subscribers
-224 hours
-47 days
-2630 days
Posts Archive
To'g'risi, frontend bilan backendni yozib deploy haqida o'ylamastan ancha osonroq
Ertaga 20:00da MVP-ni release qilaman.
Kotta ehtimol bilan ko'p bug-lar 🪲 bo'ladi, balki sharmanda bo'laman, lekin qiziq bo'ladi.
Nihoyat nimadir o'zim uchun productionga umrimda birinchi marta release qilvoman.
"🤓 Well akchually HTML is not a programming lan..." – HTML o'rganishi endi tugatgan dasturchi
Raycastda "Auto Quit" degan narsa paydo bo'ldi. Berilgan intervaldan keyin kerakli appslarni avotmatik ravishda yopadi xotirani (ram) saqlash uchun. Nice
👨💻 Agar macOS-da directoryni o'chirmoqchi bo'lsangiz terminaldan – kotta ehtimol bilan directoryni bunaqasiga o'chirasiz:
rm -rf node_modules
Lekin rm sekin ishlaydi va korzinani o'tqazvoradi. Undan ko'ra trash install qiling:
brew install trash
Va keyin:
trash node_modules
trash ancha tezroq va o'chirilgan directoryni korzinadan qaytarishingiz mumkin.ChatGPTda yangi, oyiga $200lik plan paydo bo’ldi — ChatGPT Pro 😳
https://openai.com/index/introducing-chatgpt-pro/
"Hacker bo'laman" degan odamlar – nimaga hacker bo'lmoqchisiz?
Ikkinchisini birinchi marta 👨💻da yozib ko'rdim 👀
package main
import (
"fmt"
"math"
"os"
"strconv"
"strings"
)
func main() {
dat, err := os.ReadFile("./input.txt")
if err != nil {
fmt.Println("Couldn't read input", err.Error())
}
reports, err := parseReports(dat)
if err != nil {
fmt.Println("Couldn't parse repoorts", err.Error())
}
safeReports := 0
for i := 0; i < len(reports); i++ {
levels := reports[i]
isInitiallyIncreasing := levels[0] > levels[1]
isReportSafe := true
for j := 1; j < len(levels); j++ {
previousLevel := levels[j - 1]
currentLevel := levels[j]
isIncreasing := previousLevel > currentLevel
if isInitiallyIncreasing != isIncreasing {
isReportSafe = false
break
}
difference := math.Abs(previousLevel - currentLevel)
if !(difference >= 1 && difference <= 3) {
isReportSafe = false
break
}
}
if isReportSafe {
safeReports++
}
}
fmt.Println("There are", safeReports, "safe reports")
}
func parseReports(inp []byte) ([][]float64, error) {
reports := strings.Split(string(inp), "\n")
var parsedReports [][]float64
for i := 0; i < len(reports); i++ {
report := reports[i]
levels := strings.Fields(report)
var parsedLevels []float64
for j := 0; j < len(levels); j++ {
parsedLevel, err := strconv.ParseFloat(levels[j], 64)
if err != nil {
return nil, err
}
parsedLevels = append(parsedLevels, parsedLevel)
}
parsedReports = append(parsedReports, parsedLevels)
}
return parsedReports, nil
}Kecha birinchi marta advent of code 2024 sinab ko'rgim keldi
Day 1 uchun yechimni Deno-da yozib ko'rdim
const decoder = new TextDecoder("utf-8");
const inputData = await Deno.readFile("./day1-input.txt");
const input = decoder.decode(inputData).slice(0, -1); // slice off empty line
const parsedInput = parse(input);
const output = calc(parsedInput);
console.log(output);
function parse(input: string): [number[], number[]] {
return input
.split(/\n/)
.map((row) => row.split(/ {3}/))
.reduce(
(acc, curr) => [
[...acc[0], Number(curr[0])],
[...acc[1], Number(curr[1])],
],
[[], []] as [number[], number[]],
);
}
function calc([column1, column2]: [number[], number[]]): number {
let distance: number = 0;
while (column1.length > 0 && column2.length > 0) {
const min1 = spliceMin(column1);
const min2 = spliceMin(column2);
distance += Math.abs(min1 - min2);
}
return distance;
}
function findMin(nums: number[]): number {
let index: number = 0;
let value: number = Infinity;
for (let i = 0, curr = nums[i]; i < nums.length; i++, curr = nums[i]) {
if (curr < value) {
value = curr;
index = i;
}
}
return index;
}
function spliceMin(nums: number[]): number {
const index = findMin(nums);
const spliced = nums.splice(index, 1)[0];
return spliced;
}