diff --git a/_data/opencollective.json b/_data/opencollective.json index 46c7859f..f81ee2a5 100644 --- a/_data/opencollective.json +++ b/_data/opencollective.json @@ -1,4 +1,13 @@ [ + { + "name": "Graming TikTok Likes", + "url": "https://graming.com/buy-tiktok-likes/", + "last_payment": 10.0, + "all_time": 10.0, + "since": "Oct 2, 2024", + "time_last_payment": "Oct 2, 2024", + "listed": true + }, { "name": "Paulo Gabriel da Silveira Sarlo", "last_payment": 25.0, @@ -8,7 +17,7 @@ "listed": true }, { - "name": "Buy Instagram followers", + "name": "Myinstafollow - Buy Instagram Followers", "url": "https://myinstafollow.com/", "last_payment": 25.0, "all_time": 25.0, @@ -28,63 +37,63 @@ "name": "Ausm2Kind", "url": "https://ausm2kind.de/", "last_payment": 5.0, - "all_time": 5.0, + "all_time": 10.0, "since": "Sep 5, 2024", - "time_last_payment": "Sep 5, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "Best Instagram Growth Service", "url": "https://www.reddit.com/r/TikTokExpert/comments/1egk7tn/whats_the_best_instagram_growth_service_or_tool/", "last_payment": 10.0, - "all_time": 10.0, + "all_time": 20.0, "since": "Sep 4, 2024", - "time_last_payment": "Sep 4, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "TikTok Expert: Buy TikTok Followers", "url": "https://www.reddit.com/r/TikTokExpert/comments/1f812o7/best_and_cheapest_site_to_buy_tiktok_followers/", "last_payment": 10.0, - "all_time": 10.0, + "all_time": 20.0, "since": "Sep 4, 2024", - "time_last_payment": "Sep 4, 2024", + "time_last_payment": "Oct 7, 2024", "listed": true }, { "name": "Que Narras", "url": "https://www.quenarras.com/", "last_payment": 5.0, - "all_time": 5.0, + "all_time": 10.0, "since": "Sep 3, 2024", - "time_last_payment": "Sep 3, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "Buzzoid - Buy Instagram Followers", "url": "https://buzzoid.com/buy-instagram-followers/", "last_payment": 25.0, - "all_time": 25.0, + "all_time": 75.0, "since": "Aug 25, 2024", - "time_last_payment": "Sep 14, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "No-code Web Scraper", "url": "https://automatio.ai/", "last_payment": 5.0, - "all_time": 16.0, + "all_time": 21.0, "since": "Aug 23, 2024", - "time_last_payment": "Aug 23, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "TikTok Expert: Buy TikTok Views", "url": "https://www.reddit.com/r/TikTokExpert/comments/1d1ps78/where_can_i_buy_tiktok_views_likes_followers/", "last_payment": 10.0, - "all_time": 10.0, + "all_time": 20.0, "since": "Aug 18, 2024", - "time_last_payment": "Aug 18, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -101,9 +110,9 @@ "url": "https://buyreviewz.com/buy-google-reviews", "logo": "sponsors/buy_google_reviews.jpg", "last_payment": 750.0, - "all_time": 1500.0, + "all_time": 2250.0, "since": "Aug 7, 2024", - "time_last_payment": "Sep 11, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -118,7 +127,7 @@ }, { "name": "Friesi", - "last_payment": 5.0, + "last_payment": 0.0, "all_time": 5.0, "since": "Aug 5, 2024", "time_last_payment": "Aug 5, 2024", @@ -127,36 +136,36 @@ { "name": "Karl Goethebier", "last_payment": 10.0, - "all_time": 30.0, + "all_time": 40.0, "since": "Jul 2, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { "name": "Buy Instagram Followers & Likes", "url": "https://leofame.com/buy-instagram-followers", "last_payment": 25.0, - "all_time": 100.0, + "all_time": 125.0, "since": "Jun 28, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "Supercocuk", "url": "https://supercocuk.org/", "last_payment": 5.0, - "all_time": 15.0, + "all_time": 20.0, "since": "Jun 25, 2024", - "time_last_payment": "Sep 6, 2024", + "time_last_payment": "Oct 5, 2024", "listed": true }, { "name": "IGComment", "url": "https://igcomment.com", "last_payment": 10.0, - "all_time": 30.0, + "all_time": 40.0, "since": "Jun 21, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -211,9 +220,9 @@ "name": "Social followers", "url": "https://www.socialfollowers.uk/", "last_payment": 25.0, - "all_time": 100.0, + "all_time": 125.0, "since": "Apr 19, 2024", - "time_last_payment": "Aug 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -227,9 +236,9 @@ { "name": "Todd Sundsted", "last_payment": 25.0, - "all_time": 150.0, + "all_time": 175.0, "since": "Apr 6, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -252,9 +261,9 @@ "name": "Fulgurance", "url": "https://github.com/fulgurance", "last_payment": 5.0, - "all_time": 35.0, + "all_time": 40.0, "since": "Mar 6, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -270,9 +279,9 @@ "name": "SocialWick", "url": "https://www.socialwick.com/instagram/followers", "last_payment": 10.0, - "all_time": 80.0, + "all_time": 90.0, "since": "Feb 14, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -303,9 +312,9 @@ "name": "Blastup", "url": "https://blastup.com/buy-instagram-likes", "last_payment": 5.0, - "all_time": 40.0, + "all_time": 45.0, "since": "Jan 25, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -320,9 +329,9 @@ "name": "Casino Extreme No Deposit Bonus", "url": "https://www.outlookindia.com/outlook-spotlight/best-casino-extreme-no-deposit-bonuses-free-chip-bonus-codes-updated-for-news-340286", "last_payment": 10.0, - "all_time": 80.0, + "all_time": 90.0, "since": "Jan 17, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -337,9 +346,9 @@ "name": "Celebian", "url": "https://celebian.com/", "last_payment": 5.0, - "all_time": 45.0, + "all_time": 50.0, "since": "Jan 9, 2024", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -363,15 +372,14 @@ "name": "LightNode", "url": "https://www.lightnode.com", "last_payment": 10.0, - "all_time": 90.0, + "all_time": 100.0, "since": "Dec 7, 2023", - "time_last_payment": "Aug 1, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { "name": "Unlimited Marketing", - "url": "https://Unlimitedmarketing.net", - "last_payment": 5.0, + "last_payment": 0.0, "all_time": 45.0, "since": "Nov 29, 2023", "time_last_payment": "Aug 2, 2024", @@ -404,9 +412,9 @@ { "name": "Daniel Salazar", "last_payment": 10.0, - "all_time": 100.0, + "all_time": 110.0, "since": "Oct 15, 2023", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -552,9 +560,9 @@ "name": "Poprey", "url": "https://poprey.com/get-free-instagram-views", "last_payment": 10.0, - "all_time": 150.0, + "all_time": 160.0, "since": "Jun 16, 2023", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -576,9 +584,9 @@ { "name": "Josh Rickard", "last_payment": 10.0, - "all_time": 170.0, + "all_time": 180.0, "since": "May 10, 2023", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -601,26 +609,26 @@ "name": "Jeremy Woertink", "logo": "sponsors/jeremy_woertink.png", "last_payment": 75.0, - "all_time": 650.0, + "all_time": 725.0, "since": "Mar 30, 2023", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { "name": "GOKI MORI", "last_payment": 1.0, - "all_time": 22.0, + "all_time": 23.0, "since": "Mar 16, 2023", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { "name": "infinitary", "url": "https://infinitary.org/", "last_payment": 10.0, - "all_time": 190.0, + "all_time": 200.0, "since": "Mar 9, 2023", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -635,9 +643,9 @@ "name": "Soc-Promotion", "url": "https://soc-promotion.com/instagram/likes", "last_payment": 5.0, - "all_time": 95.0, + "all_time": 100.0, "since": "Mar 2, 2023", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -661,9 +669,9 @@ "name": "AusmalbildTV", "url": "https://ausmalbildtv.de/", "last_payment": 5.0, - "all_time": 75.0, + "all_time": 80.0, "since": "Feb 10, 2023", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -671,9 +679,9 @@ "url": "https://concentric.health", "logo": "sponsors/concentric.png", "last_payment": 75.0, - "all_time": 1500.0, + "all_time": 1575.0, "since": "Feb 2, 2023", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -802,9 +810,9 @@ "name": "CasinoWizard", "url": "https://thecasinowizard.com/", "last_payment": 5.0, - "all_time": 110.0, + "all_time": 115.0, "since": "Oct 19, 2022", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -826,9 +834,9 @@ { "name": "Jeffrey Crochet", "last_payment": 5.0, - "all_time": 250.0, + "all_time": 260.0, "since": "Aug 6, 2022", - "time_last_payment": "Sep 6, 2024", + "time_last_payment": "Oct 6, 2024", "listed": true }, { @@ -899,17 +907,17 @@ "name": "SureBet", "url": "https://www.sure.bet/casinos-not-on-gamstop/", "last_payment": 5.0, - "all_time": 135.0, + "all_time": 140.0, "since": "Jun 17, 2022", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { "name": "Sekeol Kim", "last_payment": 10.0, - "all_time": 280.0, + "all_time": 290.0, "since": "May 23, 2022", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -988,9 +996,9 @@ "name": "Anton Maminov", "url": "https://github.com/mamantoha", "last_payment": 5.0, - "all_time": 155.0, + "all_time": 160.0, "since": "Feb 23, 2022", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -1151,9 +1159,9 @@ "name": "Mauricio Gomes", "url": "https://mauriciogomes.com", "last_payment": 25.0, - "all_time": 565.0, + "all_time": 590.0, "since": "Oct 8, 2021", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -1176,9 +1184,9 @@ "name": "Mia Bennett", "url": "https://chillfox.com/", "last_payment": 5.0, - "all_time": 180.0, + "all_time": 185.0, "since": "Oct 1, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1193,9 +1201,9 @@ "name": "Alexander Adam", "url": "https://github.com/alexanderadam/alexanderadam#-about-me", "last_payment": 10.0, - "all_time": 360.0, + "all_time": 370.0, "since": "Oct 1, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 1, 2024", "listed": true }, { @@ -1275,9 +1283,9 @@ "name": "Bookyourdata.com", "url": "https://www.bookyourdata.com", "last_payment": 10.0, - "all_time": 380.0, + "all_time": 390.0, "since": "Aug 10, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -1293,9 +1301,9 @@ "url": "https://place.technology/", "logo": "sponsors/placeos.png", "last_payment": 250.0, - "all_time": 8750.0, + "all_time": 9000.0, "since": "Jul 26, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1333,9 +1341,9 @@ { "name": "Agloks", "last_payment": 5.0, - "all_time": 195.0, + "all_time": 200.0, "since": "Jul 8, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1486,9 +1494,9 @@ { "name": "Lampros Chaidas", "last_payment": 10.0, - "all_time": 420.0, + "all_time": 430.0, "since": "Mar 29, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1526,9 +1534,9 @@ { "name": "Auttawut Wiriyakreng", "last_payment": 5.0, - "all_time": 210.0, + "all_time": 215.0, "since": "Mar 25, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1591,9 +1599,9 @@ "name": "Bromine0x23", "url": "https://twitter.com/bromine0x23", "last_payment": 10.0, - "all_time": 360.0, + "all_time": 370.0, "since": "Feb 27, 2021", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1703,9 +1711,9 @@ { "name": "Josh Hollenbeck", "last_payment": 10.0, - "all_time": 450.0, + "all_time": 460.0, "since": "Dec 19, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1728,9 +1736,9 @@ "name": "OvrClock", "url": "https://ovrclock.com", "last_payment": 5.0, - "all_time": 230.0, + "all_time": 235.0, "since": "Dec 11, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1745,9 +1753,9 @@ "name": "Ryan Maki", "logo": "sponsors/ryan_maki.png", "last_payment": 75.0, - "all_time": 3450.0, + "all_time": 3525.0, "since": "Dec 2, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1842,9 +1850,9 @@ "name": "Ricardo Tomasi", "url": "https://ricardo.cc/", "last_payment": 25.0, - "all_time": 1200.0, + "all_time": 1225.0, "since": "Oct 9, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -1956,7 +1964,7 @@ "last_payment": 0.0, "all_time": 305.0, "since": "Aug 24, 2020", - "time_last_payment": "Oct 1, 2024", + "time_last_payment": "Oct 8, 2024", "listed": true }, { @@ -2011,9 +2019,9 @@ "name": "Matt Berry", "url": "https://mattrb.com", "last_payment": 5.0, - "all_time": 250.0, + "all_time": 255.0, "since": "Aug 7, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -2076,9 +2084,9 @@ "name": "Nobuaki Tanaka", "url": "https://twitter.com/tomerun", "last_payment": 5.0, - "all_time": 260.0, + "all_time": 265.0, "since": "Jun 10, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -2092,9 +2100,9 @@ { "name": "Oleksii Neishchenko", "last_payment": 5.0, - "all_time": 260.0, + "all_time": 265.0, "since": "Jun 9, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 4, 2024", "listed": true }, { @@ -2156,9 +2164,9 @@ { "name": "Glen A-B", "last_payment": 10.0, - "all_time": 405.0, + "all_time": 425.0, "since": "May 5, 2020", - "time_last_payment": "Sep 2, 2024", + "time_last_payment": "Oct 3, 2024", "listed": true }, { @@ -2198,9 +2206,9 @@ "name": "Jared Smith", "url": "https://www.linkedin.com/in/jaredsmithse/", "last_payment": 5.0, - "all_time": 235.0, + "all_time": 240.0, "since": "Apr 6, 2020", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -2318,9 +2326,9 @@ { "name": "Raels Koder", "last_payment": 25.0, - "all_time": 1475.0, + "all_time": 1500.0, "since": "Oct 30, 2019", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -2343,9 +2351,9 @@ "name": "Ryan Prior", "url": "https://www.ryanprior.com", "last_payment": 5.0, - "all_time": 300.0, + "all_time": 305.0, "since": "Oct 7, 2019", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -2392,9 +2400,9 @@ "name": "Max Fierke", "url": "https://www.maxfierke.com", "last_payment": 25.0, - "all_time": 1200.0, + "all_time": 1225.0, "since": "Jul 21, 2019", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { @@ -2506,7 +2514,7 @@ "last_payment": 0.0, "all_time": 640.0, "since": "Dec 28, 2018", - "time_last_payment": "Oct 1, 2024", + "time_last_payment": "Oct 8, 2024", "listed": true }, { @@ -2554,9 +2562,9 @@ "url": "https://www.blitline.com", "logo": "sponsors/blitline.png", "last_payment": 75.0, - "all_time": 5250.0, + "all_time": 5325.0, "since": "Dec 12, 2018", - "time_last_payment": "Sep 1, 2024", + "time_last_payment": "Oct 2, 2024", "listed": true }, { diff --git a/_data/others.json b/_data/others.json index 23e8e8b4..6381bd92 100644 --- a/_data/others.json +++ b/_data/others.json @@ -4,7 +4,8 @@ "url": "https://manas.tech/", "logo": "manas-orange.svg", "last_payment": 5000, - "all_time": 1300000, + "time_last_payment": "Oct 8, 2024", + "all_time": 1335000, "since": "Jun 19, 2009" }, { @@ -18,7 +19,8 @@ "url": "https://www.84codes.com/", "logo": "sponsors/84.png", "last_payment": 22000, - "all_time": 369000, + "time_last_payment": "Oct 8, 2024", + "all_time": 523000, "currency": "€", "since": "Apr 1, 2018" }, @@ -49,9 +51,9 @@ { "overrides": "Buy Instagram Followers & Likes", "name": "LeoFame", - "url:": "https://leofame.com", + "url": "https://leofame.com", "last_payment": 25, "all_time": 0, "since": "Jun 28, 2024" } -] \ No newline at end of file +] diff --git a/_data/sponsor_logos_corporate.csv b/_data/sponsor_logos_corporate.csv index b2b71806..38f4d7cc 100644 --- a/_data/sponsor_logos_corporate.csv +++ b/_data/sponsor_logos_corporate.csv @@ -1,3 +1,3 @@ logo,name,url,last_payment,all_time,since,level -sponsors/84.png,84codes,https://www.84codes.com/,"€22,000","€369,000","Apr 1, 2018",5000 -manas-orange.svg,Manas.Tech,https://manas.tech/,"$5,000","$1,300,000","Jun 19, 2009",5000 +sponsors/84.png,84codes,https://www.84codes.com/,"€22,000","€523,000","Apr 1, 2018",5000 +manas-orange.svg,Manas.Tech,https://manas.tech/,"$5,000","$1,335,000","Jun 19, 2009",5000 diff --git a/_data/sponsor_logos_gold.csv b/_data/sponsor_logos_gold.csv index aa8adb9f..9c3edb24 100644 --- a/_data/sponsor_logos_gold.csv +++ b/_data/sponsor_logos_gold.csv @@ -1,3 +1,3 @@ logo,name,url,last_payment,all_time,since,level -sponsors/buy_google_reviews.jpg,Buy Google Reviews,https://buyreviewz.com/buy-google-reviews,$750,"$1,500","Aug 7, 2024",750 +sponsors/buy_google_reviews.jpg,Buy Google Reviews,https://buyreviewz.com/buy-google-reviews,$750,"$2,250","Aug 7, 2024",750 sponsors/buy_instagram_followers_thunderclapit.png,Buy Instagram Followers Thunderclapit,https://thunderclap.it/buy-instagram-followers,$750,"$1,500","Aug 7, 2024",750 diff --git a/_data/sponsor_logos_silver.csv b/_data/sponsor_logos_silver.csv index 099e4c96..9b5c8495 100644 --- a/_data/sponsor_logos_silver.csv +++ b/_data/sponsor_logos_silver.csv @@ -1,2 +1,2 @@ logo,name,url,last_payment,all_time,since,level -sponsors/placeos.png,PlaceOS,https://place.technology/,$250,"$8,750","Jul 26, 2021",75 +sponsors/placeos.png,PlaceOS,https://place.technology/,$250,"$9,000","Jul 26, 2021",75 diff --git a/_data/sponsors.csv b/_data/sponsors.csv index 06c82b10..521793ce 100644 --- a/_data/sponsors.csv +++ b/_data/sponsors.csv @@ -1,38 +1,38 @@ logo,name,url,last_payment,all_time,since,level -sponsors/84.png,84codes,https://www.84codes.com/,"€22,000","€391,000","Apr 1, 2018",5000 -manas-orange.svg,Manas.Tech,https://manas.tech/,"$5,000","$1,305,000","Jun 19, 2009",5000 -sponsors/buy_google_reviews.jpg,Buy Google Reviews,https://buyreviewz.com/buy-google-reviews,$750,"$1,500","Aug 7, 2024",750 +sponsors/84.png,84codes,https://www.84codes.com/,"€22,000","€523,000","Apr 1, 2018",5000 +manas-orange.svg,Manas.Tech,https://manas.tech/,"$5,000","$1,335,000","Jun 19, 2009",5000 +sponsors/buy_google_reviews.jpg,Buy Google Reviews,https://buyreviewz.com/buy-google-reviews,$750,"$2,250","Aug 7, 2024",750 sponsors/buy_instagram_followers_thunderclapit.png,Buy Instagram Followers Thunderclapit,https://thunderclap.it/buy-instagram-followers,$750,"$1,500","Aug 7, 2024",750 -sponsors/placeos.png,PlaceOS,https://place.technology/,$250,"$8,750","Jul 26, 2021",75 -sponsors/blitline.png,Blitline,https://www.blitline.com,$75,"$5,250","Dec 12, 2018",75 -sponsors/ryan_maki.png,Ryan Maki,,$75,"$3,450","Dec 2, 2020",75 +sponsors/placeos.png,PlaceOS,https://place.technology/,$250,"$9,000","Jul 26, 2021",75 +sponsors/blitline.png,Blitline,https://www.blitline.com,$75,"$5,325","Dec 12, 2018",75 +sponsors/ryan_maki.png,Ryan Maki,,$75,"$3,525","Dec 2, 2020",75 ,lowkey,,$75,"$3,070","Jun 12, 2021",75 -sponsors/concentric.png,Concentric,https://concentric.health,$75,"$1,500","Feb 2, 2023",75 -sponsors/jeremy_woertink.png,Jeremy Woertink,,$75,$650,"Mar 30, 2023",75 +sponsors/concentric.png,Concentric,https://concentric.health,$75,"$1,575","Feb 2, 2023",75 +sponsors/jeremy_woertink.png,Jeremy Woertink,,$75,$725,"Mar 30, 2023",75 ,isaacsloan,https://isaacsloan.com,$36,"$2,506","Mar 24, 2016",25 ,Thomas Peter Berntsen,https://twitter.com/tpberntsen,$25,"$4,375","Sep 20, 2015",25 ,Frank O'Hara,,$25,"$1,900","Aug 16, 2015",25 ,Jerome Gravel-Niquet,http://www.fly.io,$25,"$1,775","Jan 28, 2016",25 -,Raels Koder,,$25,"$1,475","Oct 30, 2019",25 +,Raels Koder,,$25,"$1,500","Oct 30, 2019",25 ,Kagi,https://kagi.com,$25,"$1,375","Apr 8, 2020",25 ,Linus Sellberg,,$25,"$1,320","Feb 21, 2017",25 -,Max Fierke,https://www.maxfierke.com,$25,"$1,200","Jul 21, 2019",25 -,Ricardo Tomasi,https://ricardo.cc/,$25,"$1,200","Oct 9, 2020",25 +,Max Fierke,https://www.maxfierke.com,$25,"$1,225","Jul 21, 2019",25 +,Ricardo Tomasi,https://ricardo.cc/,$25,"$1,225","Oct 9, 2020",25 ,Dave Doyle,http://twitter.com/meraxes,$25,"$1,125","Mar 28, 2018",25 ,Casinoonlineaams.com,https://www.casinoonlineaams.com,$25,"$1,025","May 26, 2021",25 ,Qard,http://stephenbelanger.com,$25,$965,"Aug 21, 2015",25 -,Mauricio Gomes,https://mauriciogomes.com,$25,$565,"Oct 8, 2021",25 +,Mauricio Gomes,https://mauriciogomes.com,$25,$590,"Oct 8, 2021",25 ,Josephine Pfeiffer,https://josie.lol/,$25,$305,"Dec 16, 2022",25 -,Todd Sundsted,,$25,$150,"Apr 6, 2024",25 -,Social followers,https://www.socialfollowers.uk/,$25,$100,"Apr 19, 2024",25 -,LeoFame,https://leofame.com/buy-instagram-followers,$25,$100,"Jun 28, 2024",25 +,Todd Sundsted,,$25,$175,"Apr 6, 2024",25 +,Social followers,https://www.socialfollowers.uk/,$25,$125,"Apr 19, 2024",25 +,LeoFame,https://leofame.com,$25,$125,"Jun 28, 2024",25 +,Buzzoid - Buy Instagram Followers,https://buzzoid.com/buy-instagram-followers/,$25,$75,"Aug 25, 2024",25 ,Thunderclap.com,https://thunderclap.com/,$25,$50,"Aug 14, 2024",25 -,Buzzoid - Buy Instagram Followers,https://buzzoid.com/buy-instagram-followers/,$25,$25,"Aug 25, 2024",25 -,Buy Instagram followers,https://myinstafollow.com/,$25,$25,"Sep 26, 2024",25 +,Myinstafollow - Buy Instagram Followers,https://myinstafollow.com/,$25,$25,"Sep 26, 2024",25 ,Paulo Gabriel da Silveira Sarlo,,$25,$25,"Sep 30, 2024",25 ,pitosalas,,$20,$825,"Dec 20, 2017",10 ,Andrey A. Konovalov,http://sysadminblog.ru,$14,$428,"Mar 6, 2018",10 -,Bookyourdata.com,https://www.bookyourdata.com,$10,$805,"Apr 14, 2019",10 +,Bookyourdata.com,https://www.bookyourdata.com,$10,$815,"Apr 14, 2019",10 ,Christos Zisopoulos,,$10,$660,"Jun 23, 2016",10 ,masukomi,http://masukomi.org,$10,$640,"Aug 7, 2016",10 ,Noriyo Akita,http://hyperneetprogrammer.hatenablog.com/,$10,$615,"Jul 21, 2018",10 @@ -42,84 +42,83 @@ sponsors/jeremy_woertink.png,Jeremy Woertink,,$75,$650,"Mar 30, 2023",75 ,dtakahas,https://github.com/dtakahas,$10,$540,"Jun 6, 2017",10 ,infinitary,https://infinitary.org,$10,$505,"Jun 11, 2018",10 ,marksiemers,https://github.com/marksiemers,$10,$460,"Aug 29, 2017",10 +,Josh Hollenbeck,,$10,$460,"Dec 19, 2020",10 ,grioja,https://github.com/grioja,$10,$450,"Mar 31, 2018",10 -,Josh Hollenbeck,,$10,$450,"Dec 19, 2020",10 -,Lampros Chaidas,,$10,$420,"Mar 29, 2021",10 -,Glen A-B,,$10,$405,"May 5, 2020",10 -,Bromine0x23,https://twitter.com/bromine0x23,$10,$360,"Feb 27, 2021",10 -,Alexander Adam,https://github.com/alexanderadam/alexanderadam#-about-me,$10,$360,"Oct 1, 2021",10 +,Lampros Chaidas,,$10,$430,"Mar 29, 2021",10 +,Glen A-B,,$10,$425,"May 5, 2020",10 +,Bromine0x23,https://twitter.com/bromine0x23,$10,$370,"Feb 27, 2021",10 +,Alexander Adam,https://github.com/alexanderadam/alexanderadam#-about-me,$10,$370,"Oct 1, 2021",10 ,rigani,https://twitter.com/rigani_c,$10,$310,"Dec 28, 2018",10 -,Sekeol Kim,,$10,$280,"May 23, 2022",10 +,Sekeol Kim,,$10,$290,"May 23, 2022",10 ,Håkan Nylén,,$10,$220,"Mar 26, 2020",10 -,infinitary,https://infinitary.org/,$10,$190,"Mar 9, 2023",10 -,Josh Rickard,,$10,$170,"May 10, 2023",10 +,infinitary,https://infinitary.org/,$10,$200,"Mar 9, 2023",10 +,Josh Rickard,,$10,$180,"May 10, 2023",10 +,Poprey,https://poprey.com/get-free-instagram-views,$10,$160,"Jun 16, 2023",10 ,EaseUS Germany,https://www.easeus.de/,$10,$160,"Jun 28, 2023",10 ,EaseUS RecExperts,https://recorder.easeus.com,$10,$160,"Jun 28, 2023",10 -,Poprey,https://poprey.com/get-free-instagram-views,$10,$150,"Jun 16, 2023",10 ,Jeffrey Crochet,https://www.linkedin.com/in/jeffrey-crochet-21008b199/,$10,$130,"Aug 25, 2020",10 -,Daniel Salazar,,$10,$100,"Oct 15, 2023",10 -,LightNode,https://www.lightnode.com,$10,$90,"Dec 7, 2023",10 -,Casino Extreme No Deposit Bonus,https://www.outlookindia.com/outlook-spotlight/best-casino-extreme-no-deposit-bonuses-free-chip-bonus-codes-updated-for-news-340286,$10,$80,"Jan 17, 2024",10 -,SocialWick,https://www.socialwick.com/instagram/followers,$10,$80,"Feb 14, 2024",10 +,Daniel Salazar,,$10,$110,"Oct 15, 2023",10 +,LightNode,https://www.lightnode.com,$10,$100,"Dec 7, 2023",10 +,Casino Extreme No Deposit Bonus,https://www.outlookindia.com/outlook-spotlight/best-casino-extreme-no-deposit-bonuses-free-chip-bonus-codes-updated-for-news-340286,$10,$90,"Jan 17, 2024",10 +,SocialWick,https://www.socialwick.com/instagram/followers,$10,$90,"Feb 14, 2024",10 ,Alexander Kutsan,,$10,$60,"Apr 29, 2024",10 -,IGComment,https://igcomment.com,$10,$30,"Jun 21, 2024",10 -,Karl Goethebier,,$10,$30,"Jul 2, 2024",10 -,TikTok Expert: Buy TikTok Views,https://www.reddit.com/r/TikTokExpert/comments/1d1ps78/where_can_i_buy_tiktok_views_likes_followers/,$10,$10,"Aug 18, 2024",10 -,Best Instagram Growth Service,https://www.reddit.com/r/TikTokExpert/comments/1egk7tn/whats_the_best_instagram_growth_service_or_tool/,$10,$10,"Sep 4, 2024",10 -,TikTok Expert: Buy TikTok Followers,https://www.reddit.com/r/TikTokExpert/comments/1f812o7/best_and_cheapest_site_to_buy_tiktok_followers/,$10,$10,"Sep 4, 2024",10 +,IGComment,https://igcomment.com,$10,$40,"Jun 21, 2024",10 +,Karl Goethebier,,$10,$40,"Jul 2, 2024",10 +,TikTok Expert: Buy TikTok Views,https://www.reddit.com/r/TikTokExpert/comments/1d1ps78/where_can_i_buy_tiktok_views_likes_followers/,$10,$20,"Aug 18, 2024",10 +,Best Instagram Growth Service,https://www.reddit.com/r/TikTokExpert/comments/1egk7tn/whats_the_best_instagram_growth_service_or_tool/,$10,$20,"Sep 4, 2024",10 +,TikTok Expert: Buy TikTok Followers,https://www.reddit.com/r/TikTokExpert/comments/1f812o7/best_and_cheapest_site_to_buy_tiktok_followers/,$10,$20,"Sep 4, 2024",10 +,Graming TikTok Likes,https://graming.com/buy-tiktok-likes/,$10,$10,"Oct 2, 2024",10 ,jeron,,$5,"$1,160","Jan 18, 2018",5 ,Sho Kusano,https://aduca.org,$5,$483,"Aug 4, 2015",5 ,msky026,http://qiita.com/msky026,$5,$450,"Oct 23, 2015",5 +,Matt Berry,https://mattrb.com,$5,$380,"Dec 21, 2019",5 ,David Hofer,http://twitter.com/hofer,$5,$375,"Aug 6, 2015",5 -,Matt Berry,https://mattrb.com,$5,$375,"Dec 21, 2019",5 ,Blumenversand,https://blumenversender.com,$5,$340,"Mar 14, 2016",5 -,Ryan Prior,https://www.ryanprior.com,$5,$300,"Oct 7, 2019",5 +,Ryan Prior,https://www.ryanprior.com,$5,$305,"Oct 7, 2019",5 ,ʕ·ᴥ·ʔAKJ,,$5,$295,"Jan 6, 2017",5 -,Oleksii Neishchenko,,$5,$260,"Jun 9, 2020",5 -,Nobuaki Tanaka,https://twitter.com/tomerun,$5,$260,"Jun 10, 2020",5 -,Jeffrey Crochet,,$5,$250,"Aug 6, 2022",5 -,Jared Smith,https://www.linkedin.com/in/jaredsmithse/,$5,$235,"Apr 6, 2020",5 -,OvrClock,https://ovrclock.com,$5,$230,"Dec 11, 2020",5 -,Auttawut Wiriyakreng,,$5,$210,"Mar 25, 2021",5 +,Oleksii Neishchenko,,$5,$265,"Jun 9, 2020",5 +,Nobuaki Tanaka,https://twitter.com/tomerun,$5,$265,"Jun 10, 2020",5 +,Jeffrey Crochet,,$5,$260,"Aug 6, 2022",5 +,Jared Smith,https://www.linkedin.com/in/jaredsmithse/,$5,$240,"Apr 6, 2020",5 +,OvrClock,https://ovrclock.com,$5,$235,"Dec 11, 2020",5 +,Auttawut Wiriyakreng,,$5,$215,"Mar 25, 2021",5 ,igorkasyanchuk,https://phototo.com.ua/,$5,$205,"Nov 2, 2017",5 ,Martin Honermeyer,,$5,$205,"Jul 24, 2018",5 -,Agloks,,$5,$195,"Jul 8, 2021",5 +,Agloks,,$5,$200,"Jul 8, 2021",5 ,Joseph Method,,$5,$195,"Jul 9, 2021",5 ,Taletidskortnu,https://taletidskort.nu,$5,$190,"Aug 25, 2021",5 ,elliot,,$5,$185,"Dec 9, 2018",5 +,Mia Bennett,https://chillfox.com/,$5,$185,"Oct 1, 2021",5 ,devtrackers.gg,https://devtrackers.gg,$5,$180,"Dec 9, 2018",5 -,Mia Bennett,https://chillfox.com/,$5,$180,"Oct 1, 2021",5 ,maltidsbarometeret,https://maltidsbarometeret.dk,$5,$180,"Oct 19, 2021",5 ,nilsding,https://nilsding.org,$5,$175,"Jan 18, 2019",5 ,mavu,,$5,$175,"Jan 23, 2019",5 ,Michael Wagner,,$5,$175,"Nov 11, 2021",5 ,PROXYONE LLC,https://proxyone.eu/,$5,$160,"Feb 21, 2022",5 +,Anton Maminov,https://github.com/mamantoha,$5,$160,"Feb 23, 2022",5 ,karupanerura,http://karupas.org/,$5,$155,"May 4, 2019",5 -,Anton Maminov,https://github.com/mamantoha,$5,$155,"Feb 23, 2022",5 ,Holden Omans,,$5,$150,"Jun 21, 2019",5 +,SureBet,https://www.sure.bet/casinos-not-on-gamstop/,$5,$140,"Jun 17, 2022",5 ,Lukas Svoboda,,$5,$135,"Sep 21, 2015",5 -,SureBet,https://www.sure.bet/casinos-not-on-gamstop/,$5,$135,"Jun 17, 2022",5 ,ryan-senn,https://tt.edu.au,$5,$120,"Jan 4, 2020",5 +,CasinoWizard,https://thecasinowizard.com/,$5,$115,"Oct 19, 2022",5 ,Marco Roth,https://marcoroth.dev,$5,$110,"Mar 4, 2020",5 ,Wolfgang Klinger,,$5,$110,"Mar 9, 2020",5 -,CasinoWizard,https://thecasinowizard.com/,$5,$110,"Oct 19, 2022",5 ,Hiptoro,https://hiptoro.com,$5,$105,"Jan 17, 2023",5 ,Bubble Shooter,https://www.bubbleshooter.net/,$5,$100,"Feb 13, 2023",5 -,Soc-Promotion,https://soc-promotion.com/instagram/likes,$5,$95,"Mar 2, 2023",5 -,AusmalbildTV,https://ausmalbildtv.de/,$5,$75,"Feb 10, 2023",5 +,Soc-Promotion,https://soc-promotion.com/instagram/likes,$5,$100,"Mar 2, 2023",5 +,AusmalbildTV,https://ausmalbildtv.de/,$5,$80,"Feb 10, 2023",5 ,TopCasinoSearch,https://www.topcasinosearch.com/,$5,$60,"Oct 13, 2023",5 ,SnapTik,https://snaptik.pro/id,$5,$50,"Dec 23, 2023",5 -,Unlimited Marketing,https://Unlimitedmarketing.net,$5,$45,"Nov 29, 2023",5 -,Celebian,https://celebian.com/,$5,$45,"Jan 9, 2024",5 +,Celebian,https://celebian.com/,$5,$50,"Jan 9, 2024",5 +,Blastup,https://blastup.com/buy-instagram-likes,$5,$45,"Jan 25, 2024",5 ,salt rock lamp,,$5,$40,"Apr 11, 2021",5 -,Blastup,https://blastup.com/buy-instagram-likes,$5,$40,"Jan 25, 2024",5 +,Fulgurance,https://github.com/fulgurance,$5,$40,"Mar 6, 2024",5 ,APKGosh,https://apkhihe.com/,$5,$35,"Feb 23, 2024",5 -,Fulgurance,https://github.com/fulgurance,$5,$35,"Mar 6, 2024",5 -,No-code Web Scraper,https://automatio.ai/,$5,$16,"Aug 23, 2024",5 -,Supercocuk,https://supercocuk.org/,$5,$15,"Jun 25, 2024",5 -,Friesi,,$5,$5,"Aug 5, 2024",5 -,Que Narras,https://www.quenarras.com/,$5,$5,"Sep 3, 2024",5 -,Ausm2Kind,https://ausm2kind.de/,$5,$5,"Sep 5, 2024",5 +,No-code Web Scraper,https://automatio.ai/,$5,$21,"Aug 23, 2024",5 +,Supercocuk,https://supercocuk.org/,$5,$20,"Jun 25, 2024",5 +,Que Narras,https://www.quenarras.com/,$5,$10,"Sep 3, 2024",5 +,Ausm2Kind,https://ausm2kind.de/,$5,$10,"Sep 5, 2024",5 ,Martin Luder,,$1,$76,"Aug 14, 2015",1 ,Shigenobu Nishikawa,,$1,$74,"Oct 23, 2015",1 ,Joris Vanhecke,,$1,$66,"Jun 15, 2016",1 @@ -131,7 +130,7 @@ sponsors/jeremy_woertink.png,Jeremy Woertink,,$75,$650,"Mar 30, 2023",75 ,Rob Fors,,$1,$37,"Nov 18, 2018",1 ,Kendall Park,,$1,$37,"Nov 22, 2018",1 ,Sergey Kojin,,$1,$26,"Oct 7, 2019",1 -,GOKI MORI,,$1,$22,"Mar 16, 2023",1 +,GOKI MORI,,$1,$23,"Mar 16, 2023",1 ,Andrzej Kilijański,,$1,$1,"Sep 21, 2024",1 ,Nikola Motor Company,,$0,"$165,000","Mar 1, 2020",0 ,Vulk Cooperative,,$0,"$5,850","Sep 10, 2020",0 @@ -236,6 +235,7 @@ sponsors/empty.svg,Austin Robert Bales,,$0,"$1,234","May 4, 2024",0 ,Speekify,,$0,$45,"Aug 20, 2020",0 ,Kiekkotorni - Nikotiinipussit,,$0,$45,"Feb 24, 2023",0 ,Best Casinos Australia - BCA,,$0,$45,"Oct 1, 2023",0 +,Unlimited Marketing,,$0,$45,"Nov 29, 2023",0 ,Liu Chong,,$0,$40,"May 27, 2019",0 ,Guillermo Siliceo Trueba,,$0,$40,"Mar 26, 2021",0 ,Liberatys,,$0,$40,"Jul 10, 2021",0 @@ -354,6 +354,7 @@ sponsors/empty.svg,Austin Robert Bales,,$0,"$1,234","May 4, 2024",0 ,Dopoid,,$0,$5,"Oct 23, 2023",0 ,Arseny,,$0,$5,"Apr 22, 2024",0 ,Buy 5 star Google Reviews by SidesMedia,,$0,$5,"May 12, 2024",0 +,Friesi,,$0,$5,"Aug 5, 2024",0 ,Claudio G Macedo Jr,,$0,$3,"Sep 18, 2020",0 ,Leadscanner,,$0,$2,"Jan 21, 2021",0 ,New Casinos Australia,,$0,$2,"Feb 5, 2021",0 diff --git a/_data/team.yaml b/_data/team.yaml index d838d2f2..09d7741c 100644 --- a/_data/team.yaml +++ b/_data/team.yaml @@ -73,6 +73,16 @@ admin: role: Developer affiliation: Manas.Tech + mverzilli: + name: Martin Verzilli + role: Developer + affiliation: Manas.Tech + + manumoreira: + name: Manuel Moreira + role: Project Management + affiliation: Manas.Tech + admin_alumni: caspiano: name: Caspian Baska diff --git a/_releases/2024-10-09-1.14.0-released.md b/_releases/2024-10-09-1.14.0-released.md new file mode 100644 index 00000000..1682d385 --- /dev/null +++ b/_releases/2024-10-09-1.14.0-released.md @@ -0,0 +1,272 @@ +--- +title: Crystal 1.14.0 is released! +version: 1.14.0 +date: 2024-10-09 +author: straight-shoota +--- +We are announcing a new Crystal release with several new features and bug fixes. + +Pre-built packages are available on [GitHub Releases](https://github.com/crystal-lang/crystal/releases/tag/1.14.0) +and our official distribution channels. +See [crystal-lang.org/install](https://crystal-lang.org/install/) for +installation instructions. + +## Stats + +This release includes [134 changes since 1.13.3](https://github.com/crystal-lang/crystal/pulls?q=is%3Apr+milestone%3A1.14.0) +by 13 contributors. We thank all the contributors for all the effort put into +improving the language! ❤️ + +## Advances in multi-threading support + +The [project to improve multi-threading support](/2024/02/09/84codes-manas-mt) with the help of [84codes] is still ongoing. +This release doesn't include any big changes. There are a couple of smaller concurrency improvements, though. + +We expect to roll out a major performance upgrade to the event loop for the 1.15 development cycle. +See [New Event Loop (UNIX): call for reviews & tests](https://forum.crystal-lang.org/t/new-event-loop-unix-call-for-reviews-tests/7207) +for a heads up. + +The upcoming execution contexts API from [RFC 2](https://github.com/crystal-lang/rfcs/pull/2) is available as a standalone shard for testing: +[`ysbaddaden/execution_context`](https://github.com/ysbaddaden/execution_context). + +## Changes + +Below we list the most remarkable changes in the language, compiler and stdlib. +For more details, visit the [full changelog](https://github.com/crystal-lang/crystal/releases/tag/1.14.0). + +### Breaking + +⚠️ [`Slice#[start, count]`][slice_accessor] now accepts a negative index for `start`, like similar methods already do. +This would break existing code that depends on the current behaviour that a negative start index raises `IndexError` ([#14778]). + +[slice_accessor]: https://crystal-lang.org/api/1.14.0/Slice.html#%5B%5D%28start%3AInt%2Ccount%3AInt%29%3ASlice%28T%29-instance-method +[#14778]: https://github.com/crystal-lang/crystal/pull/14778 + +⚠️ Finalizers for [`Socket`] and [`IO::FileDescriptor`] do no longer flush. +We realized that flushing is too heavy for a finalizer, as it might involve the event loop and even memory allocations which must be strictly avoided in a finalizer. +Be sure to always flush before letting a stream go out of scope, ideally with an explicit `#close` ([#14882]). + +[`Socket`]: https://crystal-lang.org/api/1.14.0/Socket.html +[`IO::FileDescriptor`]: https://crystal-lang.org/api/1.14.0/IO/FileDescriptor.html +[#14882]: https://github.com/crystal-lang/crystal/pull/14882 + +⚠️ [`XML::Error.errors`] had been deprecated since [1.7.0](/_releases/2023-01-09-1.7.0-released.md), but continued to work. +This unconditioned availability causes a serious memory leak, which cannot be fixed without disabling `XML::Error.errors`. +In order to make this obvious, calling the method causes a compile time error now. ([#14936]). + +[`XML::Error.errors`]: https://crystal-lang.org/api/1.14.0/XML/Error.html#errors:Array(XML::Error)|Nil-class-method +[#14936]: https://github.com/crystal-lang/crystal/pull/14936 + +⚠️ `Hash::Entry` has been removed from public API docs. It was never intended to be a public type. ([#14881]). + +[#14881]: https://github.com/crystal-lang/crystal/pull/14881 + +*Thanks [@ysbaddaden], [@straight-shoota] and [@Blacksmoke16]* + +### Language features + +Allow `^` in constant numeric expressions ([#14951]). This operator was oddly missing even though `|` and `&` were already supported. + +*Thanks [@HertzDevil]* + +[#14951]: https://github.com/crystal-lang/crystal/pull/14951 + +`HashLiteral` and `NamedTupleLiteral` respond to `#has_key?`, just like their regular counterparts `Hash` and `NamedTuple` ([#14890]). + +*Thanks [@kamil-gwozdz]* + +[#14890]: https://github.com/crystal-lang/crystal/pull/14890 + +### Standard library + +The [`WaitGroup`] concurrency primitive gains some convenience methods, +[`WaitGroup.wait`] and [`WaitGroup#spawn`] ([#14837]). + +```crystal +require "wait_group" +WaitGroup.wait do |wg| + 10.times do + wg.spawn do + sleep 5.seconds + end + end +end +``` + +*Thanks [@jgaskins]* + +[`WaitGroup`]: https://crystal-lang.org/api/1.14.0/WaitGroup.html +[`WaitGroup.wait`]: https://crystal-lang.org/api/1.14.0/WaitGroup.html#wait%3ANil-instance-method +[`WaitGroup#spawn`]: https://crystal-lang.org/api/1.14.0/WaitGroup.html#spawn%28%26block%29%3AFiber-instance-method +[#14837]: https://github.com/crystal-lang/crystal/pull/14837 + +There are two new methods for working with slices: [`Slice#same?`] checks +if two slices point to the same memory ([#14728]). +And [`Pointer::Appender#to_slice`] ([#14874]) makes it easy to create a slice +containing the items from an appender. + +[`Slice#same?`]: https://crystal-lang.org/api/1.14.0/Slice.html#same?(other:self):Bool-instance-method +[`Pointer::Appender#to_slice`]: https://crystal-lang.org/api/1.14.0/Pointer/Appender.html#to_slice:Slice(T)-instance-method +[#14728]: https://github.com/crystal-lang/crystal/pull/14728 +[#14874]: https://github.com/crystal-lang/crystal/pull/14874 + +*Thanks [@straight-shoota]* + +A minor fix turning an eager class getter into a lazy one avoids linking `libpcre` +for programs that do not use `Regex` ([#14891]). + +*Thanks [@kojix2]* + +[#14891]: https://github.com/crystal-lang/crystal/pull/14891 + +### Windows + +Windows support is making good progress. + +The interpreter runs on Windows ([#14964]). There is still a limitation: +networking does not work due to [#12495]. + +And the compiler can now target ARM64 Windows, i.e. `aarch64-windows-msvc`. +It's not 100% polished, but looking pretty well. Read [#14911] for details on how to test it out. +Currently we still need to cross-compile because the compiler itself does not run on ARM64 Windows yet. + +Starting with this release, DNS requests resolve asynchronously on Windows ([#14979]). +It's actually the first platform to support that. + +There are also a number of improvements regarding non-blocking IO: + +- Support non-blocking `File#read` and `#write` ([#14940]), `File#read_at` ([#14958]), `Process.run` standard streams ([#14941]), `IO::FileDescriptor#flock_*` ([#14943]). +- Emulate non-blocking `STDIN` console ([#14947]). +- Open non-blocking regular files as overlapped ([#14921]). + +And we add implementations of `System::User` ([#14933]) and `System::Group` on Windows ([#14945]). + +*Thanks [@HertzDevil]* + +[#14911]: https://github.com/crystal-lang/crystal/pull/14911 +[#14921]: https://github.com/crystal-lang/crystal/pull/14921 +[#14940]: https://github.com/crystal-lang/crystal/pull/14940 +[#14958]: https://github.com/crystal-lang/crystal/pull/14958 +[#14941]: https://github.com/crystal-lang/crystal/pull/14941 +[#14943]: https://github.com/crystal-lang/crystal/pull/14943 +[#14947]: https://github.com/crystal-lang/crystal/pull/14947 +[#14979]: https://github.com/crystal-lang/crystal/pull/14979 +[#14933]: https://github.com/crystal-lang/crystal/pull/14933 +[#14945]: https://github.com/crystal-lang/crystal/pull/14945 +[#14964]: https://github.com/crystal-lang/crystal/pull/14964 +[#12495]: https://github.com/crystal-lang/crystal/issues/12495 + +### `URI::Params` + +[`URI::Params::Serializable`] is a new serialization API which works similar to +the JSON and YAML variants, but for the URI query parameters format ([#14684]). + +```crystal +require "uri/params/serializable" + +record Applicant, + first_name : String + last_name : String + qualities : Array(String) do + include URI::Params::Serializable +end + +applicant = Applicant.from_www_form "first_name=John&last_name=Doe&qualities=kind&qualities=smart" +applicant # => Applicant(@first_name="John", @last_name="Doe", @qualities=["kind", "smart"]) +applicant.to_www_form # => "first_name=John&last_name=Doe&qualities=kind&qualities=smart" +``` + +[`URI::Params::Serializable`]: https://crystal-lang.org/api/1.14.0/URI/Params/Serializable.html + +*Thanks [@Blacksmoke16]* + +In a related matter, `URI` is now applicable as a key in JSON objects via [`URI.from_json_object_key?`] ([#14834]). + +*Thanks [@nobodywasishere]* + +[`URI.from_json_object_key?`]: https://crystal-lang.org/api/1.14.0/URI.html#from_json_object_key%3F%28key%3AString%29%3AURI%7CNil-class-method + +[#14834]: https://github.com/crystal-lang/crystal/pull/14834 +[#14684]: https://github.com/crystal-lang/crystal/pull/14684 + +### Compiler tools + +The compiler binary can now execute external programs as subcommands: +`crystal foo` tries to run `crystal-foo` if `foo` is not an internal command. +This allows us to split the compiler binary into separate executables which helps +improve iteration speed ([#14953]). + +*Thanks [@bcardiff]* + +[#14953]: https://github.com/crystal-lang/crystal/pull/14953 + +### Performance + +This release includes some minor performance improvements, particularly in the +compiler ([#14748], [#14992], [#15002]). + +*Thanks [@ysbaddaden], [@HertzDevil], [@ggiraldez]* + +[#15002]: https://github.com/crystal-lang/crystal/pull/15002 +[#14992]: https://github.com/crystal-lang/crystal/pull/14992 +[#14748]: https://github.com/crystal-lang/crystal/pull/14748 + +### Dependency Updates + +- `LibCrypto` bindings now support LibreSSL 3.5+ ([#14872]). +- Support for Unicode 16.0.0 ([#14997]). +- Support for LLVM 19.1 ([#14842]) + +*Thanks [@straight-shoota], [@HertzDevil]* + +[#14842]: https://github.com/crystal-lang/crystal/pull/14842 +[#14872]: https://github.com/crystal-lang/crystal/pull/14872 +[#14997]: https://github.com/crystal-lang/crystal/pull/14997 + +## Deprecations + +[`Pointer.new(Int)`] was deprecated in favour of `Pointer.new(UInt64)` ([#14875]). +Deprecation warnings for argument type that autocast to `UInt64` can be ignored +or disabled by explicitly casting to `UInt64`. + +*Thanks [@straight-shoota]* + +[`Pointer.new(Int)`]: https://crystal-lang.org/api/1.14.0/Pointer.html#new(address:Int)-class-method +[#14875]: https://github.com/crystal-lang/crystal/pull/14875 + +We updated a couple of APIs that receive a time span argument. +[`Benchmark.ips`] ([#14805]) and [`::sleep`] ([#14962]) now explicitly require +[`Time::Span`]. The overloads with `Number` are deprecated. +You can convert bare numbers with [`Int#seconds`] to use the valid overload. + +*Thanks [@HertzDevil]* + +[#14805]: https://github.com/crystal-lang/crystal/pull/14805 +[#14962]: https://github.com/crystal-lang/crystal/pull/14962 +[`Benchmark.ips`]: https://crystal-lang.org/api/1.14.0/Benchmark.html#ips%28calculation%3ATime%3A%3ASpan%3D5.seconds%2Cwarmup%3ATime%3A%3ASpan%3D2.seconds%2Cinteractive%3ABool%3DSTDOUT.tty%3F%2C%26%29-instance-method +[`::sleep`]: https://crystal-lang.org/api/1.14.0/toplevel.html#sleep%28time%3ATime%3A%3ASpan%29%3ANil-class-method +[`Time::Span`]: https://crystal-lang.org/api/1.14.0/Time/Span.html +[`Int#seconds`]: https://crystal-lang.org/api/1.14.0/Int.html#seconds:Time::Span-instance-method +--- + +> **THANKS:** +> We have been able to do all of this thanks to the continued support of [84codes](https://www.84codes.com/) and every other [sponsor](/sponsors). +> To maintain and increase the development pace, donations and sponsorships are +> essential. [OpenCollective](https://opencollective.com/crystal-lang) is +> available for that. +> +> Reach out to [crystal@manas.tech](mailto:crystal@manas.tech) +> if you’d like to become a direct sponsor or find other ways to support Crystal. +> We thank you in advance! + +[@bcardiff]: https://github.com/bcardiff +[@Blacksmoke16]: https://github.com/Blacksmoke16 +[@ggiraldez]: https://github.com/ggiraldez +[@HertzDevil]: https://github.com/HertzDevil +[@jgaskins]: https://github.com/jgaskins +[@kamil-gwozdz]: https://github.com/kamil-gwozdz +[@kojix2]: https://github.com/kojix2 +[@nobodywasishere]: https://github.com/nobodywasishere +[@straight-shoota]: https://github.com/straight-shoota +[@ysbaddaden]: https://github.com/ysbaddaden +[84codes]: https://www.84codes.com/ diff --git a/_sass/components/_top-sponsors.scss b/_sass/components/_top-sponsors.scss index a16223b4..a94f2af4 100644 --- a/_sass/components/_top-sponsors.scss +++ b/_sass/components/_top-sponsors.scss @@ -13,6 +13,10 @@ --link-color: var(--primary-text); --link-hover-color: var(--light-text); + @media (prefers-color-scheme: dark) { + --top-sponsors-icon-filter: #{"invert() contrast(0.78) grayscale()"}; + } + &--corporate { gap: var(--padding-md); } diff --git a/assets/authors/manumoreira.jpg b/assets/authors/manumoreira.jpg new file mode 100644 index 00000000..4d35b99c Binary files /dev/null and b/assets/authors/manumoreira.jpg differ diff --git a/scripts/merge.cr b/scripts/merge.cr index e9538030..36e455aa 100644 --- a/scripts/merge.cr +++ b/scripts/merge.cr @@ -16,8 +16,6 @@ end all_sponsors_map = Hash(UInt64, Sponsor).new overrides = Array(Sponsor).new -update_other_sponsor_totals = ENV["UPDATE_OTHER_SPONSOR_TOTALS"]? == "1" || Time.utc.day == 1 # only do this on the first day of the month - SPONSOR_DATA = begin csv = CSV.new(File.read("#{__DIR__}/../_data/sponsors.csv"), headers: true) hash = Hash(UInt64, Int32).new @@ -28,28 +26,25 @@ SPONSOR_DATA = begin end %w(opencollective.json bountysource.json others.json).each do |filename| - File.open("#{__DIR__}/../_data/#{filename}") do |file| - sponsors = Array(Sponsor).from_json(file) - - if filename == "others.json" - sponsors, overrides = sponsors.partition(&.overrides.nil?) - if update_other_sponsor_totals - sponsors.map! do |sponsor| - prev_value = SPONSOR_DATA[sponsor.id]? - if !prev_value - Log.warn { "Can't find sponsor '#{sponsor.name}' in sponsors.csv" } - prev_value = 0 - end - sponsor.all_time = prev_value + sponsor.last_payment - sponsor - end + path = "#{__DIR__}/../_data/#{filename}" + sponsors = Array(Sponsor).from_json(File.read(path)) + + if filename == "others.json" + now = Time.utc + sponsors.map!(&.update_all_time!(now)) + File.open(path, "w") do |file| + JSON.build(file, indent: 2) do |builder| + sponsors.to_json(builder) end + file.puts # write newline at end of file end - sponsors.each do |sponsor| - prev_sponsor = all_sponsors_map[sponsor.id]? - all_sponsors_map[sponsor.id] = prev_sponsor ? sponsor.merge(prev_sponsor) : sponsor - end + sponsors, overrides = sponsors.partition(&.overrides.nil?) + end + + sponsors.each do |sponsor| + prev_sponsor = all_sponsors_map[sponsor.id]? + all_sponsors_map[sponsor.id] = prev_sponsor ? sponsor.merge(prev_sponsor) : sponsor end end diff --git a/scripts/sponsors.cr b/scripts/sponsors.cr index 74b0771d..b4d8d4cd 100644 --- a/scripts/sponsors.cr +++ b/scripts/sponsors.cr @@ -53,6 +53,37 @@ record Sponsor, name : String, url : String?, logo : String?, last_payment : Flo return {other.last_payment, other.time_last_payment} if time_last_payment.nil? || time_last_payment.not_nil! < other.time_last_payment.not_nil! {last_payment, time_last_payment} end + + def update_all_time!(now) + return self if overrides || last_payment.zero? + time_last_payment = self.time_last_payment || return self + + months_since_last_payment = (now.year - time_last_payment.year) * 12 + now.month - time_last_payment.month + return self unless months_since_last_payment > 0 + + self.time_last_payment = now + self.all_time += (months_since_last_payment * last_payment) + self + end + + def to_json(builder : JSON::Builder) + builder.object do + builder.field "overrides", overrides if overrides + builder.field "name", name + builder.field "url", url if url + builder.field "logo", logo if logo + builder.field "last_payment", last_payment.to_i + if time_last_payment = self.time_last_payment + builder.field "time_last_payment", time_last_payment.to_s("%b %-d, %Y") + end + builder.field "all_time", all_time.to_i + builder.field "currency", currency if currency + if since = self.since + builder.field "since", since.to_s("%b %-d, %Y") + end + builder.field "listed", listed? unless listed? + end + end end class SponsorsBuilder