SEARCH KEYWORD -- Code Jam 2013



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

   Linux,NFS,GTalk,HTTP     2013-01-16 04:36:33

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

   JAVA,IO,NIO     2016-01-10 01:40:02

  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

  Developing Game Audio with the Web Audio API

Caution: This article discusses APIs that are not yet fully standardized and still in flux. Be cautious when using experimental APIs in your own projects. Introduction Audio is a huge part of what makes multimedia experiences so compelling. If you've ever tried watching a movie with the sound off, you've probably noticed this. Games are no exception! My fondest video game memories are of the music and sound effects. Now, in many cases nearly two decades after playing my favorites, I still c...

   Web Audio,HTML5,Game audio     2012-04-15 01:25:23

  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