Thông báo: Nâng cấp EzyPlatform lên 0.3.6

EzyPlatform 0.3.6 được nâng cấp và bổ sung thêm các tính năng: Cập nhật tính năng import người dùng từ tập tin. Nâng cấp phiên bản các thư viện. Cho phép một admin xem được toàn bộ media hay không. Cập nhật lớp PaginationParameters. Bổ sung ngôn ngữ tiếng Trung. Cập nhật lớp Numbers. Bổ sung phương thức javascript flattenObject. Bổ sung phương thức javascript để đọc tập tin csv. Bổ sung lớp LocalDateTimeRangeModel. Cập nhật tính năng import người dùng từ tập tin Cho phép cập nhật thông tin địa chỉ của người dùng. Nâng cấp phiên bản các thư viện Nâng cấp các thư viện thuộc hệ sinh thái ezyfox lên 1.2.9 Cho phép một admin xem được toàn bộ media hay không Mặc định một quản trị viên sẽ không được phép truy cập vào toàn bộ media mà phải được cấp quyền. Cập nhật lớp PaginationParameters Bổ sung 2 hàm mới: public static String makeOrderBy( SortOrder sortOrder, boolean nextPage, String[] entityNames, String[] fieldNames ) public static String makePaginationCondition( SortOrder sortOrder, boolean nextPage, String[] entityNames, String[] fieldNames, String[] parameterNames ) Để cho phép truyền tên các tham số và entity thay vì mặc định là e.[field name]. Bổ sung ngôn ngữ tiếng Trung Đã bổ sung ngôn ngữ tiếng trung cho phần core cho giao diện quản trị. Cập nhật lớp Numbers Bổ sung thêm hai hàm mới: public static String toRandomText(long number, int minLength) { String suffix = String.valueOf(number); if (suffix.length() >= minLength - 1) { return "0" + suffix; } int randomLength = minLength - suffix.length() - 1; if (randomLength > 9) { randomLength = 9; } StringBuilder randomNumber = new StringBuilder(); for (int i = 0; i < randomLength; ++i) { randomNumber.append( ThreadLocalRandom.current().nextInt(1, 9) ); } int zeroLength = minLength - randomLength - suffix.length() - 1; if (zeroLength > 0) { for (int i = 0; i < zeroLength; ++i) { randomNumber.append("0"); } } return String.valueOf(randomLength) + randomNumber + suffix; } public static long fromRandomText(String randomText) { int randomLength = Integer.parseInt( randomText.substring(0, 1) ); if (randomLength == 0) { return Long.parseLong(randomText); } return Long.parseLong( randomText.substring(randomLength + 1) ); } Để cho phép tạo ra một chuỗi ngẫu nhiên có kiểm soát nhằm mục đích giữ nguyên được ý nghĩa của một chuỗi số với độ dài tối thiểu. Bổ sung phương thức javascript flattenObject Cho phép làm phẳng các đối tượng javascript lồng nhau thằng một đối tượng, ví dụ: { "user": { "id": 1, "name": "Dzung", "address": { "street": "Do Duc Duc", "city": "Ha Noi", "country": { "name": "Viet Nam", "code": "VN" } } } } Sẽ được làm phẳng thông qua hàm flattenObject để trở thành: { "user.id": 1, "user.name": "Dzung", "user.address.street": "Do Duc Duc", "user.address.city": "Ha Noi", "user.address.country.name": "Viet Nam", "user.address.country.code": "VN" } Bổ sung phương thức javascript để đọc tập tin csv Bổ sung thêm các hàm: ezyadmin.onCsvFileChanged = function(input, callback, includeFirstLine) { var file = input.files[0]; if (file) { var reader = new FileReader(); reader.onload = function(e) { var content = e.target.result; var rowsList = ezyadmin.parseCsvContent( content ); callback(file, rowsList); }; reader.readAsText(file); } } ezyadmin.parseCsvContent = function(content, includeFirstLine) { var lines = content.split('n'); var rows = []; if (lines.length) { var firstLine = lines[0]; var commas = firstLine.indexOf(',') >= 0 ? ',' : ';'; if (!includeFirstLine) { lines = lines.slice(1); } lines.forEach((line) => { rows.push(ezyadmin.readCsvLine(line, commas)); }); } return rows; } ezyadmin.readCsvLine = function (line, commas) { var cells = []; var cell = ''; var strs = line.split(commas); for (var i = 0; i < strs.length; ++i) { var str = strs[i].trim(); if (cell.startsWith('"')) { if (str.endsWith('"')) { cell += strs[i].slice(0, strs[i].lastIndexOf('"') + 1); cell = cell.slice(1, cell.length - 1); cells.push(cell.trim()); cell = ''; } else { cell += strs[i] + commas; } } else { if (str.startsWith('"')) { cell = strs[i].slice(strs[i].indexOf('"')); } else { cells.push(str); cell = ''; } } } return cells; }; Để đọc và bóc tách dữ liệu từ tập tin csv. Bổ sung lớp LocalDateTimeRangeModel Lớp này cho phép phân tích các khoảng thời gian từ dạng chuỗi sang dạng LocalDateTime.

