#Anigeek
Explore tagged Tumblr posts
Text
I dream of YCombinating
So, today I jumped head-first into the pool and did what that voice has been telling me to do for years.
I applied at YCombinator.
It'll still be two weeks before we hear back, but that's fine. I don't plan on taking any sort of break or anything. I think the main thing about people who get in to YC are that they would have done it anyway. It may take longer, it may be harder, but if you're applying for YC then it had better be because the thing you wanted to make desperately needed to exist.
I realize, though I think I've known it subconsciously for a while, that my main reason for failure in the past was that I was alone. This isn't a world that you can be alone in - the stress alone of running a startup is enough to crush anyone. So this time I'm very fortunate to have someone willing to brave the dangers with me, someone I can rely on to make sure we're going in the right direction.
The idea we applied with is called CodeWheel. If you boil it down to basics, CodeWheel is just a community-driven snippet repo. In reality, it's much, much more than that. CodeWheel is the solution to the programming gap.
When you start, say, web development, you start in 1990. You have to learn the best practices all the way from the start, and as we progress, this journey becomes harder and takes even more time. We've tricked ourselves into thinking we've made it easier because we have all these tools, but we forget that most of them don't have instruction manuals - we figured them out, so those who come after us should be able to figure them out, too.
But that's not the right answer. The next great idea doesn't come from someone who thinks like all the others who got to this point; if it did, we would already have it. The next great idea comes from someone who thinks differently than we do, and CodeWheel is the apparatus for bringing that person to the edge.
If every tool we build is a boat that lets sailors cross a river, CodeWheel is a bridge that anyone can cross.
Why is CodeWheel so special? With a driven community and a clear goal, we can work together to fill in the gaps of our knowledge. We can create snippets to make gradient mixins in LESS or even SHA-256 algorithms in Objective-C. We can make customized toast notifications or an Oculus Rift "Hello World". We can push ourselves forward, stand on the shoulders of the great problem-solvers before us, and achieve the unachievable.
All this just by sharing a little code. All this just by sharing a little idea.
I dream of YCombinating. YCombinator is where I need to be. I have a problem worth solving, and I have the knowledge, willpower, and downright stubbornness to solve it. I can't stop until it's done.
3 notes
·
View notes
Text
UPDATE: App Copyright Violation
I received a reply from the developer!
They have removed their app for download from the market as well as their site, at least until they can properly remove the image, and have apologized for using it without my consent.
I'm stunned at what a swift resolution this came to! He mentioned something in his reply about the apps being more trouble than they're worth, which makes me think this isn't the first time he's received a complaint.
At any rate, I'm going to keep an eye on it just to make sure it's been taken care of.
Thanks everyone who reblogged my original post! I really appreciate the concern and the signal boost.
16 notes
·
View notes
Text
3D HTML
So, I said I was working on something cool, and I was kinda on vacation so I didn't write as soon as I wanted, but here's the short of it: 3D modeling is hard.
Not for everybody, I know. I know there are some super creative people who can Blender up a storm, but I am certainly not one of them. As a programmer, I want a super simple way to make some basic 3D models via some sort of code or language. I've looked around on the web, and to be honest, the options are pretty pitiful. Everything is talking about making an immersive interactive environment, blah blah. Sure that's cool - but that's not what I want.
So, mostly because I didn't see any alternative, I came up with WebModel3D (name subject to change).
So, what is it? Well, it's a lightweight in-browser framework I'm working on based on Victor Porof's Tilt in Mozilla FIrefox. As you can see from the post, Firefox has a developer extension where you can see webpages in 3D; SUPER COOL, but sadly little more than a gimmick at this point. It has sadly very few practical uses.
The coolest part, though, is that Victor Porof even built an exporter to change this into a .obj that Blender can read. Here's where it gets cool, and I know what you're thinking: "This already exists, what does this have anything to do with you?" Well, unless you want nothing but same-height rectangles, you're going to need some way to control those edges and that z-axis.
So that's what WM3D is being designed to do. Control the edges, control the colors, control the height all with syntactically correct CSS.
It's still in the conceptual stage of development, so it doesn't work yet, but here's an example of a simple cube in WM3D:
.cube { width: 100px; height: 100px; WM3D-height: 100px; }
A cylinder:
.cylinder { height: 100px; width: 100px; WM3D-height: 100px; border-radius: 50px; }
And lastly, something more complex; a pyramid:
.pyramid { width:100px; height:100px; WM3D-height: 1px; @WM3D-draw { WM3D-draw-dir: ltr; WM3D-draw-0: start 0 top; WM3D-draw-1: half 50 top point(50); WM3D-draw-2: end 0 top; }
@WM3D-draw { WM3D-draw-dir: ttb; /*top to bottom*/ WM3D-draw-side: top; /*recommended only use in @draw*/ WM3D-draw-0: start 0; WM3D-draw-1: half 50 point(50); WM3D-draw-2: end 0; } }
Again, just conceptual, but it all compiles fine right now, so it isn't a problem for the browser to handle. It'll just be a matter of reading it and displaying it. I'll be building for Firefox as a Tilt mod at first to kick off, and once I have something more tangible release an open script. The main idea is to make sure you don't have to download any additional software and that it's simple to understand and use, so I'll keep it as small as possible.
For more info on the markup I've worked out so far and to leave a comment, go here.
Please let me know what you think, and i hope you're as excited as I am!
#Tilt#Victor Porof#Christopher#Johnson#Anigeek#evintr#remindify#cardfarm#cardfarmgame#WM3D#WebModel3D#WebModel 3D#Web Model 3D#3D#Web 3D#Blender#Mozilla#Firefox#Mozilla Firefox#CSS#HTML#Javascript#3d modeling
0 notes
Text
Tools
As a programmer, I'm always interested in the latest tools to make my life and my job a little easier. This post will be a small advertisement to those services that have made my days simpler.
First is Dropbox. If you haven't heard of this, you need to. This awesome tool allows you to store your files for free online. Now you're probably thinking, 'So what? I can do that with anything.' Well, maybe, but not like this. If you download it (Windows, Mac & Linux), you can have it operate just like a folder on your computer. Not just that, it updates with all of your other computers. Don't have any other computers? Not a problem. Dropbox works with your smartphone, too. On top of all of that, you can share your uploaded files with anybody, and even share whole folders with a group. This is great for classes and group projects, and it really keeps you up to date. I personally use it to upload my .apks for Android to my phone to test them without annoying wires. How much is it? Free. Yeah, you heard me. Free for the first two gigs, with options to get more by saving photos and spreading the word. Trust me, this is a tool you need.
Second is one I'm currently working with called Wix. Wix is a website... that makes websites. Simple drag-and-drop Flash or HTML5 goodness. Wix is a bit limited - they assume you don't want any user input, and that's a bit of a drawback, but you can easily add your own HTML, Javascript, and CSS by using a quick embed tool. On top of that, Wix will help you make a mobile website and a Facebook page. How much for this one? Well, it's free too. I KNOW RIGHT?! This is great. Even if you don't try it, give it a look. It deserves your attention.
Another one I'm working with is called Zoho. I'm not too knowledgeable with databases, and it also requires me learning PHP, so it's a great alternative. It makes easy forms that you can fill out and automatically populates a database for you. It's great if you want to get up and running with some dynamic content but don't have the skills or the time to make a database. If you want to make it look your own, Zoho even releases your database as a JSON or XML object for you to do your own parsing. Not for everybody, but cool if you're into that sort of thing (if you're reading this blog, chances are you just might be).
Another one I've worked with recently is called Cacoo. I don't like to use it often, but that's because it's a diagramming tool, and I really hate diagramming. It's great for classes, though, and it has some pretty neat wireframing features good for pre-code web design.
Back to web design, there's a really neat tool called Handcraft. It's not so much drag and drop, but it gives you tools for making streamlined HTML and Javascript, and really takes a lot of the legwork out of it.
Hmm. That's probably it for the design tools. If you think of any tools you want to share or let me know about, feel free to let me know!
#tools#kyen#anigeek#nasawa#dropbox#drop box#wix#cacoo#zoho#handcraft#handcraft.it#zoho.com#cacoo.com#dropbox.com#programmer
3 notes
·
View notes
Text
Microsoft Interview
So, this Monday I had an interview with Microsoft. I'll try to be as descriptive as possible - I know that there are people interested in this, and if you're reading this before an interview of your own, good luck!
So, I was to meet in Building 111 (One-Eleven) with my coordinator for an SDET position interview. I'll leave out names for privacy's sake. After playing for about an hour with various interviewees on an awesome Microsoft Surface 2 in the lobby, the receptionist, another interviewer and I all rocked out on Rock Band 3. We ended up playing "Yoshimi Battles the Pink Robots Pt. 1". Halfway through, a coordinator came out to meet our drummer, the last interviewee besides myself. The two of them left together, and the receptionist had to go do some business stuff. Since I was still waiting, I decided to sing "Everybody Wants to Rule The World". Near the end, my coordinator showed up, and we went to his office.
His office was pretty small and dark, and like all the offices I saw at Microsoft, was comprised of three solid walls and a fourth glass wall containing the door. He went over my resume a bit, asked me some pretty generic questions, and then got down to business: I was interviewing for the Windows Live team. The Live team was located in Building 88, I had an unknown number of interviewers because of their schedules, and after I was done interviewing he wanted to talk to me again. So he called a shuttle (A midsized Ford sedan) for me, and it took me to building 88.
Surprise! At building 88, in the lobby, I met the drummer again. Turns out he was interviewing for Project Manager for the Windows Live team. Small world (big campus). I could wholeheartedly wish him luck, since he wasn't applying for SDET. He left before me yet again, then my interviewer showed up. Hard questions time.
So, this guy used to work on the Hotmail team. That'll be important later. He asked me a programming question first, which I'll describe down here: You have a tic-tac-toe program. Given this method header, solve for checkWin -
public bool checkWin(int col, int row, char piece)
So, I want to go ahead and say that I've done tic-tac-toe before, and that was my downfall. I was thinking back to my own generic method so much that I didn't understand the simplicity of his. I feel I failed this horribly. This is the first solution I came up with:
public bool checkWin(int col, int row, char piece) { for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { if(board[i] != piece) continue; } return true; } return false; }
To be honest, I'm not sure that's exactly what I had, but even that wouldn't be done. I'd still need to check for vertical, then diags. I kept improving that while I worked on it, trying to reason my way to a better solution, but as long as I didn't understand that col and row were being passed to me, it was no good. Thinking back makes me realize how stupid I was in that interview.
So, here's what I -should- have been doing:
public bool checkWin(int col, int row, char piece) { if(board[col][0] == board[col][1] == board[col][2]) return true; if(board[0][row] == board[1][row] == board[2][row]) return true; if(board[0][0] == board[1][1] == board[2][2]) return true; if(board[2][0] == board[1][1] == board[0][2]) return true; return false; }
I was trying not to brute-force it, but sometimes ya gotta. So after that coding question, he asked me to 'test' an elevator. So, I came up with some ways to test it. Test the capacity - load it up until it starts to mess up. Don't go beyond that weight. Make sure it has a good speed, but that it doesn't accelerate so much it kills you. Make sure the brakes are good. Pretty general stuff there.
Then here was the last question he asked me. Say you're on the Hotmail team (told you it was important). You have two bugs, but only time to fix one before release. These are the bugs: Messages sent to multiple recipients will only go to the first recipient. -- If you have more than 500 messages in your inbox, your browser will crash.
What to do? He said I was able to ask him anything, so I did. Here's some info: Less than 5% of all users have over 500 messages in their inbox. Over 66% of all messages sent have multiple recipients. The time it would take to send a message to everyone apologizing for the multiple recipients issue is too long for us to solve the inbox issue and then the recipient issue because of localization (Hotmail has a large user base). And then I asked: Is there a right answer? ... He said no. I ended up going with the recipient issue. I hate it, but it'd impact less people.
So. Back to the lobby (where I met drummer a final time) to wait for my next interviewer. After he arrived (I'll be honest, it took a while), we went to lunch together in Building 86. The 'weird' cafeteria, because you have to pay for your food. I'm not sure if we went there as part of the plan or if it's because it was closer than The Commons. We got Chinese (the line was short for that one, so I opted for it, but I shouldn't have - it was actually pretty lousy. I saw plenty of other good food, so I know it isn't the establishment, just my poor judgment), then got some (FREE) coke and sat down. He asked me about what I was interested in, and I asked him about what kind of work he did. He talked mostly about automating input to systems using C# and PowerShell. We went back to his office for a more official interview.
Coding problem 2. Given an integer array, remove all adjacent repeating integers.
There was a bit of miscommunication, so I was going to write the code for finding the integers and a method to solve it. I think it was just me misunderstanding him (he had a thick Indian accent, probably because he was from India), but I'm pretty sure I lost points for that. He corrected me, and I went to solving it again. I ended up with something like this:
public void removeAdj(int[] intarr) { int[] list = new int[intarr.length]; element = 0; for(int i = 0; i < intarr.length; i++) { if(intarr[i] != intarr[i + 1]) list[element++] = intarr[i]; } ...
And then I ran into some problems. I was thinking we could just leave it at that, but then we'd have an excessively long array (assuming we did work) with no way to denote worthless values. I was much too nervous to remember we had 'element' for some reason. Oh, somebody hit me in the head with a hammer. He ended up reminding me by something he said that I could use element, but not after I made a fool of myself. I ended up adding this:
... int[] temp = new int[element]; for(int i = 0; i < element; i++) { temp[i] = list[i]; } intarr = temp; }
which works fine, but for some reason he didn't like it. Apparently, he wanted me to just do 'intarr = list' before that and do an int return of element to show where there was meaningful information. I have to say, that's just silly.
ON TO THE NEXT INTERVIEW.
So, this guy and I got along fine, we had similar senses of humor, although I found his social awareness lacking (dude had never heard of Minecraft). He used to be on the Messenger team. For his programming question, I'll skip ahead and tell you the answer instead of what I fiddled around with (which were all mostly terrible, I assure you).
Say you have a char singly linked list. Remove all recurring nodes. (For instance, if you have AaBCAD, you should have AaBCD).
Short answer - create a hashmap and check on every node if that hash value is filled. If it is, remove that node.
He also had me run through some test cases, which I apparently didn't supply enough of. It's 1:22 and I'm getting tired, so I'm not going to go through those.
So, we departed, and I went back to Building 111 via Shuttle. I met with my coordinator briefly (He had a meeting to get to), he asked me how it went, and told me he'd be in touch within a week. I hope to hear from him soon.
Oh, quick tip: In the refrigerator in the lobby of 111, there's this drink called 'Kinect'. DONT DRINK IT. ITS BAD.
At least, I didn't like it. Ended up drinking some Welsh's Cranberry Juice to get the flavor out. A couple more juices fell out of the fridge and got dented, so I ended up taking those too. Overall, I liked the experience. I was way too nervous to function, though.
Like I said, if you're reading this in prep for an interview, good luck! Well, so long as you're not going for SDET on the Windows Live team. At least, not anytime soon.
1 note
·
View note