SEARCH KEYWORD -- Code style



  Scala feels like EJB 2, and other thoughts

At Devoxx last week I used the phrase "Scala feels like EJB 2 to me". What was on my mind?ScalaFor a number of years on this blog I've been mentioning a desire to write a post about Scala. Writing such a post is not easy, because anyone who has been paying attention to anti-Scala blog posts will know that writing one is a sure fire way of getting flamed. The Scala community is not tolerant of dissent.But ultimately, I felt that it was important for me to speak out and express my opinions. As I s...

   Scala,Module,EJB,Concurrency,Feature     2011-11-22 08:29:44

  How Duff’s Device Works

I like C, but I have to admit that, sometimes, “The Old Man of Programming” can be a bit of a killjoy. This is one of the most exciting eras in computer history, but lately, C’s acting like he doesn’t evenwant to have a good time. While the cool kids like Ruby and Haskell are living it up, C’s over in the corner obsessing over bits and bytes and memory alignment and pointers and the stack and machine architecture and unreachable allocations and multiple indi...

   Duff device,Algorithm,Switch,Case     2011-05-27 14:10:18

  Python Patterns - An Optimization Anecdote

The other day, a friend asked me a seemingly simple question: what's the best way to convert a list of integers into a string, presuming that the integers are ASCII values. For instance, the list [97, 98, 99] should be converted to the string 'abc'. Let's assume we want to write a function to do this. The first version I came up with was totally straightforward: def f1(list): string = "" for item in list: string = string + chr(item) return string ...

   Python,Optimization,Anecdote,Loopup,ASCII     2011-12-18 10:52:49

  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...

       2024-07-07 03:08:22

  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

  Work is not challenging is just an excuse in interview?

Usually when an interviewer asks the interviewee why he/she wants to change his/her job, one answer may be "My current job is not challenging, I want a more challenging job.". The interviewer may tend to think that there are always challenges everywhere and why the interviewee indulges himself/herself without putting much effort on his/her work.   Here I want to say something to our interviewers. Work challenging is not equal to personal indulgence. The work is challenging which is an...

   Job,Interview,Challenge,Excuse     2012-04-18 07:03:12

  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

  The future smells like JavaScript

Of course I am only repeating what others are preaching about the recent rise of JavaScript. But I think the movement is significant and can't be overstated. And recent developments are really even making it more and more interesting. Nobody can deny hat JavaScript is the de facto programming language of Html5. Every other language trying to bolt itself onto Html5 looks like pure friction so far. And Html5 is looking upon a prospering future. Today we are used to some established JavaScri...

   JavaScript,Future,Node.js,Client-side     2012-02-03 08:06:43

  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