Viblo CV (New version)

DISCUSSIONS

Aug 10th, 2018 7:20 AM

mình dùng trên ubuntu 18.04 nó ko được ổn lắm

0
Aug 10th, 2018 7:10 AM

Mình góp ý chút:

  • Câu 1: https://github.com/jupeter/clean-code-php, mọi người có thể tham khảo thêm tại đây nhé
  • Câu 2: PHP ngày một chặt chẽ lên rồi đặc biệt là từ version 7.0 trở lên, hỗ trợ type hints, return types rồi lên 7.2 có cả visiblity cho constant.
  • Câu 5: Biết càng rộng thì càng tốt nhưng nhất thiết là phải thật sâu vào 1 cái trước đã, chứ cái gì cũng biết mà không cái gì sâu thì cũng hơi tù.
+1
Aug 10th, 2018 6:35 AM

@yukihoaian Bạn mới học iOS sơ sơ + add vào dự án thì chắc là sẽ có người hướng dẫn bạn phải không. Mình nghĩ tốt nhất là bạn nên chủ động hỏi người hướng dẫn của bạn. Vì người đó (có thể) là người rõ nhất về cả business và code, nên giải pháp của người đó sẽ chính xác hơn cả.

Còn cái này

Message from debugger: Terminated due to memory issue"

có thể là vì bạn load quá nhiều video 1 lúc, dẫn đến việc tràn bộ nhớ (app dùng nhiều RAM quá bị out)

Trong trường hợp này bạn chỉ nên chạy 1 video 1 lúc, các video chưa chạy sẽ không load AVPlayer lên, mà chỉ hiển thị ảnh thumbnail cho nó. Đơn giản vì người dùng cũng không cần thiết phải xem 2 video chạy 1 lúc, việc đó chỉ làm app của bạn tốn nhiều bộ nhớ hơn mà thôi.

+1
Aug 10th, 2018 6:31 AM

Góp vui cách tương ứng với số 3 mà cái này để format input khi gõ số (gõ tới đâu nó format tới đó). Em cũng GG trong quá trình làm việc thôi mong ae không ném đá ^^. Hic ko biết format code ntn ae thông cảm.

//use format_number('#cus_task_price');

format_number = function(id){

    $('body').on('keydown',id,function(event) {
        if( event.ctrlKey === true ){
            if( event.keyCode != 86 ){
                event.preventDefault();
            }
        }else if(event.keyCode == 8 || event.keyCode == 9  ){
        }else if( ( event.keyCode < 48 || event.keyCode > 57 ) && (event.keyCode < 96 || event.keyCode > 105)){
            event.preventDefault();
        }
    });

    $('body').on('keyup',id,function(event) {
        var temp = $(this).val().replace(",", '');
        temp =  temp.replace(/\,/g,"");
        $(this).val( temp.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") );
    });
};
+1
Aug 10th, 2018 6:28 AM

@thangtd90 Theo em hiểu thì vấn đề của bạn ấy là thế này

  • Có 1 job to phải thực hiện làm 5000 lần 1 job nhỏ, mỗi lần cách nhau 16s
  • Mỗi job nhỏ thì 1 lần curl 3 lần, tốn tài nguyên chắc là tốn bandwidth (?)
  • Cần phải log lại kết quả của từng job nhỏ

Schedulling hay crontab thì chỉ chạy được theo từng phút, hiện bạn đang xử lý thế nào để cứ 16 giây lại xử lý 1/5000 của job nhỉ?

  • Bạn ý có ghi rồi, là có time_start cho từng job, từng phút thì lấy các job đã đến giờ chạy ra để chạy (1 job to thì 1 phút có 3,4 job con được chạy)
  • Vụ web đơ em cũng đang hỏi 😄 Đợi bạn ấy vào confirm rồi nghĩ xem có cách nào không 😄
+1
Aug 10th, 2018 4:41 AM

Nhưng khi cần dùng đến thì toàn phải gg thần trưởng, chứ tự viết mà không có gg thì không viết được =)) Chỉ có idea thôi bác ạ 😄

0
Aug 10th, 2018 4:10 AM

Thực sự đọc giải thích của bạn khó hiểu quá 😂 Mình ngồi đọc đi đọc lại không dưới chục lần nhưng vẫn ... chưa hiểu gì cả 😦

Bạn giải thích thêm một chút được không

Cứ mỗi 16s giây lại phải làm 1 lần

"làm 1 lần" ở đây là làm cái gì? Bạn đang làm thế nào để căn 16 giây để thực hiện việc đó.

làm xong sẽ lưu lại log bao gồm trạng thái và kết quả

lưu trạng thái và kết quả của cái gì? bởi theo bạn nói là chạy 5000 lần mới xong 1 job, nên mình không rõ là lưu lại log thì là log của cái gì 🤔