Young Monkeys hân hạnh trở thành diễn giả tại Talkshow BAP Onmic

Mới đây, talkshow BAP Onmic 7 tổ chức bởi Công ty Cổ phần đầu tư và công nghệ BAP với chủ đề "Developer Career Path - Chuyện người trong nghề" đã diễn ra thành công tốt đẹp. BAP được biết đến là công ty phát triển outsource và offshore chất lượng cao với hơn 500 nhân viên đều là các chuyên gia trong lĩnh vực công nghệ. Talkshow “Chuyện người trong nghề" tổ chức nhằm mang đến nhiều góc nhìn giá trị cho các bạn trẻ trong ngành công nghệ thông tin.  Những nội dung chính:Anh Tạ Văn Dũng - nhà sáng lập Young Monkeys đã tham gia với vai trò diễn giả. Những chia sẻ chính của anh cho các bạn trẻ bao gồm: Career Path: 5 nấc thang phát triển sự nghiệp.Định hướng: Cách xây dựng mục tiêu và xác định lộ trình.Kinh nghiệm thực tế: Những bài học quý giá từ "người trong nghề."Buổi talkshow không chỉ cung cấp kiến thức bổ ích mà còn là cơ hội để các bạn trẻ giao lưu và nhận lời khuyên trực tiếp từ chuyên gia.Young Monkeys rất hân hạnh được hợp tác cùng BAP để tổ chức những hoạt động ý nghĩa như vậy, góp phần lan tỏa tri thức và tạo dựng cộng đồng phát triển nghề nghiệp bền vững.Kết luận:Talkshow đã khép lại với nhiều ấn tượng sâu sắc, tiếp thêm động lực cho các bạn trẻ đang tìm kiếm hướng đi trong sự nghiệp. Hãy theo dõi các sự kiện tiếp theo của Young Monkeys và BAP để không bỏ lỡ cơ hội phát triển bản thân nhé!

Young Monkeys tham gia workshop "Hợp tác phát triển nhân lực công nghệ tài chính” của Viện Công nghệ và Kinh tế số (BK Fintech)

Thứ Bảy, ngày 9 tháng 11 năm 2024 vừa qua, Viện Công nghệ và Kinh tế số (BK Fintech) thuộc Đại học Bách Khoa Hà Nội đã tổ chức workshop "Hợp tác phát triển nhân lực công nghệ tài chính," thu hút nhiều doanh nghiệp và chuyên gia trong ngành. Được thành lập từ ngày 31/01/2023, BK Fintech - tiền thân là Trung tâm Công nghệ và Kinh tế số. BK Fintech ra đời với mục tiêu kết nối hợp tác nghiên cứu và phát triển đa ngành, bao gồm Công nghệ thông tin, Toán, và Kinh tế. Viện hướng tới các hoạt động nghiên cứu và phát triển các sản phẩm có hàm lượng tri thức và tính sáng tạo cao, nhằm giải quyết các vấn đề thực tế của đời sống.Workshop được tổ chức nhằm mục đích thúc đẩy hợp tác phát triển nhân lực trong lĩnh vực công nghệ tài chính. Đây là cơ hội để các doanh nghiệp, tổ chức giáo dục và các chuyên gia trong ngành gặp gỡ, trao đổi và chia sẻ kinh nghiệm, từ đó tìm ra những giải pháp tối ưu cho việc đào tạo và phát triển nguồn nhân lực chất lượng cao.Anh Tạ Văn Dũng - người sáng lập tổ chức mã nguồn mở Young Monkeys đã vinh dự tham gia buổi workshop. Trong phần phát biểu của mình, anh Dũng đã đóng góp ý kiến về việc “Nên đưa thêm nhập môn kinh doanh vào giáo trình giảng dạy” bởi nó không chỉ giúp sinh viên có cái nhìn toàn diện hơn về ngành công nghệ tài chính mà còn trang bị cho họ những kỹ năng cần thiết để thành công trong môi trường kinh doanh hiện đại.Đại diện Young Monkeys, anh Dũng cũng đã bày tỏ mong muốn được hợp tác chặt chẽ với BK Fintech để tìm ra nguồn nhân lực chất lượng cho các dự án plugin EzyPlatform mảng Fintech. Đặc biệt, Young Monkeys rất quan tâm đến việc phát triển nguồn nhân lực về tài chính công nghệ trong bối cảnh môi trường tài chính liên tục biến động hiện nay. Sự hợp tác này hứa hẹn sẽ mang lại nhiều cơ hội và lợi ích cho cả hai bên, đồng thời góp phần thúc đẩy sự phát triển của ngành công nghệ tài chính tại Việt Nam.Buổi workshop đã kết thúc thành công tốt đẹp, mở ra nhiều triển vọng hợp tác và phát triển trong tương lai.