en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

Programming & AI Tips 💡

Programming & AI Tips 💡

Open in Telegram

Programming & AI: Tips 💡 Articles 📕 AI & LLMs 👾 Design, Architecture, Principles ✅ 🇳🇱 Contact: @MoienTajik

Show more
The country is not specifiedTechnologies & Applications2 908

📈 Analytical overview of Telegram channel Programming & AI Tips 💡

Channel Programming & AI Tips 💡 (@programmingtip) in the English language segment is an active participant. Currently, the community unites 46 030 subscribers, ranking 2 908 in the Technologies & Applications category.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 46 030 subscribers.

According to the latest data from 28 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -425 over the last 30 days and by -17 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 5.78%. Within the first 24 hours after publication, content typically collects 1.82% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 660 views. Within the first day, a publication typically gains 839 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
“Programming & AI: Tips 💡 Articles 📕 AI & LLMs 👾 Design, Architecture, Principles ✅ 🇳🇱 Contact: @MoienTajik”

Thanks to the high frequency of updates (latest data received on 29 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

46 030
Subscribers
-1724 hours
-877 days
-42530 days
Posts Archive
\n \n \n

Pug - node template engine

\n
\n

You are amazing

\n

Pug is a terse and simple templating language with a strong focus on performance and powerful features.

\n
\n \n\n\n🔸🔹🔸🔹\n\n ➖ Implementations in other languages 👾 \nPorts with very close syntax, adapted to other languages :\n• PHP\n• Java\n• Python\n• Ruby\n• C# (ASP.NET Core)\n\nhttps://t.me/pgimg/108\n\n[ Github ] : http://bit.do/pugv\n\n〰〰〰〰〰〰\n#ViewEngine #TemplateEngine\n@ProgrammingTip","datePublished":"2018-02-17T06:20:16Z","dateModified":"2018-02-17T06:20:16Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4812}]}},{"@type":"ListItem","position":9,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/398","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/398","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/398","headline":"#Fun #Valentine 😂 @ProgrammingTip","articleBody":"#Fun #Valentine 😂\n@ProgrammingTip","datePublished":"2018-02-14T06:55:23Z","dateModified":"2018-02-14T06:55:23Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4388}]}},{"@type":"ListItem","position":10,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/397","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/397","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/397","headline":"HTTP codes as Valentine’s Day comics 💙 With Valentine’s Day around the corner, it is a time for romantic hope…","articleBody":"HTTP codes as Valentine’s Day comics 💙\n\nWith Valentine’s Day around the corner, it is a time for romantic hopefuls to ask out the object of their affection, and await an answer. 🤠\n\nIt could be a simple “yes,” a sad “no,” or a cryptic “I don’t think about you that way, but maybe we can grab a coffee tomorrow❓”\n\nWhich brings us to HTTP (Hypertext Transfer Protocol) codes. 🌐\n\nWhen a URL is typed in a browser, a request is sent out to the server and the browser awaits an answer, just like in our scenario. ♻️\n\nThese answers come in the form of an HTTP code, which is a three-digit number that maps to an answer. 2️⃣0️⃣0️⃣\n\nWith the image of Valentine’s Day in mind, here are a few likely scenarios. 😆❤️\n\nhttps://t.me/pgimg/107\n\n[ Article ] : http://bit.do/httpval\n\n〰〰〰〰〰〰\n#HTTP #Valentine #Fun\n@ProgrammingTip","datePublished":"2018-02-13T07:36:43Z","dateModified":"2018-02-13T07:36:43Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4722}]}},{"@type":"ListItem","position":11,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/396","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/396","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/396","headline":"Pretty Checkbox 🌈 A pure CSS library to beautify checkbox and radio buttons. ✨ Framework Compatability 🔥 : •…","articleBody":"Pretty Checkbox 🌈\n\nA pure CSS library to beautify checkbox and radio buttons. ✨\n\nFramework Compatability 🔥 :\n• Angular\n• Bootstrap\n• React\n• Vue\n\nhttps://t.me/pgimg/106\n\n[ Website ] : http://bit.do/csspr\n\n〰〰〰〰〰〰\n#CSS #Library\n@ProgrammingTip","datePublished":"2018-02-10T11:07:43Z","dateModified":"2018-02-10T11:07:43Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4459}]}},{"@type":"ListItem","position":12,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/394","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/394","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/394","headline":"NopCommerce ID-Less URL Structure Demystified 💎 The link for my NopLite - nopCommerce Responsive Theme is ✨ :…","articleBody":"NopCommerce ID-Less URL Structure Demystified 💎\n\nThe link for my NopLite - nopCommerce Responsive Theme is ✨ :\nhttp://www.pronopcommerce.com/noplite-nopcommerce-responsive-theme\n\nYou don't see ANY integer in the URL, but nopCommerce somehow knows how to map from the URL to the appropriate ID. ✅\n\nOn the other hand, the nopCommerce 2.65 URL for my NopLite theme would have been 👎🏻 :\nhttp://www.pronopcommerce.com/p/7/noplite-nopcommerce-responsive-theme\n\nNote the '7' somewhere in between the URL, that's the Integer Product ID. 🗃\n\nSo the question is, how does nopCommerce 2.70 and 2.80 know the ID without looking the ID❓\n\nhttps://t.me/pgimg/105\n\n[ Article ] : http://bit.do/nopu\n\n〰〰〰〰〰〰\n#AspMvc #Routing #NopCommerce\n@ProgrammingTip","datePublished":"2018-02-07T19:49:18Z","dateModified":"2018-02-07T19:49:18Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4188}]}},{"@type":"ListItem","position":13,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/393","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/393","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/393","headline":"Mocky 🤖 Mock your HTTP responses to test your REST API. 👾 Mocky is a simple app which allows to generate cust…","articleBody":"Mocky 🤖 \n\nMock your HTTP responses to test your REST API. 👾\n\nMocky is a simple app which allows to generate custom HTTP responses. 🌐\n\nIt's helpful when you have to request a build-in-progress WS, when you want to mock the backend response in a singleapp, or when you want to test your WS client. ✅\n\nIs Mocky online❓\nYes, Mocky is online, free and unlimited. 💸\n\nhttps://t.me/pgimg/104\n\n[ Website ] : mocky.io\n\n〰〰〰〰〰〰\n#Mock #Rest\n@ProgrammingTip","datePublished":"2018-02-03T07:01:55Z","dateModified":"2018-02-03T07:01:55Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4417}]}},{"@type":"ListItem","position":14,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/390","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/390","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/390","headline":"The Clean Coder : A Code of Conduct for Professional Programmers📕 Author : Robert C. Martin 🖊 Level : Advance…","articleBody":"The Clean Coder : A Code of Conduct for Professional Programmers📕\n\nAuthor : Robert C. Martin 🖊\n\nLevel : Advanced 💎\n\n〰〰〰〰〰〰\n#Book #CleanCode\n@ProgrammingTip","datePublished":"2018-01-31T15:56:26Z","dateModified":"2018-01-31T15:56:26Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":5105}]}},{"@type":"ListItem","position":15,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/389","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/389","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/389","headline":"Anatomy of an ASP.NET Identity PasswordHash 🔐 Have you ever looked at a user record in an ASP.NET Identity’s…","articleBody":"Anatomy of an ASP.NET Identity PasswordHash 🔐\n\nHave you ever looked at a user record in an ASP.NET Identity’s users table and wondered just what is being saved on the PasswordHash column❓\n\nIt looks like this (it’s in base64) :\nAQAAAAEAACcQAAAAEJSPbbFM1aeXB8fGRV7RRamLpjzktAF7FjwDWtFx35eol4AxN6vm4zWR9EApc7WPsQ\n\nApart from maybe satisfying your curiosity, what could you benefit from knowing exactly what’s on that seemingly random sequence of characters❓\n\nWell, you could confidently update from different versions of ASP.NET Identity. 🌀\n\nAlso, if you ever get tired of ASP.NET Identity for whatever reason, you could move your user accounts to whatever alternative you found that might be better. ✅\n\nOr, you just want to have a simple users’ table and not have to deal with all of what you need to know to make ASP.NET Identity work. 👥\n\nAll of this while still being able to move your user accounts to ASP.NET Identity some day if you choose to do so. ♻️\n\nhttps://t.me/pgimg/103\n\n[ Article ] : http://bit.do/aspidn\n\n〰〰〰〰〰〰\n#AspMvc #Identity\n@ProgrammingTip","datePublished":"2018-01-29T07:45:09Z","dateModified":"2018-01-29T07:45:09Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":4805}]}},{"@type":"ListItem","position":16,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/388","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/388","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/388","headline":"Fasify.io ⚡️ An efficient server implies a lower cost of the infrastructure, a better responsiveness under lo…","articleBody":"Fasify.io ⚡️\n\nAn efficient server implies a lower cost of the infrastructure, a better responsiveness under load and happy users. 🤓\n\nHow can you efficiently handle the resources of your server, knowing that you are serving the highest number of requests as possible, without sacrificing security validations and handy development ⁉️\n\nEnter Fastify. Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture. It is inspired by Hapi and Express and as far as we know, it is one of the fastest web frameworks in town. 🔥\n\nInstall 📥\nnpm install fastify --save\n\n🔹🔸🔹🔸\n\n\n[ Example ]\n\n// Require the framework and instantiate it\nconst fastify = require(\"fastify\") ()\n \n// Declare a route\nfastify.get(\"/\", function (request, reply) {\n reply.send({ hello: \"world\" })\n})\n \nfastify.listen(3000, function (err) {\n if (err) throw err\n console.log(`server listening on ${fastify.server.address().port}`)\n})\n\n🔹🔸🔹🔸\n\n\n[ Async-Example ]\n\nconst fastify = require('fastify')()\n \nfastify.get('/', async (request, reply) => {\n reply.type('application/json').code(200)\n return { hello: 'world' }\n})\n \nfastify.listen(3000, function (err) {\n if (err) throw err\n console.log(`server listening on ${fastify.server.address().port}`)\n})\n\nhttps://t.me/pgimg/102\n\n\n[ Website ] : https://www.fastify.io\n\n〰〰〰〰〰〰\n#JavaScript #NPM #Fastify\n@ProgrammingTip","datePublished":"2018-01-27T08:21:20Z","dateModified":"2018-01-27T08:21:20Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3985}]}},{"@type":"ListItem","position":17,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/387","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/387","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/387","headline":"Generating Friendly URLs in ASP.NET MVC 🦄 Have a look at the following URL 👀 : http://www.amazon.com/gp/produ…","articleBody":"Generating Friendly URLs in ASP.NET MVC 🦄\n\nHave a look at the following URL 👀 :\n\nhttp://www.amazon.com/gp/product/1617292397/ref=s9_psimh_gw_p14_d4_i1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=desktop-1&pf_rd_r=0TFM5Q6WM6KD9NPNG9G7&pf_rd_t=36701&pf_rd_p=2079475242&pf_rd_i=desktop\n\nDo you have any idea what the URL is pointing to by just looking at it❓Most likely not.\n\nNow look at this one 💎 :\n\nhttp://www.dpreview.com/articles/9485436827/the-big-beast-hands-on-with-the-panasonic-lumix-dmc-gx8\n\nAny idea❓Well it would seem that it is an article about a hands-on with the Panasonic Lumix DMX-GX8. 🖥\n\nIn today’s blog post I would like to demonstrate how to generate “friendly URLs” in your ASP.NET applications. ✅\n\nFriendly not just in the sense that someone can look at it and figure out what the URL is pointing to, but more importantly friendly for search engines. 🌐\n\nhttps://t.me/pgimg/101\n\n[ Article ] : http://bit.do/aspseo\n\n〰〰〰〰〰〰\n#AspMvc #SEO\n@ProgrammingTip","datePublished":"2018-01-25T09:51:52Z","dateModified":"2018-01-25T09:51:52Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3648}]}},{"@type":"ListItem","position":18,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/386","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/386","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/386","headline":"ASP.NET Core Interview Questions 💼 This post is about ASP.NET Core Interview Questions. ⁉️ These questions ar…","articleBody":"ASP.NET Core Interview Questions 💼\n\nThis post is about ASP.NET Core Interview Questions. ⁉️\n\nThese questions are directly tied to ASP.NET Core. ✅\n\nThey are not meant to serve as only questions that you would ask a candidate during an interview. ❌\n\nUse these to assess if the candidate has any knowledge about ASP.NET Core. 👓\n\nThe questions should serve as guidelines for core ASP.NET Core concepts that candidate should be familiar with. 👪\n\nhttps://t.me/pgimg/100\n\n[ Article ] : http://bit.do/aspint\n\n〰〰〰〰〰〰\n#AspMvc #AspCore #Core #Interview\n@ProgrammingTip","datePublished":"2018-01-23T08:12:21Z","dateModified":"2018-01-23T08:12:21Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3475}]}},{"@type":"ListItem","position":19,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/385","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/385","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/385","headline":"Q&A: Successful Developer Career Strategies 💎 The field of computer science is huge, far too wide for anyone…","articleBody":"Q&A: Successful Developer Career Strategies 💎\n\nThe field of computer science is huge, far too wide for anyone to master in all areas. 🌍\n\nWe all need to make difficult choices about how and where we spend our time. ⏰\n\nIt’s often said that in order to be successful in this industry you need to specialize. 🤓\n\nBut it’s also often said that you need a wide range of experience. ✅\n\nSo what is more important : breadth or depth ⁉️\n\nThis is a very difficult question, and is why I asked for the advice of some of the very brightest minds in our industry. 👑\n\nOur expert panel is comprised of the following seven developers 👥 :\n\n • Scott Allen\n • Mark Seemann\n • Julie Lerman\n • Kyle Simpson\n • Troy Hunt\n • Oren Eini\n • Cory House\n\nhttps://t.me/pgimg/99\n\n[ Article ] : http://bit.do/qadev\n\n〰〰〰〰〰〰\n#QA #Strategy\n@ProgrammingTip","datePublished":"2018-01-20T08:55:29Z","dateModified":"2018-01-20T08:55:29Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3644}]}},{"@type":"ListItem","position":20,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/384","url":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/384","mainEntityOfPage":"https://telemetr.io/en/channels/1124766173-programmingtip/posts/384","headline":"Use T4MVC to Remove Magic Strings in ASP.NET MVC Apps 🎩 ASP.NET MVC has a fascination with magic strings. ❌ B…","articleBody":"Use T4MVC to Remove Magic Strings in ASP.NET MVC Apps 🎩\n\nASP.NET MVC has a fascination with magic strings. ❌\n\nBasically any time you need to specify an action, a view, or controller, you use a magic string ✨ :\n\nreturn RedirectToAction(\"Index\", \"Home\", new { id = 4 });\n\nreturn View(\"Details\");\n\n@Html.ActionLink(\"Back to details\", \"Detals\", \"User\", new {id = 12}, new {@class = \"backlink\"});\n\n@using (Html.BeginForm(\"Details\", \"User\", FormMethod.Post))\n\nThe problem with magic strings is the same problem that ViewBag has ⚠️ :\n\n1️⃣ There's no type checking.\n\n2️⃣ The developer won't catch these errors until runtime, and sometimes not at all.\n\n🔹🔸🔹🔸\n\nT4MVC aims to remove magic strings from MVC and replace them with strongly-typed ActionResults. ✅\n\nIt adds a bunch more overloads to methods such as ActionLink(), BeginForm(), and RedirectToAction() so that they can now accept ActionResults as parameters. 🗃\n\nThereby making them strongly-typed and removing their dependency on magic strings. 💎\n\nMost importantly, it means we can take the above code samples and refactor them to look like this 🤙🏻 :\n\nreturn RedirectToAction(MVC.Home.Index(4));\n\nreturn View(MVC.User.Views.ViewNames.Details);\n\n@Html.ActionLink(\"Back to details\", MVC.User.Details(12), new {@class = \"backlink\"});\n\n@using (Html.BeginForm(MVC.User.Details(), FormMethod.Post))\n\n\nhttps://t.me/pgimg/98\n\n[ Article ] : http://bit.do/t4mvc\n\n〰〰〰〰〰〰\n#AspMvc #CleanCode #T4MVC\n@ProgrammingTip","datePublished":"2018-01-18T17:23:17Z","dateModified":"2018-01-18T17:23:17Z","author":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"publisher":{"@type":"Organization","name":"Programming & AI Tips 💡","url":"https://telemetr.io/en/channels/1124766173-programmingtip","image":"https://img.telemetr.io/c/1e7p3T/413755825240262715?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3428}]}}]}
Controller Lookup & Default Controller Factory 🏭 As the name, the Controller factory is the component responsible for searching and creating controllers.👷 Like many other components, ASP.NET MVC has a built-in factory named DefaultControllerFactory that's pretty much sufficient in most cases. 💎 Searching a controller is a perform intensive job and the DefaultControllerFactory does some efficient caching mechanism to avoid looking for controllers every time when there is a need. ✅ In this article we are going to explore how the DefaultControllerFactory searches for a controller and what kind of strategies it uses to do the process efficiently. ⚡️ https://t.me/pgimg/113 [ Article ] : bit.do/cfac 〰〰〰〰〰〰 #AspMvc #Controller #Depth @ProgrammingTip

ASP.NET Core 2 – Global Model Validation ⚠️ We use a lot of repetitive code in our actions. ♻️ Inside of our controller actions we usually check if the model is valid by using ModelState property available on MVC’s base controller class :
if (!ModelState.IsValid)  
  return BadRequest(ModelState);
The bad thing about is that we repeat this piece of code throughout a lot of our actions. ❌ How we can make it better❓ This article shows you how to validate ModelState with a global filter. 💎 https://t.me/pgimg/112 [ Article ] : bit.do/mval 〰〰〰〰〰〰 #AspMvc #Core #Validation @ProgrammingTip

14 Latest and Best 404 Error Page Designs for Webs/Mobile Apps ✨ A 404 error page, which often serves to alert web/app visitors that the page they are trying to reach does not exist, is often regarded as one of the most possible elements to lose users/visitors with boring and dull logging-in/out/loading/leading pages in a web/app. 🙄 However, that does not mean such error pages will be a nightmare in all cases. ❌ Actually, a creative, cool, interesting or informative 404 error page can not only lead customers to other parts of your websites/apps smoothly, but also reduce customer frustration and let them stay on the site/app much longer. 💎 Let’s keep reading this article and enjoy 14 latest and best 404 error page designs to get inspiration and learn how to make a beautiful, interesting and attractive 404 error not found page design. ⚡️ https://t.me/pgimg/111 [ Article ] : https://goo.gl/A5mJjx 〰〰〰〰〰〰 #Design #UI #UX @ProgrammingTip

If you don't need it now, don't do it now❗️ Design Patterns are powerful, and it's easy to see all kinds of ways they can be used in your current designs.⚡️ Developers naturally love to create beautiful architectures that are ready to take on change from any direction.💙 If you have a practical need to support change in a design today, go ahead and employ a pattern it handle that change. ✅ However, if the reason is only hypothetical, don't add the pattern, it is only going to add complexity to your system, and you might never need it. ❌ 〰〰〰〰〰〰 #DesignPatterns #Tips @ProgrammingTip

A Pattern is a solution to a problem in a context. ✅ We're going to step throught each of these parts, context, problem and solution ✨ : The context is the situation in which the pattern applies. This should be a recurring situation. 👨🏻‍🔧 The problem refers to the goal you are trying acheive in this context, but it also refers to any constraints that occur in the context. 🏆 The solution is what you're after : a general design that anyone can apply which resolves the goal and set of constraints. 🏅 ➖ Example Problem: How do I get to work on time❓ Context: I've locked my keys in the car. 🗝 Solution: Break the window, get in the car, start the engine and drive to work. 🚗
"If you find yourself in a context with a problem that has a goal that is affected by a set of constraints, then you can apply a design that resolves the goal and constraints and leads to a solution."
〰〰〰〰〰〰 #DesignPatterns #Tips @ProgrammingTip

Securing ASP.NET Core 2.0 Applications with JWTs + Auth0 🔑 JSON Web Tokens, often shortened with JWTs, are gathering more and more popularity in the Web environment. 🌐 It is an open standard that allows transmitting data between parties as a JSON object in a compact and secure way. 🔁 They are usually used in authentication and information exchange scenarios, since the data transmitted between a source and a target are digitally signed so that they can be easily verified and trusted. ✅ Let's take a look at how to set up a ASP.NET Core 2 application with JWT support by creating a Web API application. ✨ https://t.me/pgimg/110 [ Article ] : http://bit.do/auth0 〰〰〰〰〰〰 #AspMvc #Core #JWT @ProgrammingTip

Using Google reCAPTCHA in ASP.NET MVC 👾 reCAPTCHA is a free service that protects your website from spam and abuse. ✅ reCAPTCHA uses an advanced risk analysis engine and adaptive Captchas to keep automated software from engaging in abusive activities on your site. 🚫 It does this while letting your valid users pass through with ease. 💎 This article shows how to integrate reCAPTCHA version 2.0 into an ASP.NET MVC website in clean way. ⚡️ Article Author : @MoienTJ https://t.me/pgimg/109 [ Article ] : bit.do/recaptcha 〰〰〰〰〰〰 #reCaptcha #AspMvc @ProgrammingTip

Pug 🐶 Pug is a high-performance template engine heavily influenced by Haml and implemented with JavaScript for Node.js and browsers. ✅ Pug is a clean, whitespace sensitive syntax for writing html. 🌐 Here is a simple example 💎 :
doctype html
html(lang="en")
  head
    title= pageTitle
    script(type='text/javascript').
      if (foo) bar(1 + 5)
  body
    h1 Pug - node template engine
    #container.col
      if youAreUsingPug
        p You are amazing
      else
        p Get on it!
      p.
        Pug is a terse and simple templating language with a
        strong focus on performance and powerful features.
Becomes :
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Pug</title>
    <script type="text/javascript">
      if (foo) bar(1 + 5)
    </script>
  </head>
  <body>
    <h1>Pug - node template engine</h1>
    <div id="container" class="col">
      <p>You are amazing</p>
      <p>Pug is a terse and simple templating language with a strong focus on performance and powerful features.</p>
    </div>
  </body>
</html>
🔸🔹🔸🔹 ➖ Implementations in other languages 👾 Ports with very close syntax, adapted to other languages : • PHP • Java • Python • Ruby • C# (ASP.NET Core) https://t.me/pgimg/108 [ Github ] : http://bit.do/pugv 〰〰〰〰〰〰 #ViewEngine #TemplateEngine @ProgrammingTip

#Fun #Valentine 😂 @ProgrammingTip

HTTP codes as Valentine’s Day comics 💙 With Valentine’s Day around the corner, it is a time for romantic hopefuls to ask out the object of their affection, and await an answer. 🤠 It could be a simple “yes,” a sad “no,” or a cryptic “I don’t think about you that way, but maybe we can grab a coffee tomorrow❓” Which brings us to HTTP (Hypertext Transfer Protocol) codes. 🌐 When a URL is typed in a browser, a request is sent out to the server and the browser awaits an answer, just like in our scenario. ♻️ These answers come in the form of an HTTP code, which is a three-digit number that maps to an answer. 2️⃣0️⃣0️⃣ With the image of Valentine’s Day in mind, here are a few likely scenarios. 😆❤️ https://t.me/pgimg/107 [ Article ] : http://bit.do/httpval 〰〰〰〰〰〰 #HTTP #Valentine #Fun @ProgrammingTip

Pretty Checkbox 🌈 A pure CSS library to beautify checkbox and radio buttons. ✨ Framework Compatability 🔥 : • Angular • Bootstrap • React • Vue https://t.me/pgimg/106 [ Website ] : http://bit.do/csspr 〰〰〰〰〰〰 #CSS #Library @ProgrammingTip

NopCommerce ID-Less URL Structure Demystified 💎 The link for my NopLite - nopCommerce Responsive Theme is ✨ :
http://www.pronopcommerce.com/noplite-nopcommerce-responsive-theme
You don't see ANY integer in the URL, but nopCommerce somehow knows how to map from the URL to the appropriate ID. ✅ On the other hand, the nopCommerce 2.65 URL for my NopLite theme would have been 👎🏻 :
http://www.pronopcommerce.com/p/7/noplite-nopcommerce-responsive-theme
Note the '7' somewhere in between the URL, that's the Integer Product ID. 🗃 So the question is, how does nopCommerce 2.70 and 2.80 know the ID without looking the ID❓ https://t.me/pgimg/105 [ Article ] : http://bit.do/nopu 〰〰〰〰〰〰 #AspMvc #Routing #NopCommerce @ProgrammingTip

Mocky 🤖 Mock your HTTP responses to test your REST API. 👾 Mocky is a simple app which allows to generate custom HTTP responses. 🌐 It's helpful when you have to request a build-in-progress WS, when you want to mock the backend response in a singleapp, or when you want to test your WS client. ✅ Is Mocky online❓ Yes, Mocky is online, free and unlimited. 💸 https://t.me/pgimg/104 [ Website ] : mocky.io 〰〰〰〰〰〰 #Mock #Rest @ProgrammingTip

The Clean Coder : A Code of Conduct for Professional Programmers📕 Author : Robert C. Martin 🖊 Level : Advanced 💎 〰〰〰〰〰〰 #Book #CleanCode @ProgrammingTip

Anatomy of an ASP.NET Identity PasswordHash 🔐 Have you ever looked at a user record in an ASP.NET Identity’s users table and wondered just what is being saved on the PasswordHash column❓ It looks like this (it’s in base64) :
AQAAAAEAACcQAAAAEJSPbbFM1aeXB8fGRV7RRamLpjzktAF7FjwDWtFx35eol4AxN6vm4zWR9EApc7WPsQ
Apart from maybe satisfying your curiosity, what could you benefit from knowing exactly what’s on that seemingly random sequence of characters❓ Well, you could confidently update from different versions of ASP.NET Identity. 🌀 Also, if you ever get tired of ASP.NET Identity for whatever reason, you could move your user accounts to whatever alternative you found that might be better. ✅ Or, you just want to have a simple users’ table and not have to deal with all of what you need to know to make ASP.NET Identity work. 👥 All of this while still being able to move your user accounts to ASP.NET Identity some day if you choose to do so. ♻️ https://t.me/pgimg/103 [ Article ] : http://bit.do/aspidn 〰〰〰〰〰〰 #AspMvc #Identity @ProgrammingTip

Fasify.io ⚡️ An efficient server implies a lower cost of the infrastructure, a better responsiveness under load and happy users. 🤓 How can you efficiently handle the resources of your server, knowing that you are serving the highest number of requests as possible, without sacrificing security validations and handy development ⁉️ Enter Fastify. Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture. It is inspired by Hapi and Express and as far as we know, it is one of the fastest web frameworks in town. 🔥 Install 📥
npm install fastify --save
🔹🔸🔹🔸 [ Example ]
// Require the framework and instantiate it
const fastify = require("fastify") ()
 
// Declare a route
fastify.get("/", function (request, reply) {
  reply.send({ hello: "world" })
})
 
fastify.listen(3000, function (err) {
  if (err) throw err
  console.log(`server listening on ${fastify.server.address().port}`)
})
🔹🔸🔹🔸 [ Async-Example ]
const fastify = require('fastify')()
 
fastify.get('/', async (request, reply) => {
  reply.type('application/json').code(200)
  return { hello: 'world' }
})
 
fastify.listen(3000, function (err) {
  if (err) throw err
  console.log(`server listening on ${fastify.server.address().port}`)
})
https://t.me/pgimg/102 [ Website ] : https://www.fastify.io 〰〰〰〰〰〰 #JavaScript #NPM #Fastify @ProgrammingTip

Generating Friendly URLs in ASP.NET MVC 🦄 Have a look at the following URL 👀 :
http://www.amazon.com/gp/product/1617292397/ref=s9_psimh_gw_p14_d4_i1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=desktop-1&pf_rd_r=0TFM5Q6WM6KD9NPNG9G7&pf_rd_t=36701&pf_rd_p=2079475242&pf_rd_i=desktop
Do you have any idea what the URL is pointing to by just looking at it❓Most likely not. Now look at this one 💎 :
http://www.dpreview.com/articles/9485436827/the-big-beast-hands-on-with-the-panasonic-lumix-dmc-gx8
Any idea❓Well it would seem that it is an article about a hands-on with the Panasonic Lumix DMX-GX8. 🖥 In today’s blog post I would like to demonstrate how to generate “friendly URLs” in your ASP.NET applications. ✅ Friendly not just in the sense that someone can look at it and figure out what the URL is pointing to, but more importantly friendly for search engines. 🌐 https://t.me/pgimg/101 [ Article ] : http://bit.do/aspseo 〰〰〰〰〰〰 #AspMvc #SEO @ProgrammingTip

ASP.NET Core Interview Questions 💼 This post is about ASP.NET Core Interview Questions. ⁉️ These questions are directly tied to ASP.NET Core. ✅ They are not meant to serve as only questions that you would ask a candidate during an interview. ❌ Use these to assess if the candidate has any knowledge about ASP.NET Core. 👓 The questions should serve as guidelines for core ASP.NET Core concepts that candidate should be familiar with. 👪 https://t.me/pgimg/100 [ Article ] : http://bit.do/aspint 〰〰〰〰〰〰 #AspMvc #AspCore #Core #Interview @ProgrammingTip

Q&A: Successful Developer Career Strategies 💎 The field of computer science is huge, far too wide for anyone to master in all areas. 🌍 We all need to make difficult choices about how and where we spend our time. ⏰ It’s often said that in order to be successful in this industry you need to specialize. 🤓 But it’s also often said that you need a wide range of experience. ✅ So what is more important : breadth or depth ⁉️ This is a very difficult question, and is why I asked for the advice of some of the very brightest minds in our industry. 👑 Our expert panel is comprised of the following seven developers 👥 : • Scott Allen • Mark Seemann • Julie Lerman • Kyle Simpson • Troy Hunt • Oren Eini • Cory House https://t.me/pgimg/99 [ Article ] : http://bit.do/qadev 〰〰〰〰〰〰 #QA #Strategy @ProgrammingTip

Use T4MVC to Remove Magic Strings in ASP.NET MVC Apps 🎩 ASP.NET MVC has a fascination with magic strings. ❌ Basically any time you need to specify an action, a view, or controller, you use a magic string ✨ :
return RedirectToAction("Index", "Home", new { id = 4 });

return View("Details");

@Html.ActionLink("Back to details", "Detals", "User", new {id = 12}, new {@class = "backlink"});

@using (Html.BeginForm("Details", "User", FormMethod.Post))
The problem with magic strings is the same problem that ViewBag has ⚠️ : 1️⃣ There's no type checking. 2️⃣ The developer won't catch these errors until runtime, and sometimes not at all. 🔹🔸🔹🔸 T4MVC aims to remove magic strings from MVC and replace them with strongly-typed ActionResults. ✅ It adds a bunch more overloads to methods such as ActionLink(), BeginForm(), and RedirectToAction() so that they can now accept ActionResults as parameters. 🗃 Thereby making them strongly-typed and removing their dependency on magic strings. 💎 Most importantly, it means we can take the above code samples and refactor them to look like this 🤙🏻 :
return RedirectToAction(MVC.Home.Index(4));

return View(MVC.User.Views.ViewNames.Details);

@Html.ActionLink("Back to details", MVC.User.Details(12), new {@class = "backlink"});

@using (Html.BeginForm(MVC.User.Details(), FormMethod.Post))
https://t.me/pgimg/98 [ Article ] : http://bit.do/t4mvc 〰〰〰〰〰〰 #AspMvc #CleanCode #T4MVC @ProgrammingTip