Jobs khi sử lý cần phải curl 3-5 lần rất tốn tài nguyên

Tức là 1 job của bạn chạy 5000 lần một cái gì đó, và trong đó có 3-5 lần là curl, không biết mình hiểu thế có đúng không 🤔 Bạn đang curl cái gì mà lại tốn tài nguyên? Hiện quá trình đó đang xử lý mất bao lâu? Từ đó tính ra để chạy hết 1 job hiện đang cần bao nhiêu thời gian?

cứ 16 giây thì phải tạo hoặc update 80.000 rows

Schedulling hay crontab thì chỉ chạy được theo từng phút, hiện bạn đang xử lý thế nào để cứ 16 giây lại xử lý 1/5000 của job nhỉ? Và sao lại cần phải tạo hoặc update 80,000 rows vậy? Bạn tạo mới, hay update 80,000 rows này như thế nào, cần dùng đến khoảng bao nhiêu câu query?

=> Web đơ

Web đơ là do web cũng request đến bảng chứa 80,000 rows được tạo mới/update, mình hiểu thế đúng không nhỉ?

Bạn nên đưa thêm thông tin chi tiết thì mọi người sẽ có thể hiểu và support bạn được tốt hơn 😄

+1
Aug 10th, 2018 4:05 AM

Bài viết rất hay, cảm ơn bạn đã chia sẻ

0
Aug 10th, 2018 4:04 AM

@yukihoaian Còn vụ video, trường hợp streaming thì mình làm như sau.

 if let url = URL(string: "http://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4") {
            player = AVPlayer(url: url)
            
           //Tạo ra layer chứa frame của AVPlayer
            let playerLayer = AVPlayerLayer(player: player)
            playerLayer.frame = view.frame
            view.layer.addSublayer(playerLayer)

            player?.play()
        }
+1
Aug 10th, 2018 3:58 AM

@yukihoaian ah mình xin lỗi. Mình tưởng code bạn tự học 😄 Leak memory fix được bạn. Vì mình không debug nên hơi khó nói.

Bạn tham khảo về leak memory tại đây nhé: https://niviki.com/quan-ly-bo-nho-trong-swift/

0
Aug 10th, 2018 3:54 AM

@Katoji à anh ơi! còn vụ "leak memory " mình fix được không anh? nãy em chạy app bị văng ra vì lỗi này nữa: "Message from debugger: Terminated due to memory issue"

0
Aug 10th, 2018 3:52 AM

@Katoji dạ tại code này em làm dự án của cty. nên public hơi khó 😄. để em hỏi chị kia thử. em mới học IOS sơ sơ nhưng vào cty đưa ngay cái app này em cũng đang bế tắc. 😄

0
Aug 10th, 2018 3:43 AM

Hay quá 😃

+1
Aug 10th, 2018 3:42 AM

@yukihoaian Mình ở HN cơ : )) bạn post code lên github đi. Như vậy tiện theo dõi hơn.

0
Aug 10th, 2018 3:39 AM

@Katoji anh có ở SG không? cuối tuần hẹn đi cf chỉ giáo em cho tiện được không anh?

0
Aug 10th, 2018 3:22 AM
foo = "bar"
foo.instance_eval do
  def hi
    "you smell"
  end
end

foo.hi # => "you smell"

bar = "foo"
bar.class.class_eval do
  def hello
    "i can smell you from here"
  end
end

bar.hello # => "i can smell you from here"

2 cái ví dụ này khác nhau chỗ nào vậy ban? foo và bar cùng kiểu (đều được gán bằng 1 string). rồi thì xuống cuối gọi foo.hi tương tự bar.hello

thật là 2 ví dụ này nó chỉ ra được điểm khác nhau giữa instance_val và class_val hả bạn?

0
Aug 10th, 2018 2:56 AM

Theo mình hiểu thì jobs được chạy phía backend sao lại làm web (phần frontend phía trên) đơ được bạn nhỉ?

Trên frontend phải hiển thị được trạng thái đang chạy của jobs à?

0
Aug 10th, 2018 2:03 AM

"vấn đề này là ta nhóm các class methods trong một module", là module methods chứ bạn? class method là chỉ những method của class mà, ở đây đang thao tác trên module.

0
Aug 10th, 2018 1:45 AM

Thông thường chỉ cần play ở main thread là sẽ mượt mà thôi. Nhưng hiện tượng của bạn mình chưa nghĩ ra được nguyên nhân nên muốn xem code đó.

0
Aug 10th, 2018 1:41 AM

I have problem. where read file text with 100000 line text. my computer has crash. How to Solve a Problem . Thanks you.

0
Let's register a Viblo Account to get more interesting posts.