SEARCH KEYWORD -- Code highlight
Why TCP needs 3 handshakes
Prerequisite Knowledge First, let's look at the control bits and state machine of TCP, which form the basis for understanding the three-way handshake of TCP. TCP Packet Control Bits The control bits in the TCP packet header are used to control the status of the TCP connection and can indicate various control information such as connection establishment, termination, reset, etc. There are six common control bits: SYN (Synchronize Sequence Numbers): Requests to establish a connection (part of the...
REASON,NETWORK,TCP,EXPLANATION,HANDSHAKE 2024-09-28 08:57:52
Some useful Linux commands for teamwork
A small development team in the intranet will frequently transfer codes, share files. Here are some command we use frequently to release some of our work. They are not applicable to Windows users. 1. Output program execution output through GTalk. Sometimes we may need to send the program execution result and log to teammates for debugging using IM. These outputs are very troublesome to copy and send while in command line mode. So we could have a program called gpipe.py which can put GTalk as a p...
NIO vs IO in Java
Java 1.4 provides a new API for handling IO -- NIO. This is a non-blocking and buffer oriented IO API. Below are main differences between the NIO and IO in Java. IO NIO Stream oriented Buffer oriented Blocking IO Non-blocking IO N/A Using selector Stream oriented vs Buffer oriented The main difference is that IO is stream oriented where the data is read byte by byte and the data will not be buffered normally.This means there is no pointer to move forward and backward in the stream. I...
4 types of programmers
Not every one who writes code is a programmer. Programmers are people who live with programming. There are 4 types of programmers: scientist, coder, expert and artisan.Scientist, they are more like mathematicians rather than programmers. They invented various theories, algorithms and terminologies. Proofs and calculations in textbooks are all from these people. Moreover other programmers more or less benefit from their work. Sometimes one paper published by them can change the way of thinking of...
Programmer,Coder,Expert 2013-07-13 09:19:03
Python Deserialization Attack Introduction: How to Build a Python Pickle Bomb
This article introduces an old and classic unsecured Python data serialization feature (the pickle library) and demonstrates how a red team attacker can exploit it to create a malicious binary or text data file that executes remote code or commands upon deserialization. The following attack flow diagram illustrates this process: We will follow 3 steps with the program code to show how Deserialization Attacks Work: [ Step1 ] Crafting Malicious Data: An attacker crafts a malicious payloa...
Flows.network: Writing an LLM Application in Rust
Over the past year, large language models (LLMs) have been booming and developing vigorously. As an enthusiast of data systems, it would indeed seem outdated not to pursue and research this hot field at all. This article summarizes my recent practical experiences attempting to write an LLM application using Rust with flows.network. Concepts Related to Large Language Models When talking about large language models, it's impossible not to mention ChatGPT and OpenAI. Although OpenAI recently change...
LLM,RUST,APPLICATION,DEVELOPMENT 2024-09-30 21:38:04
Remote form submission
Remote form submission is way of submitting HTML forms from local to a particular remote server. This is used by many advertisers, spammers or even hackers to submit bad data to other websites in order to get what they want. They can write some automation scripts to help them do spamming. How can people do remote form submission and how to prevent this kind of attacks? Since a website can be accessed by almost every one, so one can save a local copy of a HTML form of a website through File->S...
PHP,Security,Remote form submission 2013-07-14 01:04:49
Understanding abstract interface in Java
Have you read about an interface declaration as public abstract interface InterfaceName in Java? At the first glance, is it a weird declaration? Why should we declare an interface as abstract? For example, we may see below code in some projects: public abstract interface MyInterface { public void check(); public abstract boolean check(boolean really); } Actually here abstract is redundant, an interface is implicitly abstract, we no need to put an abstract in front of interface. But it do...
Java,abstract interface 2014-08-18 23:07:27
How to help new joiners involve in projects
Usually when a new joiner involves in a new project, he will spend much time on understanding the background of the project, the current status of the project and the requirements of the project etc. It is very easy for them to get lost in this stage. So to effectively help them involve in the project, we need have some people guiding them, giving them some useful instructions. What should we do to help them? Here are some steps I take.1. Project backgroundIn this phase, I will introduce to them...
New joiner,Experience 2012-05-05 11:06:18
An alternative way to parse URL in JavaScript
Normally when we need to process URL in JavaScript, we may use the location object. Then we can use location.hostname,location.href,location.port etc to get the information we need. In this post, we will parse an URL with an alternative way. We can use an URL to create a DOM object by calling document.createElement("a"). The complete code is: function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, protocol: a.protocol.replace(':',''), host: a.ho...
RECENT
- How Artificial Intelligence Is Helping Fight Environmental Challenges
- How to Deal with Accusations of Negligence as a Business
- Google's Business Operations in China Amid Antitrust Scrutiny
- Deploying DeepSeek-R1 Locally with a Custom RAG Knowledge Data Base
- Balancing Convenience and Security in the Digital World
- My AI Learning Journey: Exploring the Future of Technology
- Power Grid Simulation System 02 : FDI Power Outage Attack Case Study
- Be Careful When Using Cursor to Help Build Application
- Calculating Token Count for Claude API Using Go: A Step-by-Step Guide
- Understanding Cursor and WindSurf's Code Indexing Logic
- more>>