The book of Code Complete has been sitting on my book shelf for a long time. I always feel that it was a big book and the content is too much for my level. But these feelings were purely generated from the imagination because I never ever actually tried to read the book.

Until now. I began the reading. And it turns out the content makes sense to me in a lot of ways. I think it is considered as a classic book for a good reason.

It might take some time before I can finish the book, but I can say it now to anyone hesitate to read it, today is the day, just read it.

I saw something in the shell code as follows.

1
cat /dev/random > /dev/null 2>&1

Or something similar.

1
export lang="en_us.utf-8" >/dev/null 2>&1

They all have this part.

1
>/dev/null 2>&1

I did some research to find out what it means. Basically, the number 1 is standard output, the number 2 is the standard error, the char > is to redirect the flow of information, and 2>&1 means to treat the 2 the same way as the 1, and /dev/null, you know, is in the middle of nowhere.

So, to put them all together, this piece of code means that throw the standard output and standard error away as garbage. You will never see anything stdout or stderr on the screen or anywhere on disk. No, just say goodbye to them. They are gone for good.

CRUD operations in MongoDB, i.e. Create, Read, Update, Delete.

The code is for Pymongo.

Preparation

1
2
3
4
5
6
7
8
9
10
11
import datetime
from pymongo import MongoClient

client = MongoClient()
db = client.test_database
collection = db.test_collection

post = {'author': 'Mike',
'text': 'My first blog post!',
'tags': ['mongodb', 'python', 'pymongo'],
'date': datetime.datetime.utcnow()}

CREATE:

1
2
3
4
def create_lines():
collection.insert_one(post)
# if we have multiple posts (an array of dictionaries)
collection.insert_many(posts)

READ:

1
2
3
4
def read_lines():
collection.find_one({'author': 'Mike'})
# if we want to find multiple records at the same time
collection.find_many({'author': 'Mike'})

UPDATE:

1
2
3
4
5
6
def update_lines():
collection.update_one({'author': 'Mike'},
{'$set': {'text': 'My second blog post!'}})
# if we want to update all the relevant records at the same time
collection.update_many({'author': 'Mike'},
{'$set': {'text': 'My second blog post!'}})

DELETE:

1
2
3
4
def delete_lines():
collection.delete_one({'author': 'Mike'})
# if we want to delete the matched records all at once
collection.delete_many({'author': 'Mike'})

I would say MongoDB is designed in a way that is very user-friendly.

Check out the pymongo website for more detailed instructions.
https://pymongo.readthedocs.io/en/stable/tutorial.html

Make the database in a simpler way and make it fast instead of designing complicated architecture of tables. MongoDB can do this with its document model to store things more naturally which can be later fit into your applications. Remember, it’s fast. I think it can make your life easier.

Sharding is basically to break up your data across servers to improve the performance and/or infrastructure.

A replica set of MongoDB for example is replicating your data on any of your servers while sharding is breaking up the data across your servers. The process is called MongoS using Shard Key. When you connect and send queries to MongoDB, MongoS will look up the data and get it from the right place and also merge data if necessary because they can be on different servers.

You can google it for more details, maybe you can find the wikipedia page if you are curious enough. Anyway, put it in a simple way, the paradox is talking about the contradiction between the reality that we have not met any aliens and the high probability there should be so many aliens in the cosmos because the universe is so big.

It occurs to me that when a society becomes more civilized, it kind of loses the impulse to invade as one way of exploration. You need to treat all those living things equally because you can see the tendency that we treat with each other more fairly no matter who you are, where you come from, or what are you. In the end, everyone lives happily in their chambers and forgets the big universe exists.

Or maybe, there could be a pandemic out there in the universe, everyone during this period of time needs to stay low and keep quiet. It is equivalent to the dark forest theory I know. But the twist here is that the pandemic can end, and it will.

No, I am not talking about Shannon’s Noisy-Channel Coding Theorem.

By information, I mean news in general. Because we are exposed to too much information on a daily basis, most of them become noise in our life. For example, it won’t hurt if you miss all the news for a week or a month. Your life goes on. And you know what, the most important news to you will find you anyway.

The world is watching Oprah’s interview with Harry and Meghan. And the media is waiting for the royal family to respond.

Based on what I have witnessed (on television of course), they are being normal people and they are being a normal family with normal family issues. People may judge or gossip the royal family members because they are some kind of celebrity. That’s fine when people don’t have anything meaningful in daily conversasion why not talking about someone else’s life.

But keep in mind they are just humans. At the end of the day, everyone has their own struggles in life, everyone has their own wars to fight.

I feel connected with the young couple, and I am very happy they got the courage to make the change.

I am not sure if I have mentioned this or not, CS50 courses are awesome. Great resources if you are looking for a place to start learning your CS knowledge. It is an entry-level course taught by David J. Malan in Harvard, and it is free. I think CS50 has motivated me in a way and convinced me that CS is something worth learning and doing as a career. Thanks to the internet, we can have the learning experience with such a wonderful teacher David Malan. Please google the course links or watch it on Youtube.

If you really want to be a coder, do it today.

I guess it is interesting to see a 4K video which is upscaled from an original 720p video. We can achieve this using ffmpeg.

1
ffmpeg -i input_720p.ts -vf scale=3840x2560:flags=lanczos -c:v libx264 -preset slow -crf 21 output_4k.ts

Even if you can do this, still, my suggestion will be, DON’T do it.

0%