Tim Chen

@timmy_i_chen (755)
Former High School CS teacher turned Repl.it Chief Snack Officer
Refer a Friend for Free Hacker Plans!
## What's this Referral Program? Do you want to get Hacker Plan, but are unable to pay? Worry no more - with the referral program, you can get Hacker Plans for free! Grab your referral link from your [account settings](/account). Sharing that link with anyone will bring them to the upgrade page, filling in your name as the referrer. If they purchase it, with you as the referrer, you'll get a free 30-day voucher for the Hacker Plan that you can redeem (or gift to someone else to redeem). You can see a full list of all your earned vouchers in your account settings. In the future, we may have referral competitions with hot hot prizes! Any questions? Post below! ![](https://media.giphy.com/media/eCqFYAVjjDksg/giphy.gif) ## FAQ **Q: How many times can I refer a friend?** A: You can only refer the same friend once. Meaning, if Alice refers Bob and Bob cancels his plan right away, Alice can't refer Bob anymore. **Q: How many times can I use a coupon?** A: Only once! And each one is good for 30 days.
posted to Announcements by timmy_i_chen (755) 2 months ago
New Feature: Folders for your Repls
If you look at our [top requested features](/feedback/?sort=top), repl management is both the 3rd and 4th most requested feature. We understand that many people have multiple uses for Repl.it, and that they want to organize their repls to more easily find the ones they want. ![folder-demo-min](https://storage.googleapis.com/replit/images/1548984875519_01e1c638882256eeb64de63e2c7fb260.gi) To that end, we are happy to announce that you can now organize repls into folders on your [repls dashboard](/repls). You can create as many folders as you like, and you can create folders within folders. Moving repls is a breeze - you can drag and drop repls into folders. If you want to move a repl or folder deep into nested folders and you don't want to drag it around too many times, you can do so by clicking on the 3-dots-menu and selecting "Move". Selecting multiple repls is also a breeze. Hold shift to select a range of repls and folders, or hold ctrl/cmd to select specific repls and folders. Multiple items can be dragged and dropped into folders. This is just the first step in a few steps we're taking to improve the Repl.it experience. Soon, you will have a special folder called "Unnamed" where unnamed repls will automatically go. If you wanted to get a head start on this feature, you can do so simply by creating a new folder called `Unnamed` in your home directory on your dashboard. Newly created repls will then go into this folder. We have more planned and in the works. We're excited to see how users will use this feature, and we welcome any suggestions and feedback you have on our [feedback boards](/feedback). You can also leave a comment on this post.
posted to Announcements by timmy_i_chen (755) 3 months ago
Tutorials Challenge Results
## Congratulations to the winners! * 1st: [@kaldisberzins](https://repl.it/@kaldisberzins) for his tutorial on an [HTML5/Phaser.js game](https://repl.it/talk/learn/Making-a-Phaser-Game-with-HTML5-and-JavaScript/7593) * 2nd: [@jajoosam](https://repl.it/@jajoosam) for his [30 Minute WhatsApp Bot](https://repl.it/talk/learn/Build-a-WhatsApp-bot-in-30-minutes/7673) * 3rd: [@ArtemLaptiev1](https://repl.it/@ArtemLaptiev1) for his [Beginners Neural Networks Tutorial](https://repl.it/talk/learn/Building-AI-Neural-Networks-for-beginners/8156) Plus many other notable entries, which can be found on [Repl Talk Learn](https://repl.it/talk/learn/). ORIGINAL POST BELOW: --- ~The challenge has begun! Feel free to post your tutorials on the Challenge board! The competition will end on Monday, Nov 5th, 2018 at 12:01 EST.~ Requirements: * Your submission must be a tutorial. It can be a tutorial about anything - surprise us with your creativity. :) * It must use Repl.it. Attach the end result repl to the post. Prizes: * First Place: $100 Amazon Gift Card * Second Place: $50 Amazon Gift Card * Third Place: $25 Amazon Gift Card First, second, and third place prizes will be determined by the Repl.it team, who will take the following factors into consideration: * Quality of the submission * Number of upvotes it received * How many people engaged with it Additionally, the Repl.it Team will be awarding various prizes for quality submissions that went under the radar. We may even reach out to you for working with Repl.it further! Please remember that Repl Talk allows Markdown, so [style your tutorials](https://repl.it/talk/learn/A-Quick-Guide-to-Replit-Talk-Markdown/7448) for maximum readability!
posted to Share by timmy_i_chen (755) 7 months ago
Rules for Posting - Read me!
Some rules and guidelines to keep in mind as you share your great work on our boards: 1 - Be kind and courteous to others 2 - Make sure that any feedback you provide is constructive. 3 - Outside links are allowed, but you must provide the source. Ideally, things that you post will have been created on Repl.it. 4 - Avoid posting overly promotional material - the focus is, and always will be, a programming, learning, and collaborative community. :) 5 - Don't spam / keep things SFW (Safe For Work). We may revoke your access to these boards if you are found to be in violation of any of these rules. Feel free to ask clarifying questions. Last updated 7/10/18 12:09 PST
posted to Share by timmy_i_chen (755) 10 months ago
Discord Bot Competition
# Results are in! See [here](https://repl.it/talk/challenge/Discord-Bot-Competition-Results/9035) --- # In Partnership With Discord: Discord Bot Competition ![repl robot](https://i.imgur.com/91wYFfT.jpg) ## General Competition Information The way it works is that you build and deploy Discord bots with Repl.it and then submit your bot here on the challenge board. If you're new to building bots with Repl.it then start by reading one of the following guides: - [Building a Discord Bot with Python and Repl.it ](https://repl.it/talk/learn/Tutorial-Building-a-Discord-Bot-with-Python/6658) - [Building a Discord bot with Node.js and Repl.it ](https://repl.it/talk/learn/Tutorial-Building-a-Discord-bot-with-Nodejs/6659) - [Building a Discord bot in Ruby](https://repl.it/talk/learn/Making-a-Discord-bot-in-Ruby/8427) Or if you're impatient then start by forking [this example](https://repl.it/@amasad/discord-bot-example) and following the instructions in the comments. You can join the [Repl.it Discord Server](https://repl.it/discord) and ask the moderators to add your bot to develop it with other Repl.it users. Or you can develop it on your own server. Feel free to ask questions on the here on the [Ask](https://repl.it/talk/ask) board or in the Discord server #help channel. **Competition starts**: Monday, Nov 12 12:01 PM UTC **Competition ends**: Monday, Nov 26 12:01 PM UTC ## Prizes Instead of first, second, and third place prizes, this time, there will be **five winners** selected by the Repl.it team. Each winner will receive: * Discord swag (t-shirt and stickers) * Three months of [hacker plan](/pricing) for free (worth $21) * 100 extra cycles (upvotes) added to their account ![Bella+Canvas+3650+-+Discord+Logo+-+Black+(Front)](https://storage.googleapis.com/replit/images/1541901348125_b78ac87fafa512320da0951b12cddac8.pn) These five winners will be picked for these categories: * Fun (e.g. a game bot) * Utility (e.g. a bot that helps evaluate code) * Moderation (e.g. a bot that helps manage roles) ## Submission Criteria: In order to be considered, your submission: * Must be a discord bot * Must be hosted on Repl.it * Must be age-appropriate * Please include a gif of your bot in action Please include the URL to add your bot to a server so others can use it!
posted to Share by timmy_i_chen (755) 5 months ago
Proof that .99 repeating = 1?
Can anyone help me find a proof that says .999 repeating is equal (no approximations) to 1? We got into a big discussion about this on Discord recently.
posted to Ask by timmy_i_chen (755) 10 days ago
Recent Changes to JavaScript -> Node.js
# Recent Changes to JavaScript -> NodeJS We recently made a change that redirected new JavaScript repls to create Node.js repls instead. We recognize that this behavior may come as a surprise, and may cause some frustration when using Repl.it with JavaScript. In this post, we'd like to provide our reasons for making this change, and give workarounds for those who require Browser JavaScript for their work. At Repl.it, we strive to provide the best experience for our users. To a beginner learning JavaScript, there may not be a big difference between using JavaScript and Node.js, as far as the language itself goes. However, on Repl.it, there are a few key features that make using Node.js the preferred environment: 1. **Package Support**: Node.js supports npm package searching and installing on the fly. You can search for any package and add it to your project, generating a `package.json` file for you, where you can then import it into your program. More on that in our [packager](/site/blog/packager) announcement. 2. **Consistency**: When using our Browser JavaScript repl, it uses whatever flavor of JavaScript your browser is using. This means that a Browser JS repl run on one machine may not run on a different machine, or it may behave differently. However, with Node.js repls, since it runs on a VM in the cloud, behavior is guaranteed to be consistent across browsers and programming sessions. Furthermore, you can safely share it with others, knowing that their experience will be identical to yours. 3. **File Management**: Node.js repls allow for users to create files and folders and interact with them, whereas browser JavaScript repls don't. This allows for more versatility in the programs you create, and for more growth in your learning. 4. **Infinite Loop Protection**: Finally, if you accidentally write an infinite loop (we've all been there), your browser won't be locked up, since the code is not running on your machine. So what happens if you need the web browser API, or if you need to test JavaScript that will run in the browser? You can create [HTML repls](/languages/html) to achieve that. The added benefit of using HTML repls is that you can search and import packages such as jquery, lodash, or moment.js, and then test out those functions within your script.js file. You still have a repl to interact with in the console tab. One thing you might miss from the JavaScript REPL is the `prompt` API. While we know that `prompt` is convenient, it's considered an antiquated API and its use in modern web development is generally frowned upon. If you'd like to do I/O in the node.js REPL you can do so using the `readline-sync` package which we pre-include in our Node.js image. You can try an example here: https://repl.it/@timmy_i_chen/readline-sync-demo We made this change because we believe it will be beneficial to Repl.it users, both new and old. We welcome any feedback in the comments below, and we look forward to working with you in the future to create awesome projects.
posted to Announcements by timmy_i_chen (755) 3 months ago
July Competition: Create Multiplayer Games
We're bringing back competitions, and this one is all about Multiplayer Games! Previously we shared [Hop Fighter](https://hop-fighter--kaldisberzins.repl.co/) by [@kaldisberzins](https://repl.it/@kaldisberzins/) as a shining example. He kindly created an example of how to create a similar game using Node.js and websockets. Feel free to check out and fork his sample game [here](https://repl.it/@kaldisberzins/Multiplayer-Game-Example). Your game can be in any language! **How To Submit** Submit by posting your repl link to this board: https://repl.it/talk/challenge **How To Win** Get the most votes by the end of the competition: **Aug 14, 2018**. **Prizes** First Place: $100 Amazon Gift Card Second Place: $50 Amazon Gift Card Third Place: $20 Amazon Gift Card Team Favorite (picked by Repl.it team): $20 Amazon Gift Card. Additionally, winners will be featured in our newsletter! **Additional Rules** * Your work must be your own - you cannot plagiarize * Vote manipulation in any form will get you disqualified * Don't ask for votes outside of your submission
posted to Share by timmy_i_chen (755) 9 months ago
Discord Bot Competition Results
The entire Repl.it Team has been amazed by the quality of the submissions and the creativity around the ideas. We think that this has some of the best work yet. Thanks to all who participated! Without further ado, the winners of the competition, in no particular order: ## Fun Bots * [StarBot](https://repl.it/talk/challenge/Starbot/8503) by @jajoosam - a bot for showing your appreciation and thanks by giving out stars. Includes a global leaderboard to see who has the most stars! * [4bit](https://repl.it/talk/challenge/4bit/8792) by @mat1 and @Boopydoop - This bot features a number of unique games that we don't usually see in Discord bots, such as Simon Says, and Uno. ## Utility Bots * [Feature Requests](https://repl.it/talk/challenge/Feature-Requests/8784) by @MateuszDrwal is an interesting bot that handles feature requests on Discord, complete with a web app to vie wand manage those features! We're considering using this for Repl.it official feedback on our discord server. ## Moderation Bots * [Community Channels](https://repl.it/talk/challenge/Community-Channels/8598) by @TrueXPixels wins the Moderation bot for obvious reasons - what better than a bot that allows _everyone_ to own their own sub-community within a server? This bot is absolutely bonkers, allowing users to create their own meta-servers within a server. If you are one of the above users, please email me at [email protected] with the following information: * Your mailing address (as you would write it on an envelope) * Your shirt size There were a ton of other bots that we also enjoyed looking at and playing with. Here are a few examples. Remember, if you liked a bot, you can always add it to your own server! ## Honorable Mentions ### Multi-purpose bots: * [Omni](https://repl.it/talk/challenge/Omni-Bot/8833) by @cloud9c * [Dumpster Bot](https://repl.it/talk/challenge/Dumpster-Bot/8815) by @d3mclips * [Croissant](https://repl.it/talk/challenge/Croissant/8805) by @dotcomboom * [Shrek Bot](https://repl.it/talk/challenge/Shrek-Bot/8531) by @safan41 * [Omega Psi](https://repl.it/talk/challenge/Omega-Psi/8462) by @FellowHashbrown * [Josh²](https://repl.it/talk/challenge/Josh/8540) by @optimistguy * [Pixel](https://repl.it/talk/challenge/Pixel/8622) by @fullern000 * [Fun Zone](https://repl.it/talk/challenge/Fun-zone/8796) by @badvillain01 * [Util447](https://repl.it/talk/challenge/Uitl447/8843) by @minermaniac447 ### Others: * [Server Captcha Bot](https://repl.it/talk/challenge/Server-Captcha-Bot/8610) by @TrueXPixels * [LH Status](https://repl.it/talk/challenge/LH-Status/8758) by @MaheshGowda1 - a bot for checking Lufthansa flight information * [Battleship GameBot](https://repl.it/talk/challenge/GameBot-Battleship/8813) by @RoryGudka * [Shakespeare](https://repl.it/talk/challenge/Shakespeare/8459) by @minx28 - Shakespearean insult bot * [Sign Bunny](https://repl.it/talk/challenge/Sign-Bunny/8501) by @liamrosenfeld - a simple bot that generates a bunny holding a sign with text! (we love ascii art) Thanks for competing, and stay tuned for the next competition! If you want to join our Repl.it Discord server, join up here: https://repl.it/discord
posted to Share by timmy_i_chen (755) 5 months ago
Here's a fun little project that puts that old XKCD comic to test: Repeatedly navigating to the first non-parentheses non-italics link in a wikipedia article will eventually lead you to Philosophy. It starts at a random article \(but you can totally choose its starting point by changing line 64. When I hand-tested this myself many years ago when I should've been paying attention in school, it definitely worked. Sadly, it seems to no longer be the case - although now, it seems as though all articles eventually lead to Mathematics... which I suppose also works. https://repl.it/@timmy\_i\_chen/Web-Scraping-XKCD903 Link to original comic \(hover over the image to see the alt-text\): https://xkcd.com/903/
posted to Share by timmy_i_chen (755) 1 year ago
July Repl.it IRL - 90s Websites
Post your 90s websites here!
posted to Announcements by timmy_i_chen (755) 9 months ago
Lots of crypto APIs are not free or not complete... I picked out the free, most-complete one I could find \(CoinBin\). Sadly their data ends a few months ago, but it seemed to be an acceptable loss for the sake of just building something using APIs and matplotlib. Plus, now it looks like Crypto is always on the up and up. :B https://repl.it/@timmy\_i\_chen/CoinBin-API-Graph
posted to Share by timmy_i_chen (755) 1 year ago
Node.js Terminal Apps Library
## Terminal Apps Library Link to repl: https://repl.it/@timmy_i_chen/Terminal-Apps-Library-v2 I made a library, inspired by p5.js, for terminal apps using Node.js and repl.it's Repl Run. ## Requirements Make sure you are logged in and [explorer mode is enabled](https://repl.it/talk/announcements/Become-an-Explorer/6180). ## Usage All edits will probably go in the `app.js` file. There are four main functions to edit: - `setup()` - this function is run once at the beginning of your program. - `loop()` - this function is continually run at an interval of your choosing. You can press `esc` at any time to end your program. - `onKeyPress(key)` - this function fires whenever a key is pressed. `key` is a string representing the key that was pressed. - `onMouseClick(event)` - this function fires whenever the mouse is clicked. The `event` object contains properties for the `row`, `column`, and `scroll` (direction the mouse was scrolling in, if any). When running, be sure to run using repl run. This will be fixed later as we roll xterm out to more languages. ## Examples - [Simple Game of Catch](https://repl.it/@timmy_i_chen/Terminal-Catch) - [Terminal Maze](https://repl.it/@timmy_i_chen/Maze-in-the-Terminal) - [Drawing in the Terminal](https://repl.it/@timmy_i_chen/Terminal-Drawing) (incomplete) ## API Docs ### Misc `sleep(ms)` - pauses execution (in the containing function only) for `ms` ms `print(value)` - prints `value` at the cursor location without a newline. Converts `value` to a string. `printDebug(output [, atRow, length])` - printing for debugging purposes. Prints `output` at `atRow` rows down, clearing `length` lines underneath as well. Objects are pretty printed, otherwise the value is converted to a string. `randomInt(low, high)` - generates and returns a random integer between `low` and `high` inclusive. ### Colors Color values are ANSI escape sequences that set color. These are usually printed with a string. `colors.[colorname]` - sets the terminal foreground (text) color for subsequent outputs. e.g. `colors.black`, `colors.cyan`. All color choices: `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white` `colors.bg.[colorname]` - sets the terminal background color for subsequent outputs, e.g. `colors.bg.magenta` `colors.reset` - resets colors to terminal defaults. ### Cursor Even those all of these represent ANSI escape sequences, they do not need to be printed. Just calling the function will execute it. `cursor.goto(row, col)` - moves the cursor to `row`, `col`. `cursor.gotoColumn(col)` - move the cursor to the specified `col` in the current row. `cursor.down(amt)` / `cursor.up(amt)` / `cursor.left(amt)` / `cursor.right(amt) - moves the cursor down/up/left/right by `amt` `cursor.save()` - saves the position of the cursor `cursor.restore()` - moves the cursor back to its last saved position `cursor.hide()` - hides the cursor `cursor.show()` - shows the cursor (if hidden) ### Screen `screen.clear()` - clears the screen `screen.reset()` - clears the screen and moves the cursor back to (0, 0) `screen.getWidth()` - returns the number of columns on the screen (only works after resizing) `screen.getHeight` - returns the number of rows on the screen (only works after resizing) `screen.clearLineToEnd()` - clears content starting from the character ending at the end of the current row. ### FileIO `async fileIO.readFile(fileName)` - returns the file contents as a string `async fileIO.writeFile(fileName, content)` - writes `content` to file `fileName`. `async fileIO.appendFile(fileName, content)` - appends `content` to file `fileName`. ### Closing Hope you enjoyed it! Please feel free to fork and modify. If you make something cool with it, I'd love to see it - share it here or make it in another post (but tag me!)
posted to Share by timmy_i_chen (755) 5 months ago
What is Learn? Guidelines - Read Me
# What is Repl Talk Learn? Repl Talk Learn is the board where tutorials will be posted. Come here to learn how to build cool things on Repl.it! # I have a tutorial! What do I do? If you want to post a tutorial, check in with any of the Repl.it team members, or just post here as a comment. If your tutorial is already written, post it to Share, then ping me or another Repl.it team member and we will review it. If it is deemed a quality tutorial, we will move it here to Learn! This board will be moderated - posts that are not approved will be moved to [Share](https://repl.it/talk/share).
posted to Learn by timmy_i_chen (755) 7 months ago