-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathblogs.json
80 lines (80 loc) · 27.7 KB
/
blogs.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
[
{
"year": 2021,
"posts": [
{
"title": "Enigmatic Webslinger",
"date": "Aug 22",
"author": "Anirudh Chimpidi",
"preview": "Frontend always intrigues me, and this case was no different. We just ...",
"content": "\n# Design\n\nFrontend always intrigues me, and this case was no different. We just had a meeting about what to do next for enigma, and one of the topics as I expected was about the Enigma website. At that point of time, the club website was a Hugo template, and the meeting to a point was considering to use yet another Hugo template to go ahead with (primarily because of the very blogging structure you see now). And there I was, unsatisfied with the choices, so, I proposed to work the site from scratch.\n\nAfter some discussion, and me kind of being able to convince them to setup the main site and blogging stuff, we came to a conclusion that the Enigma site would undergo a revamp from scratch. The next question was, what would it look like? Well, for that part I suggested we could go with the designs available on the Hugo templates, or just any other design from other sites, or better make our own. I was confident about this because I had been doing sites for a while now, and the framework I use, Vue.js, is very powerful.\n\nIt was Rahul, who was really keen on site designs and suggested some quite interesting ones. At that point in time, I was trying something of my own on Figma and also suggested a concept. Rahul, who then had some more ideas about space and stars as a template and presented his version which was really good. But after some deliberation we did come to a conclusion, that kind of a design would rather suit a hackathon kind of theme not really a Club website as a whole. Moving ahead a few days and taking ideas from other club sites and templates there was another design, but there was a problem; it was a flashy light themed site ...\n\n![Early Designs](https://raw.githubusercontent.com/MU-Enigma/store/master/blogs/assets/enigmatic_webslinger/pre-design.png)\n### Early Designs of the website\n\nWell, that was kinda our thing to criticize anything with a light theme lol. Anyway, keeping these jokes aside, we did come to our final design. The next part was where all the fun (and pain) began.\n\n# Implementation\n\nI decided to go with [Vue](https://vuejs.org/), a frontend JS webdev framework, along with a non bundling framework, [Vite](https://vitejs.dev/) to speed things up. For the side note, I used [TailwindCSS](https://tailwindcss.com/) as the CSS framework (makes your life so much easy). This, might sound a lot for people who are not aware, but these frameworks are quite easy to use, and I have been using them for my other project (topic for some other day, maybe?) for a while now. But all this was for the main site itself, the blog part was still a mystery. And just like that I was actually able to complete the main site stuff in like 2 days, and still wondering how to go ahead with blogs.\n\nRounak and me came up with an idea to fetch APIs and load up blogs on the site, kinda like our own implementation. I was able to setup markdown to html parsing as well and we all thought success was assured, except when I realised the parsing only happens when the markdown files are called as Vue components, which won't be possible on live site with API calls. So, what now? I moved to using Jekyll, my only option left; the blog site as a separate page from the main site, away from Vue and Tailwind back to vanilla trinity.\n\nI took a deep breath, and set myself up for that, and to my surprise I was able to mimic the exact components in vanilla html and css just like the main site, precisely. Now, everything sorted out and running on local servers, it was time for the main deal: deploying on GitHub Pages (since we did not decide on the domain part yet).\n\n# Deploy\n\nThe steps to deploy a jekyll site via GH pages were meant to be on the main domain, i.e., mu-enigma.github.io would host the site, while what we wanted was mu-enigma.github.io/blogs. It was after some numerous experiments with the entry point and path changes was I able to set it up and running the way we wanted it to be, only to see it break routing paths on local testing (which to be honest, was not a big deal).\n\nOn the contrary, deploying a Vue app on GH pages was the exact opposite to Jekyll, but apparently, and as you'd expect, it was much easier to setup and deploy, without breaking local testing routes.\n\nNow, with everything setup and ready to deploy, we needed some automation to build and deploy the site everytime a change was pushed; come in GitHub Actions to the rescue! We were lucky enough to find an automation workflow for Vue apps with support for Vite plugin for the main site, and as for blogs, Jekyll is very well integrated to GH pages so nothing to worry about.\n\nWith all that said and done, we were able to deploy the brand new Engima site just a day before our new semester began, just like we had planned for; a whole week of work to assure success. There are still a few more things WIP which will be released very soon to the site: we're not done yet, I'm not done yet.\n",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "enigmatic-webslinger"
},
{
"title": "Bots behind Engima Instagram Page",
"date": "Aug 14",
"author": "Rahul Arepaka",
"preview": "Handling Instagram pages every day is quite tiring for getting the information ...",
"content": "\nHandling Instagram pages every day is **quite tiring** for getting the information, editing the post, and uploading them on the Instagram page.\n\nTo handle this process, we decided to **automate this entire process** which includes the following:\n- Editing the post on Photoshop\n- Exporting to the desired format\n- Uploading them on Bulk Instagram post dump tools\n\nInitially, we planned on doing the **manual way** of posting content on Instagram to understand the process before automating it using bots and code.\n\nWe made **templates** for the content for each day and also **collect the data** in an excel document in our shared cloud folders such as Onedrive.\n\nThese we are our *content planned for the week*:\n\n| Day | Post |\n| --------- | -------------- |\n| Monday | Fact |\n| Tuesday | Python Library |\n| Wednesday | Innovators |\n| Thursday | Algorithm |\n| Friday | Repost |\n| Saturday | Series |\n| Sunday | Movie |\n\nOnce we decided the type of contents for the week, we had to **start designing the templates** for each day using **photoshop**.\n\n![Yuppies Collage General LinkdIn Banner](https://user-images.githubusercontent.com/10435564/129452182-c0f89ca8-69be-4f1b-8f41-898833deda50.png)\n\nThen, we moved to collecting data which includes **media path and information**. For example, **Sunday** we need name of the **movie, rating and picture of the movie**, so we collected and organized information like this:\n\n| movie | rating | pic |\n| ------------------------- | ------ | -------------------------------------- |\n| The Social Network | 7.7 | D:\\\\engima\\_psd\\\\Sunday\\\\takedown.jpg |\n| Takedown | 6.3 | D:\\\\engima\\_psd\\\\Sunday\\\\pirates.png |\n| Pirates of Silicon Valley | 7.2 | D:\\\\engima\\_psd\\\\Sunday\\\\social.jpg |\n| The Imitation Game | 8 | D:\\\\engima\\_psd\\\\Sunday\\\\imidation.jpg |\n| The Fifth Estate | 6.2 | D:\\\\engima\\_psd\\\\Sunday\\\\fifth.jpg | \n\nUpon the reciveing the information in excel format, we have converted them into **CSV** (**Comma-Separated Values**) which helps softwares and our code better to read the files\n\nFor automating the editing process, we have used photoshop and recently, the updated version contained **batch automation** which helps us do something like by uploading the csv file.\n\n![ezgif com-gif-maker (1)](https://user-images.githubusercontent.com/10435564/129452483-59113fed-49fa-43c0-9b18-38df87477e73.gif)\n\nWhich finally leads to uploading them on **bulk uploading instagram platform**.Intailly, we planned on **coding the platform** which took read the csv file and upload a particular post based on the time and date but ***instagram API didn't work*** unless we have a *instagram certified platform developer tools*.\n\nSo we chose a free platform called **Combin Scheduler** but this required the application to **run in the background** and PC/Computer to **be turned on all the time** and during the posting date and time but was ***difficult***.\n\n![img](https://user-images.githubusercontent.com/10435564/129452755-71af31d7-052e-4492-ad8e-5063b2110bfe.png)\n\nHence, we had a **desktop environment server based on India** which had the platform running **24/7** and later we would move this environment to our college server.\n\nAll thanks to **@cybertrauma** and **@srikar** for ***setting up the server*** and making the platform running.\n",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "bots-behind-engima-instagram-page"
},
{
"title": "Extensible Messaging Presence Protocol",
"date": "Aug 11",
"author": "Dhathri Meda",
"preview": "XMPP was a vague term to me prior the live-stream. Then, I ...",
"content": "\nXMPP was a vague term to me prior the live-stream. Then, I eventually researched about it and began to appreciate its wide usage and great potential in instant messaging applications. The protocol is decentralized, secure, and flexible. It not only supports one-to-one messaging between entities but also multi-party messaging (which enables an entity to join a chat room for the exchange of messages with several participants). The messages can be text messages embedded in XML format but XML can also be used to send control messages between entities i.e., users, bots, servers, devices etc. This architecture is very similar email, where someone on gmail.com can send an email to someone with an account on hotmail.com.\r\n\r\nWhatsApp mainly utilizes Multi user chat (MUC) which is is an XMPP extension for multi-party information exchange similar to Internet Relay Chat (IRC), whereby multiple XMPP users can exchange messages in the context of a room or channel. In addition to standard chatroom features such as room topics and invitations, the protocol defines a strong room control model, including the ability to kick and ban users, to name room moderators and administrators, to require membership or passwords in order to join the room, etc. Because MUC rooms are based on XMPP, they can be used to exchange not only plaintext message bodies but a wide variety of XML payloads.\r\n\r\nXMPP is quite unique since you can create an account on the client and it will push it through and create it on the server. So, we don’t have to log into the server to do it. Hence, we can host our own server using XMPP. It dosen't just allow us to communicate with people that are on the server with the same IM service but it also allows servers to communicate with themselves creating a global federated network. For creating our own XMPP servers, we can choose server softwares such as ejabberd and Prosody. These support server-to-server connections. All we need for creating our own XMPP server are pubic domain name, public IP address and a port open in your firewall.\r\n\r\nWhatsApp uses ejabberd with a FreeBSD operating system. It is scalable, optimized for mobile needs, friendly to high-load systems, and has little downtime. Ejabberd has a great degree of customization and modularity. The server offers high security with SSL/TLS encryption.\r\n",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "extensible-messaging-presence-protocol"
},
{
"title": "Live Stream?",
"date": "Jul 30",
"author": "Rounak Das",
"preview": "Youtube? Live-Stream? For CS club of College? Wow! Not many gets to ...",
"content": "\nYoutube? Live-Stream? For CS club of College? Wow! Not many gets to be a part of Club Events in college. This was my first club event after joining college amidst covid. Well, unsure about what to do, I think I did a pretty good job in pulling through the \"first-ever\" live stream of Enigma, considering the fact that I never was a part of any kind of live-stream event ever.\n\nTo be honest, when the Vice-President of Enigma contacted me in this regard, I was a bit skeptical about the whole idea. Well, as a 'fresher' (more like a sophomore) it was too good an oppotunity to miss and get acquainted with the Club Heads and Seniors. \"Yeah sure, why not!\" was my quick response. Srikar, the Vice-President of Enigma immediately invited me to have a voice chat in discord to discuss about the whole plan. We decided to go with the theme, \"Map Generation in Video Games.\" But then Srikar wanted to do something different in it. Lucky enough, we had Raghav (the ex-President of Enigma) who suggested us the idea about Conway's Game of Life. Finding it unconventional, we decided to stick to it and work on the same. We researched and learned the General Principle and Algorithms behind Conway's Game of Life. Apart from this, I researched on some common algorithms used for Map Generation in Video Games. The algorithms were interesting and I could relate them to some of the retro games that I once used to be addicted to as a kid.\n\nI had experience with python and some common but cool libraries like numpy and matplotlib which are extremely powerful. This made the work a lot easier. Srikar worked on implementing Conway's Game of Life algorithm and code them, while I worked in giving it dimensions in Z-Axis and hence make it 3D! It was not at all hard and I enjoyed coding it. This way I became the first 2020 batch student to become a member of <a href = \"https://github.com/MEC-Enigma\">Enigma Organisation</a>. After making several maps using the algorithms, we were ready to put it up in the slides. \n\nSince it was the first live-stream for Enigma, things were pretty messy and hard to figure out. Also, it was already time for the live-stream and we had just a day left for it. We had so much to do and very less time. We had to make Posters, we had to announce in the official discord Server of Enigma, set up OBS studio and what not. Raghav helped us a lot in figuring out these stuffs. Finally we were up for the live-stream. As a bonus, we got one of our seniors, Anchit to speak on map generation in video-games who is a fantastic game-dev. Well, we thought about turning our videos on, but due to some technical difficulty, we weren't able to make that happen. But as a whole, I feel we did pretty good.\n\nThere were areas we could have done better. Well, this was not the end and we will have more live streams of this kind. Srikar and other Club Heads were happy because the live-stream was a success and attracted many more enthusiasts into the club. The enigmatic charm of Enigma must never fade.\n",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "live-stream"
}
]
},
{
"year": 2020,
"posts": [
{
"title": "Xfoliating Disingenuity",
"date": "Jun 15",
"author": "Rishab Ramanathan",
"preview": "The idea actually reached it's inception during my time working on ...",
"content": "\nThe idea actually reached it's inception during my time working on the [Covindia](https://covindia.com) website, when I was discussing stuff with [Srikar](https://github.com/AnantaSrikar). The first thing you notice when you text him is his \"substantial\" use of the phrase \"xD\". So yes, you can pretty much figure out the next course of action: make a bot that reacts to every xD it encounters until it annoys the sugar honey iced tea out of them.\n\nTo be very honest, the bot in itself is worth next to nothing. It's literally the second paragraph of [discord.py documentation](https://discordpy.readthedocs.io/en/latest/) about reading texts and output messages. A five year old could code it up. The only important significant aspect of this bot is the message texts.\n\nMy initial plan was to just spam multiple messages of \"xD\" whenever the ominous chant was, well, chanted. Being excruciatingly unintuitive, I decided to take it one step ahead and add in a cute splash of pseudo-randomized casual nihilism. I \"composed\" a bunch of text responses designed to make the user doubt their mental stability, or just laugh it off and make them reply with another xD, thus re-iterating it to the point of annoyance. Either way, win-win.\n\nBecause what's life without a satisfying morning cup of home brewn dysphoria (and java). So that's what I did. Making the bot stand out by forcing the user to question his sanity is one of the small things in life that drive me to satisfaction.\n\nNow obviously I wasn't satisfied with simple text-based responses (because reading is for losers). Consequently, I decided to consider ASCII art. The first few templates were made by yours truly. -Terrible idea-. It was an absolute pain because normal text editor formatting was quite different to discord text formatting, so the spaces were crunched, letters were of different sizes, and my ascii art went from a Da Vinci to a Jackson Pollock (and not in a good way). That was my first hiccup, which was kinda stupid in my professional opinion, because the discord formatting that caused me problems was indeed the very solution to it.\n\nBeing a baby to everything about everything, I was unaware of the existence of the \\`\\`\\` format in discord (known as the code block if I'm not wrong), and after a couple hours of getting confused between \\` and ' (don't), everything sailed as smooth as the head of a newborn baby.\n\n![bot1](https://raw.githubusercontent.com/MU-Enigma/store/master/blogs/assets/xfoliating_disingenuity/XDBot_0.jpg)\nxD Bot xD-ing\n\n![bot2](https://raw.githubusercontent.com/MU-Enigma/store/master/blogs/assets/xfoliating_disingenuity/XDBot_1.jpg)\nSome more xD-ing\n\nNow given the \"spontaneous\" characteristic of the bot in consideration, I had to make sure it ran perpetually, so as to not miss any potential targets. My first thought went to the cloud, but it wasn't cool enough for me (and totally not because I could not figure how to get it set up). So instead, I pulled out my raspberry pi and kept my bot running on there. This didn't prove to be as easy as I thought, for there was a minor hiccup in this too.\n\nThe problem I faced was not due to some irregularity in the code, it was a network issue. My code was adequate to run on the pi, but I wasn't able to login to discord through it. Initially I thought it was an inherent pi bug, but I simply doubted the sophistication of the pi for my selfish needs. I ultimately found out the problem but not the exact reason for it.\n\nI had SSH'd into my pi through an ethernet cable network, then connected my pi to my home WiFi for the internet. This seemed to cause some errors, for reasons unknown to me, as SSH'ing through the WiFi directly seemed to solve this issue. Still haven't figured out why this happened, but I'm on the lookout for answers.\n\nBasically, this is the most low-effort unintuitive piece of code you'll ever come across. But hey, as long as it annoys people to the point of crushing loss of irony, I'm happy.\n\nSrc Code: [xdbot](https://github.com/wonder-coconut/xdbot)\n",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "xfoliating-disingenuity"
},
{
"title": "How I Built My First Bot",
"date": "Jun 15",
"author": "Ananta Srikar",
"preview": "Bots. Who knows what they are? At least I didn’t until sometime ago ...",
"content": "\nBots. Who knows what they are? At least I didn’t until sometime ago. All that came to my mind when I heard the word robot was a mechanical machine that kind of resembles humans, might work on AI, blah blah blah. Let’s leave all that science fiction influenced thoughts behind to find out how I built my first bot.\n\nBefore I begin, you should probably know that I am a very big fan of custom ROMs. A detailed explanation about what a ROM is can be found [here](https://www.xda-developers.com/what-is-custom-rom-android/ \"XDA Developers\"). ROM development requires the developers to communicate with the users using the ROM for hunting bugs, taking feedback and much more. All this is done via the use of Telegram since it allows a lot of members and supports the use of bots. Back then these bots never really caught my attention until I joined a group which made the Open Source version of the default Xiaomi cameras, [ANXCamera](https://camera.aeonax.com/). I needed this because it was the only software developed that ensured the almost perfect functioning of my phone’s 48 MP camera (RN7P). I joined the group to raise a query about video recording as it wasn’t working on my phone. To do that, I was asked to invoke a command which would log my query after which an admin would then help me solve the issue. By then, I had seen a lot of bots like this and thought to myself, \"Why don't I make one?\" After submitting my query, I turned to google to know more about bots.\n\nTo my surprise, it wasn’t that hard. All I had to do was know a little bit of Python, import a library called `python-telegram-bot` and go through [the documentation](https://python-telegram-bot.readthedocs.io/en/stable/index.html). I made a simple bot which could say `Hello world!`, the standard way for any programmer to test their skills when starting something new. I christened it as TheNoobBot. But I wasn’t sure what I wanted my bot to do. Some things that came to my mind were weather updates, news reports and group moderation. After a few more days of work and learning how to use APIs, I was finally able to integrate the weather and news API. The news API was troublesome to deal with as there was no proper documentation and definitely wasn’t noob friendly. I was able to get international news. However, I specifically wanted Indian news because it’s home. Obviously. A few more days of searching and I was finally able to figure out the right way to get Indian data. The result was this: [telegramBot](https://github.com/AnantaSrikar/telegramBot). It still can’t do much. But yeah! I finally made my first bot!\n\nThe next challenge was something because of which I was able to learn a lot of new things (I can’t emphasize 'a lot' enough). I was supposed to make the bot run continuously (by running `python3 StartMyTelegramBot.py` on my laptop) so that it could listen for commands or messages and do what it was made to do. However, I couldn't keep my laptop switched on forever. That's practically impossible. I approached my senior, [Raghav](https://icecereal.github.io), who properly guided me on hosting the bot. It ran on my trusty Raspberry Pi 4 (4 GB RAM) for a while and it's now currently hosted on Heroku. You can head over to [TheNoob2001_bot](https://web.telegram.org/#/im?p=@TheNoob2001_bot) to chat with the bot.\n\n![bot](https://raw.githubusercontent.com/MU-Enigma/store/master/blogs/assets/how_I_built_my_first_bot/TelegramBot_Final.png)\nThe Bot in Action\n\nThe funny thing about this was that I made it during my End Semester Exams. Like always, the most interesting and attractive ideas/projects show up only when one has exams.\nThis whole learning made me realize that there’s *so much more* in Computer Science and not just Machine Learning or Computer Vision or just raw programming. There’s a whole big never ending ocean out there to sail and explore.\n\n[Ananta Srikar](http://anantasrikar.github.io/)",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "how-i-built-my-first-bot"
}
]
},
{
"year": 2018,
"posts": [
{
"title": "Mozilla WebExtension Hackathon",
"date": "Aug 30",
"author": "Raghav NS",
"preview": "24 hours to code. 200+ participants with one goal: to make the best …",
"content": "\n24 hours to code. 200+ participants with one goal: to make the best possible add-on possible. Undergrads from all over the city aided by Mozilla mentors throughout the event were able to see their ideas become reality on 28th to 29th September, 2018. The location is Mahindra Ecole Centrale, an Engineering College in Hyderabad and the organizing committee included 5 admins of Enigma, The CS Club of the college.\n\nPeople started pouring in at 4 pm on Friday evening. In about an hour, the Large Lecture Theatres were packed with people setting up their workstation and discussing their ideas one last time. At 6 pm, the hackathon commenced with the Vice President of Enigma, The CS Club starting the countdown clock. A few ticks later, the mentors taught the participants how a website works and how add-ons are integrated into the website. HTML, CSS and JavaScript were brought to life in front of the participants’ eyes.\n\nSoon the participants got to coding their ideas. They spent the first 2 hours rigorously, braving through the depths of the internet, from picking up snippets and understanding them, to manipulating information from the HTML of various websites. Enthusiastic faces were amongst serious faces. Everything was set in motion. Food was obviously priority, for these coders have sacrificed a lot of luxury to compete in this event. As the night went into its dark phase, pizzas were ordered and served to the participants to satiate their hunger and motivate them to carry on through the night. Nothing tastes as good as a free pizza, especially when one is weary from coding.\n\nAn hour later, the mentors decided to have an advanced session. Students from both Lecture Theatres came to one and listened with rapt attention as the senior mentor went in depth. They learnt quite a lot and by now had their ideas ready. All that was left was to code.\n\nThe night saw some participants taking small naps, many others gulping coffee down their throats trying to keep their eyes wide open, teams walking around the aisles, discussing their code and building upon their ideas. Fortunately for them, the mentors from Mozilla were awake round the clock, going around helping the teams and suggesting ideas to figure out the best way to approach the end result.\n\nThe first ray of sunshine hit and everyone realized that half the event was already over. Each team at their own pace, seemed a little worried. Some of them were done with their code and were just checking for bugs, the others were put in a frenzy to race against the clock. Rooms were filled with mixed emotion as the countdown seemed to be closing in.\n\nUnfortunately, due to unforeseen circumstances, the hackathon was going to end early. Rather than ending at 6 pm, it was to end at 12 pm. This put all the participants in overdrive mode. They now realized that they have only 4 hours left to work. A quick breakfast was all they needed to freshen up. The next 3 hours saw an amazing level of focus as participants were in a race against time to complete their beta version. One by one, sighs of relief could be heard throughout as people started finishing their add-on.\n\nAt 11 am, an announcement was made that teams with working demos could present. A total of `18` teams were ready to present. That hour saw many ideas, ranging from a mini game to a movie and music recommendation add-on and even a chatbot. Many were grateful as this was their first hackathon and they were able to make a working demo. Two mentors alongside a professor from Mahindra Ecole Centrale were the judges of the presentations, who’s top 5 teams would be announced in 5 days. After a quick thank you from the mentors and the organizers, the event ended. A lot of weary eyed participants seemed relieved from the exhaustion of the event but hopeful that they would attend more in the future.\n",
"iso8601Date": "2001-08-30T00:00:00+05:30",
"basename": "mozilla-webextension-hackathon"
}
]
}
]