LƯU Ý: Kiến trúc đang phát triển tích cực: sự kiện thông qua Kafka, byte thông qua một Media Gateway vào MinIO, phân tích trong ClickHouse, và một API Đọc mỏng cho GUI. Ingest viết WARCs; tóm tắt là các đối tượng sidecar được khóa bởi hash văn bản chính xác. bài đăng này theo dõi các ý tưởng lớn; các chủ đề hạt mịn (vấn đề / sơ đồ, tính năng ghi điểm, RBAC, DLQ) sẽ hạ cánh khi chúng ổn định. Công nghệ BillsTechDeck Nhiều lần trong cuộc sống chúng ta phải làm điều gì đó không phải vì nó dễ dàng, nhưng bởi vì nó khó khăn. Tôi đang ở trong một trong những không gian đó. Giấc mơ của tôi: xây dựng một chương trình để thu thập và liên quan đến tin tức công nghệ. Quan tâm đến thực tế tăng cường gen tiếp theo? BillsTechDeck có thể giúp bạn tìm thấy thông tin về nó! Thế giới rộng mở cho các loại tiện ích và thông báo công nghệ bạn có thể nhận được từ một nguồn có liên quan để đánh giá xu hướng công nghệ và có thể có được một hình ảnh tổng thể có thể trốn tránh bạn với google mạnh mẽ. Đó là một vấn đề mà tôi đã gặp trong khi tìm kiếm thông tin về Vision Pro từ Apple hoặc khi tôi đang chờ đợi tin tức mới về Switch 2. Chúng ta hãy bắt đầu với một cái nhìn tổng quan về hệ thống bằng cách hiển thị một biểu đồ dòng chảy (thô). Một số cân nhắc: tất cả các mũi tên chỉ trở lại thông điệp đang chảy đến hàng đợi khác nhau. Ngoài ra, xem xét mỗi hệ thống con là trong các thùng chứa Docker và được tổ chức bởi K8 và trong một đường ống CI / CD (tôi không bao gồm nó trong biểu đồ vì nó sẽ quá bận rộn). Về cơ bản, tôi muốn tin tức, xu hướng, nguồn, phân tích, tóm tắt ở một nơi để xây dựng một khối lượng dữ liệu nhất quán mà tôi có thể hiểu được tinh thần của tin tức công nghệ, tiện ích và xu hướng. Cố gắng làm một cái gì đó nhất quán: Bây giờ, tôi chỉ là một người đam mê. Vì vậy, tôi không tuyên bố rằng tôi biết bất cứ điều gì. tôi đang có niềm vui đó là niềm vui thực sự. Tôi đã làm lại điều này nhiều sooooo Chúng ta hãy phá vỡ các bước (từ bỏ Các bước liên quan): Kafka Harvester lấy đầu vào từ IngressOrca dựa trên thông tin từ FeedbackService. Nó sử dụng MinIO như một cách để ghép các WARC và cũng có thể xử lý các phương tiện truyền thông phong phú theo cách phân tán. phương tiện truyền thông được lưu trữ trong cụm MinIO (Media Cluster) hoạt động trên các phím sha256 và sha1 (trong trường hợp của WARC, nhưng họ cũng sẽ có các phím hash sha256 cho sự đồng nhất của hệ thống) The Sanitizer nhận được công việc hàng đợi từ Harvester và kéo phương tiện truyền thông từ cổng truyền thông để vệ sinh. Nếu nó bẩn chúng tôi vẫn giữ nó để thực hiện pháp y trong một môi trường kiểm soát OCR chạy trên phương tiện truyền thông giàu dựa trên công việc từ Kafka gets run on everything. submits a coupled job to the sanity checker, and if sane it gets sent to a scoring service to decide whether an automatic summary is warranted, if not warranted it just gets sent to the correlation engine. If insane though, the data gets sent to an (not shown for brevity) to use as analytics or get human checking. Không gian (NER) spaCy spaCy phi4 thợ điên Phi4 được chạy trên các mảnh dữ liệu cụ thể được bảo đảm bởi dịch vụ ghi điểm hoặc người dùng khởi xướng. Correlation Engine chạy trên mọi thứ Mỗi hệ thống con sẽ có kiểm toán mạnh mẽ và gửi hàng đợi để đăng ký để được xử lý bởi LogHandler và trong LogSilo/ElasticSearch Các hệ thống con / nhà phân phối cần truy cập vào phương tiện truyền thông sẽ tương tác với cụm MinIO thông qua một cuộc gọi thư giãn thông qua một MediaGateway. Người xử lý khác nhau nói chuyện với GUIHandler hiển thị cho GUI. GUIHandler có thể gửi ControlEvents (yêu cầu phi4 tóm tắt, tweaking stuff) FeedbackService nói chuyện với HistoricalHandler để rút ra khỏi HistoricalSilo để đào tạo một mô hình sẽ cung cấp thông tin tốt hơn cho IngressOrca (Orchestrator) để lựa chọn tốt hơn khi nào, ở đâu và làm thế nào chúng ta có thể rút ra thông tin tốt hơn để cắt giảm tài nguyên lãng phí trên dữ liệu khối Tất cả dữ liệu được lưu trữ trong một cụm MinIO (MediaCluster) và truy cập thông qua các cuộc gọi nghỉ ngơi Calls to the are made by Thương nhân restful calls Tất cả các hệ thống con được containerized và orchestrated bởi Kubernetes Harvester nhập Feedback dịch vụ sanitizer Harvester OCR Không gian (NER) thợ điên Phi4 Correlation Engine Động cơ LogHandler LogSilo/ElasticSearch Tìm kiếm phương tiện truyền thông Media Cluster phương tiện truyền thông Thương nhân Thương nhân Kiểm soát Feedback dịch vụ Giao dịch lịch sử lịch sử nhập MediaCluster Thương nhân I'm sure I left out some detail, but that's the gist. Của Harvester: Thu thập dữ liệu Thu thập dữ liệu How do we gather our news about the slick Pixel Fold 3? Chúng ta cần phải rút nó ra khỏi trực tuyến! Các nguồn khác nhau đòi hỏi các phương pháp thu thập dữ liệu khác nhau. Tất cả các trang web cũng có cấu trúc cụ thể (nhiều phức tạp). May mắn thay, chúng tôi có một hệ sinh thái đáng kinh ngạc đằng sau việc thu thập dữ liệu. phát hiện bot, lọc DDoS, captchas, thông tin bị lỗi Python là một ngôn ngữ để sử dụng cho mục đích này và có một cộng đồng sôi động làm việc chăm chỉ để giúp những người đam mê như tôi nắm bắt thông tin quan trọng trên các thông số kỹ thuật của Steam Deck 2 và các trò chuyện khác về nó (như thế nào đáng kinh ngạc). Bất ngờ Recon What is the site structure? What is the site's flow? What tricks are companies like Akamai pulling to impede my ability to get my precious tech snippets? What values change and where? When does my cookie become invalid depending on an abnormal flow? Does the javascript try to fool me? Is it dynamic, obfuscated or check for tampering? Are my user agents okay and when do I rotate them? How do I handle headers? How do I handle TLS Fingerprinting? This list is getting long so I'll just add "heuristics" Đây là một quá trình rất liên quan và đòi hỏi một số lượng tốt của sự chú ý. Vì vậy, mục tiêu để có được tin tức công nghệ của tôi phải được quản lý chung và phạm vi. Sử dụng công nghệ như và để thu thập thông tin có giá trị về các trang web và heuristics của họ là quan trọng. ngã MiTM Proxy CAPTCHAs *: image recognition tasks* Tradition CAPTCHAs *: Machine learning looking at user behavior to determine bot behavior* ReCAPTCHA *: pesky things that run in the background by grumpy site admins looking to stop me* Invisible CAPTCHAs Captcha truyền thống ReCAPTCHA Captcha vô hình Trong khi một danh sách nhỏ hơn, đây chắc chắn là một trở ngại lớn và không có cách nào và danh sách đầy đủ. tất cả các giải pháp cho các vấn đề này đòi hỏi các giải pháp phức tạp. giải pháp phức tạp mà phải thay đổi liên tục. Tôi có thể tiếp tục nhưng tôi tin rằng thêm vào những thứ như sử dụng proxy nhà ở có uy tín, proxy di động, giới hạn tỷ lệ, thừa nhận và giảm bớt dấu vân tay thiết bị và cuối cùng là nồi mật ong. điều cuối cùng tôi cần là lãng phí tài nguyên trên nồi mật ong vô dụng! Vì vậy, chúng ta cần có các phương pháp tiếp cận khác nhau: Chiến lược Graduate Response Crawling “Thử nghiệm với một khẩu súng lục, leo lên một lệnh nếu nó là fubar’d.” “Thử nghiệm với một khẩu súng lục, leo lên một lệnh nếu nó là fubar’d.” : Level 1 Pellet Gun aiohttp scrapy Use for static pages, public APIs, or weakly protected endpoints. Low noise, low cost. : Level 2 Scoped Rifle Playwright + stealth plugins Use for JS-rendered sites, light bot defenses, simple captchas. Mimics real users, simulates browser behavior. Level 3: Ordinance Crawl4AI / Nodriver , heavyCAPTCHA solving , Mobile proxies Use when you hit: invisible captchas, anti-bot JavaScript puzzles, DOM obfuscation, or flow control defenses. Heavy but necessary for hard targets. Pellet súng Scoped Rifle lệnh Tại sao điều này quan trọng Hiệu quả: Không đốt cháy chu kỳ Playwright khi curl hoạt động. Avoid raising alarms unnecessarily. Stealth: Tuổi thọ: Chạy hàng tháng mà không có lệnh cấm, không phải hàng tuần. Mặc dù bây giờ chúng tôi giới thiệu sự phức tạp đó là tốt. Lúc đầu chúng tôi sẽ có các quy tắc rất đơn giản. Khi hệ thống phát triển và trở nên mạnh mẽ hơn chúng ta có thể thực hiện các cuộc gọi tốt hơn đến những nơi tốt hơn vì chúng ta sẽ và các mô hình để hướng dẫn chúng ta. lịch sử Dữ liệu lịch sử HistoricalSilo Phần này của hệ thống có thể là và sẽ là một yêu cầu cập nhật liên tục vì trò chơi mèo và chuột giữa weenies chạy các trang web giữ tôi khỏi ngọt ngào, ngọt ngào Samsung tin tức của tôi. Quan trọng nhất Tôi đã đưa ra một kế hoạch để có thể nuốt, nuốt, nuốt và có thể xác minh trước khi tôi thực sự phải lo lắng về việc thu thập dữ liệu thời gian thực. kế hoạch hiện tại là rút dữ liệu từ archive.org (với một tốc độ ngọt ngào và lịch sự, tất nhiên). Async và không bị chặn. Trình duyệt Internet Archive Python Wrapper Nếu tôi chỉ mới bắt đầu rút ra rất nhiều dữ liệu kịp thời, tôi sẽ không có một sự đảm bảo tốt mối tương quan của tôi có nghĩa là bất cứ điều gì. dữ liệu lịch sử cho tôi nhiều sự đảm bảo hơn và cho phép tôi để xác minh thông tin với 20/20 hậu cảnh. Cách tiếp cận này cho phép tôi tiêu thụ và tập trung vào phần còn lại của hệ thống mà không cần phải xây dựng một crawler sẽ đòi hỏi rất nhiều thay đổi. Không nên tin tưởng dữ liệu: Nghệ thuật của những người muốn đầu độc hệ thống của bạn Nghệ thuật của những người muốn đầu độc hệ thống của bạn Vấn đề gì với việc lấy dữ liệu từ Internet? Well, anyone who has been on the internet for any length of time knows about the dirty trolls. Actors who are out to hose you and your noble goal of getting the new smart phone information. Because the fact that people want to pwn you, you have to assume the worst. Let's highlight some concerns (not an exhaustive list, just a taste) Malice in action Javascript Payloads (XSS, Embedded goodness, etc) Worry about data exfiltration Browser Exploits Redirection and Phishing PDF Macros and Embedded Object Can do spooky things like "remote code execution" Info disclosures Initiate connections to scary C2's Handling various filetypes Office Document macros EXE/DLL (less of a concern since they'd be filtered Malicous archive files that contain executables and path traversals Image/Media file: hiding stegonagraphy or utilizing dirty dirty codecs Data Integrity Tampered data Spoofed sources People looking to poison my system with generally bad data So how do we deal with this? Some things I left off this list (like servers trying to DDoS my harvester by serving up tons of unnecessary data to hurt my feelings). We first off want to isolate and contain all data we haven't vetted. A separate black box that either resides on a different network system or is . While occurs, it has to be weighed with the caveats that come with air-gapping (which I won't bore anyone with). air-gapped VLAN hopping One level is running các quy tắc trên một tập tin. Điều đó là tốt, và một điểm khởi đầu tuyệt vời. chúng tôi có các công cụ để phân tích macro. chúng tôi có an analysis tools. We can verify files are what they are (making sure the dirty trolls aren't hiding exe's). We have . We check hashes against threat feeds. vết thương PDF Phân tích code static We also have at the other extreme. It until we get past the Internet Archive phase. It comes with Cảnh báo. Nó cung cấp phân tích động, báo cáo hành vi, phát hiện mối đe dọa... , Some dirty files can detect sandbox environments. Others can escape them. It is resource intensive and has a complex setup. It is too resource intensive and complex for a while. Cuckoo won't be implemented significant But it can be thwarted! it can be thwarted! Cuối cùng, chúng ta phải lo lắng về ngộ độc dữ liệu. Tôi không có một con đường rõ ràng về cách xử lý điều này. Có một loạt các bài báo nghiên cứu tôi sẽ đi qua để hiểu rõ hơn về vấn đề và phương pháp tiếp cận. Không ai nói . I write this not a definitive writing of what I'm doing. More so highlighting the Bao nhiêu cách đàn ông xấu có thể me and my system. safety is easy Stagger compromise I have yet to see a lock that can't be picked. Tôi chỉ có thể làm cho nó phức tạp nhất có thể. Với suy nghĩ đó, tôi đang thiết kế phần này với . Performance, memory safety and I just like it a lot. This will be a job. Media will be fetched and posted to the to interact with the (Nhóm nhỏ) Rust Tokyo MediaGateway MediaCluster MediaGateway MediaCluster In conclusion: In conclusion: In conclusion: For the majority of time, are vì Càng xa tôi có thể đặt những quả táo ngọt ngào, ngọt ngào lên cây và the better. Diễn viên xấu looking Hạt trái cây treo thấp minimize my attack surface Nếu dữ liệu bị hỏng, chúng tôi kiểm soát nó để chúng tôi có thể phân tích nó. chúng tôi tài liệu nó và lưu trữ các phân tích quay xung quanh nó trong . lịch sử HistoricalSilo Phi4-medium: summarizing for busy people like me summarizing for busy people like me come with a lot of challenges. Resource wise, content wise. However, they also have the ability to give us cogent summaries of potentially lengthy pieces of information. That's why I'm using (needed something more robust). LLM's Phi4-medium Tại sao tôi nên chọn điều này? Goldilocks size and performance Medium is bigger than mini. Medium has 14 billion parameters. Competitive enough with larger models but more efficient Tối ưu hóa cho các trường hợp sử dụng của tôi Thích hợp cho triển khai địa phương Cost effective (since I'm a lowly cabbage farmer) Tính linh hoạt trong triển khai Tôi cần một cái gì đó địa phương và mạnh mẽ và nó phù hợp với hóa đơn. có nó là hình ảnh docker của riêng mình làm cho nó dễ dàng. Một tích cực khác là khả năng của tôi để tinh chỉnh nó (cho nhu cầu tham lam của tôi về thông tin trên iPhone mới). Cảnh báo ! Hallucination Tis the cost of doing business. For this I may have to implement and RAG system. My own guys are working against me! *sigh* English In the end this is not an overall large deal since I'm not multilingual. Though it adds complexity should I want to expand data sources to places I can't understand I'm pigeonholing myself into consuming English. My own guys are working against me! English So what does a Như tôi làm? headstrong cabbage farmer Kiểm tra sức khỏe Things like volume yields : Checks if the summary's length is reasonable. Meaning Did Phi-4 produce a 150-word summary as requested, or did it return a single sentence or a 10-page novel? . Cardinality or categorical value checks : Checks if the entities (people, places, etc.) in the summary are a valid subset of the entities in the original article. Primary defense against hallucination. Meaning Does the summary mention 'Germany' when the source text only ever mentioned 'France'? . Completeness and fill rate checks Checks for the omission of critical information. Meaning: The original article mentioned three key companies, but the summary only includes one. Is the summary missing vital information? Uniqueness checks Checks for repetitive or redundant content within the summary. Meaning: Did the model get stuck in a loop and repeat the same sentence three times? . Range checks Checks if numerical data in the summary is factually correct based on the source. Meaning: The source text says profits were '$5 million,' but the summary says '$5 billion.' Is this a catastrophic numerical error? Presence checks The most basic check: did the service return anything at all? Meaning: Did the Phi-4 service time out or return an empty string instead of a summary? Data type validation checks. Checks if the summary adheres to the requested structure. Meaning: I asked for a JSON object with a 'title' and 'key_points' array. Is the output valid JSON with those exact keys? Consistency checks The deepest check for factual grounding and logical contradiction. Meaning: The source text says 'the project was cancelled,' but the summary implies it's ongoing. Does the summary contradict the facts of the original article? Things like volume yields Cardinality hoặc kiểm tra giá trị phân loại Kiểm tra đầy đủ và fill rate Kiểm tra độc đáo Range kiểm tra Presence checks Data type validation checks. Consistency checks This list can quickly become like Benjamin Buford Blue naming uses for shrimp so I'll top it off there. Điều này sẽ tự động chạy dựa trên dịch vụ ghi điểm hoặc được yêu cầu bằng tay bởi . moi Grabbing Entities with spaCy: Các grabbing Các vấn đề liên quan grabbing pertinent things We are at the section. spaCy Which model do I choose? offers a variety of pretrained models all with their own uses. They are trained on Như vậy ra khỏi hộp Tôi có thể sẽ cần phải tinh chỉnh một thói quen và thêm Lúc đầu, tôi sẽ cần ghi chú dữ liệu để đào tạo mô hình của mình (có các công cụ nguồn mở để tự động hóa quá trình này một chút). . Không gian general web content it won't recognize tech jargon NER model custom components recognize entity types I will need to be ( and ). I to go in and do and (tức là "Apple" công ty và "Apple" trái cây). với điều này đi kèm với khả năng xây dựng một thực thể tùy chỉnh liên kết thành phần hoặc tích hợp công cụ bên ngoài (hy vọng không). fluent in rule-based matching matcher EntityRuler sẽ cần entity linking disambiguation Since I'm only worried about English at the moment, I am blessed to be ignorant of language detection. Past that I will need to consider performant things like and Khi không sử dụng thì tắt đi! Batch xử lý component disabling Với sự cân nhắc có thể running with I'll have to consider based models and dựa trên các mô hình, và cũng phải xem xét việc sử dụng RAM đáng kể. Các quá trình song song Phi4 CPU GPU Có có . The use of custom attributes will be a must. I will have to plan for out-of-domain text which I will inevitably run into and is crucial for me to know how to handle. Pre-processing, post-processing và có thể tích hợp logic và mô hình bên ngoài Cuối cùng, và gần như quan trọng nhất: Kiểm tra sức khỏe Chương trình Validation Kiểm tra kiểu dữ liệu chính xác Paying close attention to the behavior around critical fields Defining expected data types Establishing acceptable ranges with things like dates and word counts Xác định các giá trị cho phép Xác định ngưỡng đầy đủ Xem xét các quy tắc liên tục cross-field A lot of the above mentioned sanity check stuff applies here, but in a more granular sense dealing with entities. The list goes on, and again, it becomes listing uses for shrimp to Forrest Gump. I feel okay about the completeness of this section. Data correlation: Tạo ý nghĩa cho mọi thứ Tạo ý nghĩa cho mọi thứ Trong hệ thống này là I need a language that can provide me some memory guarantees as well as stop me from making newbie mistakes. - Tôi cần một ngôn ngữ có thể cung cấp cho tôi một số bảo đảm về trí nhớ cũng như ngăn tôi mắc sai lầm của người mới. lúc đầu. tôi nghĩ nó qua và trở lại tại Tôi đơn giản là không phải là một người có kinh nghiệm lập trình và có thể sẽ thực hiện những thứ sẽ làm hỏng hệ thống của tôi. Data correlation incredibly C++ Nghỉ ngơi C++ Basically, lấy các thực thể từ and connects the dots. It will utilize to . I needed some real granularity and functionality for statistics in correlation. An earlier draft incorporated RocksDB, which wasn't robust enough with recent developments. Nghỉ ngơi spaCy ClickNhà write/read/store phù hợp things So stats will be important (yay!). một cách mã hóa là chìa khóa và tôi sẽ cần phải rất thận trọng với những gì tôi làm, tại sao tôi làm điều đó và cách tôi thực hiện mọi thứ. for this part since I will have a lot of I/O processes talking to . idomatic Tokio ClickNhà Về cơ bản, tất cả các tổ chức và on them an compare it . run rich analysis Dữ liệu lịch sử Tôi xem xét những điều sau: Is this relationship statistically significant? Liệu mối tương quan này có nhiều hơn là chỉ là một “sự may mắn”? Is this significance worth creating a graph relationship with? Is there factual backing to put emphasis on this specific relationship? Vì vậy, tôi sẽ cần phải làm những điều như thiết lập một for connections. It'd also be a good idea to establish , a measure that scores how much more likely two entities are to appear together than by random chance. Where high and negative scores tell me great things about a correlation. p giá trị Pointwise Mutual information Using stats is essential for filtering out noise. For instance, the entities và will appear together thousands of times, but this connection is và particularly insightful. Statistics help us prove that a rarer connection, like a specific tech company and a government agency, is far more significant even if it only appears a few times. Also, thinking of the : its Bởi vì nó là a . 'Apple' “iPhone” obvious not Whitehouse not quan trọng Tòa nhà trắng Trước khi đi vào một số khái niệm tôi cảm thấy ngoài phạm vi của tổng quan này, tôi sẽ để nó ở đó. Dữ liệu : Backbone của Backbone của Vậy tôi phải làm gì với tất cả dữ liệu này về các mặt hàng công nghệ mới nóng? Tôi hoard nó. Tôi sẽ có nhiều cơ sở dữ liệu (PostgreSQL, ClickHouse, Neo4j và MinIO) Tất cả các hoạt động dữ liệu sẽ được cung cấp thông qua Một người sẽ xử lý operations, one which will be used to store artifact data , two will be (Những và Đó là rất nhiều, nhưng mỗi DB có sức mạnh riêng của nó và tôi tin rằng một would have significant drawbacks. Dữ liệu Handler Đồ chơi Neo4J PostgreSQL (basically a metadata registry) ClickNhà lịch sử CorrelationSilo "SQL Server cho mọi thứ" lịch sử CorrelationSilo Cấu trúc dữ liệu, tables and primary keying will be tantamount in (Kết hợp Trong số những thứ khác). sẽ dễ dàng hơn đáng kể, mặc dù chắc chắn sẽ đòi hỏi rất nhiều sự chăm sóc. Nó sẽ là một nguồn của rất nhiều suy ngẫm, nước mắt và thất vọng. Một thiết kế tốt sẽ trả giá bằng búa. Tôi đang tiếp cận điều này sau này vì tôi cảm thấy tôi sẽ có một ý tưởng tốt hơn nhiều về những gì tôi cần hơn nữa trong hệ thống tôi nhận được. tốt ClickNhà stored procedures Nghệ Thuật Nghệ Thuật is another beast. I feel as long as my Trong đó phải là không đau đớn (các từ cuối cùng nổi tiếng). cảm xúc của tôi là tôi về cơ bản muốn cố gắng và làm cho nó ngu ngốc nhất có thể. Nếu tôi bắt đầu thêm các lớp phức tạp và logic tương quan, dữ liệu sẽ trở nên kết hợp hơn và giảm giá trị của công cụ tương quan của tôi. Neo4J Correlator không phải là phoning relatively “Tại sao?” Các Sẽ là a DB có rất nhiều dữ liệu hạt từ những thứ như: lịch sử ClickHouse lịch sử Nơi chúng ta có được dữ liệu tốt Những truy vấn tìm kiếm nào mang lại dữ liệu tốt nhất Phương pháp thu hoạch nào hoạt động tốt nhất cho nguồn dữ liệu nào Khi nào và tại sao chúng ta có được dữ liệu bẩn Phân tích dữ liệu bẩn thỉu đó Có lẽ có nhiều hơn nữa, và tôi sẽ tìm thấy chúng khi tôi đến điểm đó. Các cluster sẽ được cách ít đau đớn hơn để thực hiện so với những người khác. tôi vẫn cần phải đảm bảo tất cả mọi thứ là thắt lưng và treo. MinIO Các cơ sở dữ liệu sẽ là một trải nghiệm mãnh liệt.Sẽ có thêm một tấn. Lời bài hát: Webapp Time! Các will be a . Initially I was going to make this a desktop app. I realized though that eventually I want more people to use it. wouldn't be a great option. Gui webapp Phanh6 Sử dụng a Tôi có quyền truy cập vào một loạt các thư viện. tôi có quyền truy cập đáng kinh ngạc vào thông tin có thể không có sẵn nếu tôi sử dụng một GUI. , mục tiêu của tôi là rất khác nhau. tôi thành thật không muốn viết một gui trong Python. tôi không có lý do chính đáng tại sao tôi không. Nó hoàn toàn có khả năng. Nó chỉ là một sở thích cá nhân. webapp Pyside6 Có cảm giác ồn ào đó trong ruột của tôi, tôi đã tìm kiếm các lựa chọn khác. Để thêm vào đó, tìm thấy những ví dụ tốt về những gì mọi người đã xây dựng với các thư viện gui là khó khăn nếu không phải là không thể. tôi chắc chắn có thể chỉ đẩy về phía trước, nhưng tôi không muốn sử dụng một cái gì đó sau đó đưa vào làm việc và nhận ra rằng tầm nhìn của tôi là không thể với một gui nhất định. LOT Vì vậy, tôi đi với một Có rất nhiều lợi ích cho nó, nhưng bây giờ tôi sẽ phải thực sự ở trên cùng của bảo mật. Tuy nhiên, tôi sẽ không phải lo lắng về sự phức tạp đó cho đến khi tôi tin rằng tôi đã sẵn sàng để hiển thị dự án của tôi, và chỉ có thể sau đó tôi có thể tìm thấy một số chàng trai mát mẻ để mã hóa với. webapp Về cơ bản, Gui nói chuyện với Ai nói chuyện với , , và kiểm soát các sự kiện như có thể chạy một số công việc nhất định. sẽ phải bị khóa và cân nhắc trong cách nó đưa công việc vào . GuiHandler LogHandler ArtifactHandler Giao dịch lịch sử Kiểm soát Kafka GuiHandler LogHandler ArtifactHandler HistoricalHandler Kiểm soát Chúng ta sẽ phải có thể phục vụ tất cả các loại phương tiện truyền thông giàu có. Nó cảm thấy thận trọng hơn để chỉ làm một webapp. Lời cuối: Những suy nghĩ cuối cùng Những suy nghĩ cuối cùng Tôi không bao phủ mọi thứ. Một điều tôi muốn thêm vào là sự lựa chọn của tôi của cho dự án này ngay bây giờ thực sự là overkill. Nó không phải là sự lựa chọn ban đầu của tôi. Tuy nhiên, tôi đã chạy vào một chướng ngại vật trong quá trình phát triển khi sự lựa chọn ban đầu của tôi trở nên không bền vững. is where I landed. Bài viết này hiện đang đóng ở 4.5k từ Kafka Kafka Kafka An added bonus is that it looks good on a resume. Tôi luôn quyết định cố gắng và trở thành nhà phát triển. Nếu . Tôi sẽ không Nhưng, nó sẽ trông tốt đẹp. Có rất nhiều công việc trước mắt tôi để có thể hít thở cuộc sống vào tình yêu của tôi đối với xu hướng công nghệ. làm i to do any of this? Cần No. Tôi chỉ nghĩ rằng đó là niềm vui đáng kinh ngạc. Tất cả các lựa chọn kiến trúc và dòng chảy đều có thể thay đổi. trên blog này tôi sẽ không cung cấp mã (tôi sẽ tiết kiệm mắt bạn). There are tradeoffs everywhere. Khi nào tôi có thể leo thang Kafka? Tôi có thực hiện một trình soạn thảo tài nguyên để tôi không đốt cháy thiết bị của mình không? Làm thế nào granular tôi nhận được với việc xác định dữ liệu "có giá trị"? Tôi phải làm gì trong hệ thống để xóa dữ liệu vô dụng? Tôi sẽ cần các buổi tối muộn để đốt cháy darts? Tôi phải làm gì nếu bị thỏa hiệp? Làm thế nào để bù đắp cho nhiễm độc dữ liệu? Vexing ơi Vexing ơi Mặc dù đáng sợ, tôi có một Thời gian và không có sếp để cưỡi tôi về thất bại. vũ khí bí mật Điều này sẽ mất nhiều năm. Và đó là ok. Dự án này có thể điên rồ và đầy tham vọng đối với người đọc. Tôi đủ tự ý thức để thừa nhận điều đó. Though I want to say that I'm incredibly interested in all the domains of knowledge within the system itself. It's a Không phải 100m sprint. . Marathon dài Bit bởi bit Bit by bit Tôi muốn rời khỏi một bài học được học từ Spruce là một người đàn ông đã thay đổi địa chỉ trụ sở của UPS thành một căn hộ của riêng mình ở Chicago. Điều này đã được cho phép trong nhiều tháng khi ông Spruce có thể gửi ~$65k tiền mặt vào tài khoản của mình được dành riêng cho UPS. Ông Spruce How does this fit? Một bài học tôi học được từ câu chuyện này là Để có một sự bỏ qua hoàn toàn đối với một trần logic trong những gì có thể. ông Spruce đã không lo lắng bản thân với những câu hỏi về việc liệu ông có thực sự có thể thay đổi địa chỉ của công ty hậu cần lớn nhất thế giới cho căn hộ của mình. . Audacity And it worked Audacity And it worked Trong khi tôi cảm thấy như tôi có thể loại bỏ sự thiếu kiểm soát xung lực của ông Spruce và sự vắng mặt của sự tiên đoán, tôi có thể nội tâm hóa sự táo bạo để cố gắng. Maybe I can't. I'd rather fail large than to not try. For that, I must embody Mr. Spruce's approach of totally not giving a fuck. Nếu bạn đã gặp phải blog này, tôi hy vọng bạn đã học được điều gì đó. nhiều tình yêu, Bill “Wizard” Anderson (liên kết sửa đổi)