• At 30 years old, is Ruby in a mid-life crisis or a renaissance?
    thenextweb.com
    Rubys creator, Yukihiro Matsumoto (Matz), released the first public version of the programming language in December 1995, making Ruby just shy of its 30th birthday. It spread across Japanese-language Usenet newsgroups, a popular way of exchanging conversation and media before the World Wide Web, and then reached broader communities throughout the late 1990s.This was thanks to Rubys friendly community and, in no small part, thanks to Matz. (The community has a motto, Matz is nice, and so we are nice.) At this years annual European Ruby Konferenze EuRoKu in Sarajevo, Matz said he created Ruby because he was lazy and full of hubris.That doesnt sound like a justification for creating and maintaining a programming language for 30 years, but its a sign of his derisive humbleness that feeds Ruby and has kept it a generally welcoming community over the decades.30 years of Ruby historyThe programming language emerged when the rapid growth of web-related technologies embraced lightweight, easier-to-learn, and easier-to-run languages such as PHP and Python. While all three languages have myriad other uses, timing and external factors often propelled them into broader popularity. For Ruby, this was the Rails framework in 2004 and two books Dave Thomass Pragmatic Programmer in 1999 and WHYS (poignant) Guide to Ruby in 2005*.The of EU techThe latest rumblings from the EU tech scene, a story from our wise ol' founder Boris, and some questionable AI art. It's free, every week, in your inbox. Sign up now!While Thomass book didnt cover Ruby in detail, it mentions it, and the author continued to promote the language for many years after publishing it. The book, in general, has been a long-term success, and contributed to increasing interest in Ruby in its early life.Sometimes, Ruby on Rails feels like a blessing and a curse for Ruby itself. To many developers, they are one and the same thing. Rails events typically have more attendees. Many of the recent features and changes in Ruby came upstream from Rails.Finally, Rails creator and founder of 37Signals, David Heinemeier Hansson (DHH), is a far more recognised name in the wider programming and tech community and is a vocal presence online. One attendee at EuRoKu I spoke to stated that as much as the community doesnt want to admit it, the two projects are highly connected.Many Web 2.0 sites that emerged in the early 2000s ran on Rails, and many still do (at least in part), including Airbnb, GitHub, Twitter (now X), Netflix, and Shopify (another major Ruby contributor and sponsor). Rails introduced many features that any older developer (like myself) will remember how groundbreaking they were, and many younger developers will now take it for granted. As a Drupal PHP developer at the time, I remember looking at features such as database table creation, management, and migration with envy.While interest and search term tracking for Rails shows at a quarter of what it once was, actual usage remains reasonably close to its peak. This shows that many developers using it are at a senior level and largely know what theyre doing.The 2024 Planet Argon survey confirms this: nearly 70% of respondents had more than seven years experience and have run their applications for about the same length of time. I dont know how many new projects choose Rails, but there are enough pre-existing ones to maintain a healthy interest for a 20-year-old project.If you remove the several-year peak of Rubys interest after Rails release, then Ruby is as popular as it was 30 years ago. According to Tiobe statistics, its slightly more popular. The 2023 Stack Overflow survey puts Rubys popularity at 16 out of 50 languages, and an IEEE survey from 2024 and PYPL reports about the same.Its easy to draw negative or inaccurate statistical comparisons to an unprecedented blip, but abstract them out over time, and you see a different story.Every language with a few decades under its belt has a degree of technical or community baggage, and I felt this same impression with Ruby in general and at the EuRuKo event. The community was friendly and welcoming but full of references and name drops that meant nothing to me. Granted, all communities do this to a degree, and maybe other events support newcomers, but there were few beginner-level talks.The next 30 yearsBut enough of the distant past. What has Ruby recently added, or changed, or planned to keep the current developers interested and maybe attract new ones?Ruby is an interpreted language, meaning its converted from human-readable to machine-runnable code when run, often in a virtual machine that runs on a physical machine. One modern criticism of Ruby, and all interpreted languages, is that they are too slow for the scale of modern applications.Ruby has a default interpreter, CRuby (formerly Matzs Ruby Interpreter), that translates the code into instructions run by the Ruby virtual machine. But Ruby and the community have added alternative and more performant interpreters, especially in the past few years, including multiple just in time (JIT) compiler options, which is a popular technique for bringing compiled code speed to interpreted languages.Other programming languages, such as C, C++, and Rust, are compiled languages, turning human-readable code into machine-readable code before its run. While not primarily designed for running as a compiled language, other options make it possible with Ruby.However, compiling languages is nothing new, and as I mentioned in my KubeCon EU wrap-up, WebAssembly (WASM) is the present for some and the future for many. Principally, WASM lets you run supported languages in the browser (but also now offers much more, maybe thats a future post), bringing complex and powerful applications to the browser. Since 2022, Ruby has been able to compile to WASM. If youve used Mastodon in the browser, its a Ruby on Rails application running as WASM.When Ruby began life, monoliths were the common application architecture pattern one large codebase written in one language that handles all functionality and services. In recent years, microservices has become the more popular architectural design, at least in an ideal world.Instead of one large, multifunctional, monolingual codebase, an application is broken up into a diverse array of code bases and languages that communicate with each other. Ruby was never really designed with this architecture in mind, and you can track its decline along parallel lines with the increase in microservices.In recent years, Ruby has added features to keep up with changes that may surprise or tempt non-Ruby developers. These include asynchronous and threaded code, allowing applications to communicate simultaneously with other applications and services.Many modern languages support these features, but Rubys syntax is simpler than JavaScript. Developers at EuRuKo were excited by some of the other forthcoming features, all of which continue to add creative options for coding with the language.While many developers may now dismiss Ruby as an option to start with, it has also inspired many other languages directly and indirectly that may suit the contemporary microservices-fuelled developer.Elixir, first appearing 12 years ago, drew inspiration from Ruby, and its creator, Jos Valim, came from the Ruby community. Elixir is more optimised for high concurrency and low latency, making it well-suited for finance and telecommunications industries.Crystal, created ten years ago, also has members of the Ruby community as maintainers. Its syntax is more inspired by Ruby but adds features that make the language more stable and reliable, including running as compiled instead of interpreted.Community motivatedWhy do long-term Ruby developers still use it despite the plethora of new and shiny options they can choose from? Dave Thomas told me about how he discovered Ruby amongst dozens of other languages he played with on Usenet forums back in the 1990s. I was blown away. I played with Ruby for a day. I played with it the next day. And I kept playing with it after that, and it became my programming language of choice when I had a choice.And why does Thomas continue to use Ruby 30 years later? Ruby lets you find ways to express yourself without dictating too much. Like when you write prose and are trying to find the right phrasing and structure for your words, Ruby lets you do the same thing with code. You can experiment with nice ways to express things, not just one way.I am not likely to switch any of my current projects to Ruby, and I am unsure how many developers established using other languages would either. However, one attitude I heard over and over again when speaking with the Ruby community was freedom of creative choice.Many other programming language communities are full of advice on the right way to do things, which is, of course, different, depending on who you speak to. The Ruby community follows a different approach, providing gently opinionated tools to let you find your own way.The technical world is full of trends that come and go and people who tell you that youre wrong for your decisions. If the Ruby community is one of the few that doesnt judge, then no matter its trend or usage percentages, long may it last._______* If you havent read WHYs guide, its available for free and is in equal parts programming book, comic, and surreal journey of self-realisation. Because of this strange combination, its divisive. Some say it was the only book they ever learned programming from. Others find it an utterly confounding and confusing mess. Still, its unique style and mysterious author also increased interest in the language during its nascent days. Story by Chris Chinchilla Technology writer, podcaster, and video maker by day. Fiction, games, and music by night.chrischinchilla.com Technology writer, podcaster, and video maker by day. Fiction, games, and music by night.chrischinchilla.com Get the TNW newsletterGet the most important tech news in your inbox each week.Also tagged with
    0 Comments ·0 Shares ·138 Views
  • Cybercriminals Use Excel Exploit to Spread Fileless Remcos RAT Malware
    thehackernews.com
    Nov 11, 2024Ravie LakshmananVulnerability / Network SecurityCybersecurity researchers have discovered a new phishing campaign that spreads a new fileless variant of known commercial malware called Remcos RAT.Remcos RAT "provides purchases with a wide range of advanced features to remotely control computers belonging to the buyer," Fortinet FortiGuard Labs researcher Xiaopeng Zhang said in an analysis published last week."However, threat actors have abused Remcos to collect sensitive information from victims and remotely control their computers to perform further malicious acts."The starting point of the attack is a phishing email that uses purchase order-themed lures to convince recipients to open a Microsoft Excel attachment.The malicious Excel document is designed to exploit a known remote code execution flaw in Office (CVE-2017-0199, CVSS score: 7.8) to download an HTML Application (HTA) file ("cookienetbookinetcahce.hta") from a remote server ("192.3.220[.]22") and launch it using mshta.exe.The HTA file, for its part, is wrapped in multiple layers of JavaScript, Visual Basic Script, and PowerShell code to evade detection. Its main responsibility is to retrieve an executable file from the same server and execute it.The binary subsequently proceeds to run another obfuscated PowerShell program, while also adopting an array of anti-analysis and anti-debugging techniques to complicate detection efforts. In the next step, the malicious code leverages process hollowing to ultimately download and run Remcos RAT."Rather than saving the Remcos file into a local file and running it, it directly deploys Remcos in the current process's memory," Zhang said. "In other words, it is a fileless variant of Remcos."Remcos RAT is equipped to harvest various kinds of information from the compromised host, including system metadata, and can execute instructions remotely issued by the attacker through a command-and-control (C2) server.These commands allow the program to harvest files, enumerate and terminate processes, manage system services, edit Windows Registry, execute commands and scripts, capture clipboard content, alter a victim's desktop wallpaper, enable camera and microphone, download additional payloads, record the screen, and even disable keyboard or mouse input.The disclosure comes as Wallarm revealed that threat actors are abusing Docusign APIs to send fake invoices that appear authentic in an attempt to deceive unsuspecting users and conduct phishing campaigns at scale.The attack entails creating a legitimate, paid Docusign account that enables the attackers to change templates and use the API directly. The accounts are then used to create specially crafted invoice templates mimicking requests to e-sign documents from well-known brands like Norton Antivirus. "Unlike traditional phishing scams that rely on deceptively crafted emails and malicious links, these incidents use genuine DocuSign accounts and templates to impersonate reputable companies, catching users and security tools off guard," the company said."If users e-sign this document, the attacker can use the signed document to request payment from the organization outside of DocuSign or send the signed document through DocuSign to the finance department for payment."Phishing campaigns have also been observed leveraging an unconventional tactic called ZIP file concatenation to bypass security tools and distribute remote access trojans to targets.The method involves appending multiple ZIP archives into a single file, which introduces security issues due to the discrepancy in which different programs like 7-Zip, WinRAR, and the Windows File Explorer unpack and parse such files, thereby resulting in a scenario where malicious payloads are overlooked."By exploiting the different ways ZIP readers and archive managers process concatenated ZIP files, attackers can embed malware that specifically targets users of certain tools," Perception Point noted in a recent report."Threat actors know these tools will often miss or overlook the malicious content hidden within concatenated archives, allowing them to deliver their payload undetected and target users who use a specific program to work with archives."The development also comes as a threat actor known as Venture Wolf has been linked to phishing attacks targeting Russian manufacturing, construction, IT, and telecommunications sectors with MetaStealer, a fork of the RedLine Stealer malware.Found this article interesting? Follow us on Twitter and LinkedIn to read more exclusive content we post.SHARE
    0 Comments ·0 Shares ·123 Views
  • Studio AVC completes contemporary London townhouse
    www.bdonline.co.uk
    Source: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVC1/7show captionStudio AVC has completed Frame House, a new home within a predominantly Victorian conservation area.The design respects the heritage of the neighbourhood, incorporating materials and architectural details that reference nearby Victorian architecture.Key features include angled brick soffits and recessed glazing inspired by local decorative eaves brackets, along with dog-tooth brickwork that echoes the intricate patterns found on surrounding buildings. The front faades geometry also aligns with the canted bay windows characteristic of nearby homes.Ayca Vural-Cutts, founding director of Studio AVC, said: Frame House embodies an innovative architectural approach that celebrates light, views, and openness while balancing privacy within a contemporary urban setting. At its core, the design is distinguished by an angled faade that both frames and directs the interiors connection to the outside world, enhancing natural light and creating dynamic sightlines.Inside, the layout maximises light and space, with floor-to-ceiling windows and a central open-plan kitchen and dining area. Large sliding doors open to a terraced garden, integrating the indoor and outdoor spaces.Bedrooms on the upper floors are framed by Juliette balconies, providing views of the surrounding landscape. Reflective solar-control glass on the front faade enhances privacy while maintaining a visual connection to the street.Source: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVCSource: Studio AVC1/6show captionConstructed from handmade bricks and sustainable materials, Frame House emphasises craftsmanship and energy efficiency. Insulated building fabric, a new heating system, and a Mechanical Ventilation with Heat Recovery (MVHR) system reduce energy consumption, while a biodiverse roof supports local ecology.According to the designers, the buildings environmental performance marks a significant improvement over previous structures on the site, with solar studies guiding the integration of rooflights and shading to prevent overheating.Project dataStart on site: August 2023Completion date: October 2024Gross internal floor area: 190 mGross (internal + external) floor area: 240 mArchitectural team: Studio AVCStructural engineer: Anderson Consulting EngineersPrincipal designer: Studio AVCApproved building inspector: Stroma Building ControlMain contractor: Onebuild Group LtdPhotographs courtesy of Studio AVCSuppliersFacade: Vande Moortel (brickwork)Sliding door systems: MinimaAll furniture and lighting: SCP ContractsFloors: The Natural Wood Floor Company and Lazenby for polished concreteKitchen: The Wood WorksMVHR design: Green Building Store
    0 Comments ·0 Shares ·155 Views
  • Today's NYT Connections: Sports Edition Hints and Answers for Nov. 11, #49
    www.cnet.com
    Looking for the most recentregular Connections answers? Click here for today's Connections hints, as well as our daily answers and hints for The New York Times Mini Crossword, Wordle and Strands puzzles.Have you been enjoying the New York Times Connections puzzle? Now there's a new version of the game focusing on sports-related words. It's simply called Connections: Sports Edition, and we have hints and the answers.For now, the game is in beta, which means the Times is testing it out to see if it's popular before adding it to the site's Games app. You can play it daily for the next few weeks for free and then we'll have to see if it sticks around.Read more: NYT Has a Connections Game for Sports Fans. I Tried ItHow to play Connections: Sports EditionThe rules are pretty much the same as the regular game. You're given 16 words and asked to put them into four groups that are somehow connected. The main difference is that all the words and categories have some kind of sports tie-in. Sometimes the categories seem obvious, but the game attempts to trick you by using sports-related words that can fit into more than one group. And the four groups of words have different difficulty levels. Yellow is the easiest and purple the hardest, but you won't know which color group is which until you solve the puzzle.But you don't have to be a sports obsessive to solve Connections: Sports Edition, though it helps to know a little bit about a bunch of different sports and athletes. The words might include player names, team names or sport-related activities.Hints for today's Connections: Sports Edition groupsHere are four hints for the groupings in today's Connections: Sports Edition puzzle, ranked from the easiest yellow group to the tough (and sometimes bizarre) purple group.Yellow group hint: Get your racket.Green group hint:Flips and tricks.Blue group hint: Bad luck.Purple group hint: Not Man City, but...Answers for today's Connections: Sports Edition groupsYellow group: Tennis grand slams.Green group: American gold medal-winning gymnasts.Blue group: Famous sports "curses."Purple group: ____ United.Read more: Wordle Cheat Sheet: Here Are the Most Popular Letters Used in English WordsWhat are today's Connections: Sports Edition answers? The completed NYT Connections: Sports Edition puzzle for Nov. 11, 2024. NYT/Screenshot by CNETThe yellow words in today's ConnectionsThe theme is tennis grand slams. The four answers are Australian, French, US and Wimbledon.The green words in today's ConnectionsThe theme is American gold medalwinning gymnasts. The four answers are Biles, Douglas, Lee, Liukin.The blue words in today's ConnectionsThe theme is famous sports "curses." The four answers are Bambino, Billy Goat, Drake and SI cover.The purple words in today's ConnectionsThe theme is ____ United. The four answers are Atlanta, DC, Manchester and Newcastle.
    0 Comments ·0 Shares ·146 Views
  • Today's NYT Connections Hints, Answers and Help for Nov. 11, #519
    www.cnet.com
    Looking for the most recent Connections answers? Click here for today's Connections hints, as well as our daily answers and hints for The New York Times Mini Crossword, Wordle and Strands puzzles.Need the answers for theNew York Times Connections puzzle? To me,Wordle is more of a vocabulary test, but Connections is more of a brainteaser. You're given 16 words and asked to put them into four groups that are somehow connected. Sometimes they're obvious, but game editor Wyna Liu knows how to trick you by using words that can fit into more than one group. Read on for today's Connections hints and answers.There's also news in the Connections world. The Times now has a Connections Bot, like the one it's had for some time for Wordle. Go there after you play to receive a numeric score and to have the program analyze your answers. And players who are registered with the Times Games section can now nerd out by following their progress, including number of puzzles completed, win rate, number of times they nabbed a perfect score and their win streak.Read more:Hints, Tips and Strategies to Help You Win at NYT Connections Every TimeHow to play ConnectionsPlaying is easy.Winning is hard. Look at the 16 words and mentally assign them to related groups of four. Click on the four words you think go together. The groups are coded by color, though you don't know what goes where until you see the answers. The yellow group is the easiest, then green, then blue, and purple is the toughest. Look at the words carefully and think about related terms. Sometimes the connection has to do with just a part of the word. Once, four words were grouped because each started with the name of a rock band, including "Rushmore" and "Journeyman."Read more:New NYT Connections Game for Sports Fans Lets Players Swing for the FencesHints for today's Connections groupsHere are four hints for the groupings in today's Connections puzzle, ranked from the easiest, yellow group to the tough (and sometimes bizarre) purple group.Yellow group hint: Snickers is one.Green group hint: Essence.Blue group hint: Strapless or underwire.Purple group hint: Larry of the NBA.Answers for today's Connections groupsYellow group: Chocolate bars.Green group: Gist.Blue group: Kinds of bras.Purple group: ____ bird.Read more: Wordle Cheat Sheet: Here Are the Most Popular Letters Used in English WordsWhat are today's Connections answers? The completed NYT Connections puzzle for Nov. 11, 2024, #519. NYT/Screenshot by CNETThe yellow words in today's ConnectionsThe theme is chocolate bars. The four answers are Crunch, Dove, Mars and Payday.The green words in today's ConnectionsThe theme is gist. The four answers are core, meat, substance and thrust.The blue words in today's ConnectionsThe theme is kinds of bras. The four answers are demi, push-up, sports and wireless.The purple words in today's ConnectionsThe theme is ____ bird. The four answers are Big, early, Lady and Sue.
    0 Comments ·0 Shares ·149 Views
  • Harry Potter - Blender Fan Art + Breakdown
    www.blendernation.com
    I tried my hand at recreating a complex scene from my favorite movie. This was also a task from "Blender Camp by JCenter".It was necessary to recite a small scene from any movie as accurately as possible.Of course, I chose Harry Potter, no other options were even considered.Weeks without sleep, but I did it! Did I manage to do it?..
    0 Comments ·0 Shares ·184 Views
  • 0 Comments ·0 Shares ·140 Views
  • Apple illegally threatened workers over their talk about pay and remote work, feds charge
    www.spokesman.com
    Apple illegally threatened workers over their talk about pay and remote work, feds chargeNov. 6, 2024Updated Wed., Nov. 6, 2024 at 4:45 p.m. Apple Parks spaceship campus is seen from this drone view in Sunnyvale, California on Oct. 21, 2019. (Jane Tyska/Bay Area News Group/TNS) By Ethan Baron The Mercury News One Apple employee was allegedly threatened with unspecified reprisals if they talked about their performance bonus. Another was purportedly ordered to delete a post on social media about how to continue working remotely at the company. One was allegedly told to stop talking about pay on internal messaging systems and warned that the tech giant was monitoring these discussions. And another, software engineer Cher Scarlett, was purportedly railroaded out of the company after creating an online pay survey for workers at the trillion-dollar company.Those claims form the basis of a federal government charge accusing the Cupertino iPhone giant of illegally interfering with, restraining and coercing employees exercising their rights under the National Labor Relations Act to help each other with workplace issues.Apple did not immediately respond to requests for comment on the administrative complaint, filed Oct. 31 by the National Labor Relations Board.The legal action by Scarlett the former employee and the agency that enforces the Labor Relations Act also claims that Apple denied an employees request to create an internal-messaging channel about pay equity, telling the worker the messaging platform was only for business purposes despite letting other employees use it for non-business topics.Additionally, the complaint alleges, Apple told an employee not to speak to the press after they were quoted in the media about workplace issues.The worker who was ordered to remove the social-media post about remote work was also asked by a human resources representative to provide names of other Apple employees the person had talked with about working remotely, the complaint claims.A manager in a phone call told a worker that Apple did not want employees talking about wages or pay equity, the complaint alleges.The alleged incidents are purported to have happened in 2021.According to the complaint, Scarlett helped found Apple Too, modeled after the #MeToo movement against sexual violence, and intended to encourage Apple employees to share stories and create transparency around incidents of discrimination, inequity, racism and sexism they experienced in the course of their employment at Apple.In the summer of 2021, Scarlett created and posted online a pay-equity survey where Apple employees could anonymously share information about their compensation, job categories, experience and personal information in order to identify potential pay disparities. Scarlett posted the survey on her personal account on social media platform Twitter, now called X.The labor board and Scarlett argue in the complaint that she was forced to leave the company by its response to her work on behalf of her fellow Apple workers. She announced on Twitter in November 2021 that she was leaving the company; technology website The Verge reported that she had reached a settlement with Apple.Apple allegedly cracked down on other employees who took action in response to Scarletts advocacy. Apple demanded that one worker refrain from participating in the wage survey and was threatened with unspecified reprisals if they did, or if they continued to take part in wage discussions on the internal messaging platform, the complaint claims.An Apple human resources manager refused to meet collectively with Apple workers concerned about the results of the wage survey, and insisted on individual meetings, the complaint alleges. That manager, Jeannie Wong, in a videoconference interrogated an employee about why and how the employee got involved with Scarletts pay equity survey and who else was involved, the complaint claims.The Spokesman-Review NewspaperLocal journalism is essential.Give directly to The Spokesman-Review's Northwest Passages community forums series -- which helps to offset the costs of several reporter and editor positions at the newspaper -- by using the easy options below. Gifts processed in this system are not tax deductible, but are predominately used to help meet the local financial requirements needed to receive national matching-grant funds.Meet Our JournalistsSubscribe now to get breaking news alerts in your email inboxGet breaking news delivered to your inbox as it happens.Sign up
    0 Comments ·0 Shares ·153 Views
  • The Art of Mehrdad Malek
    www.iamag.co
    Discover the art of Mehrad Malek, who is currently working as a Game Artist at Enlightened Robot. Mehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad MalekMehrdad Malek
    0 Comments ·0 Shares ·158 Views
  • The art Of Huyy Nguyen
    www.iamag.co
    Discover the Art of Nguyn Giang Huy, Freelance / Concept Artist for Arena of Valor (VN), BlackStar Studio (VN), Funtab, Art Leader at Zitga, Splash art Artist at WestStudio. Nguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang HuyNguyn Giang Huy
    0 Comments ·0 Shares ·156 Views