mostafaberg | 7 years ago | on: Bypass Paywalls – A Firefox extension to bypass paywalls of many news sites
mostafaberg's comments
mostafaberg | 7 years ago | on: Bypass Paywalls – A Firefox extension to bypass paywalls of many news sites
mostafaberg | 8 years ago | on: Ask HN: Is it 'normal' to struggle so hard with work?
I have the same issues, and I think you speak out for lots of people, motivation is a very limited resource and when it's not used properly, you end up in this state.
What worked for me best is to tackle your tasks with the notion that you have limited resources in mind and that you're just human.
Some tips that you might find useful, that certainly work very well for me:
1- Declutter your workspace, clean your whole house, having small things here and there lying around affects my thought process.
2- Declutter your brain, Throw away ideas that might be nice, but are not possible to work on right now cause they'll take tons of time and money, write those ideas down somewhere for later use, if ever.
3- Declutter your life, make sure you don't have lingering problems that can be fixed now, your brain will fatigue out when you have a lot in your stack, fix that leaking toilet, talk to your spouse about the issue you've been always having with them, tell your friend you can't help them with that thing they needed, empty out as much as you can, and work on the low hanging fruits first.
4- When it comes to tasks, spend as much time as you can afford planning it ahead first, break things down into small actionable tasks that will take a few minutes or hours to resolve, avoid homogeneous tasks like "Implement backend", "Fix the known bugs", "Release next version", etc... instead, have very concrete minimal tasks like "Fix bug #21", "Create Users profile database schema", "Convert header image to SVG", etc...
5- Timebox things when planning, say you'll spend only 1 hour today working on this issue, if you can't, then take it again in the next planning and break it down further and give it an appropriate time slot
6- Getting great ideas while working is almost like thought cancer, don't start on them, write them down and continue to do what you are doing
7- Don't start new tasks before the assigned ones are actually done
8- Don't reward or punish yourself, rewards tend to make me very narrow minded, and punishment takes the fun out of things, ask yourself why you are doing what you're doing and why you have to do it, write that down and keep it as a reminder in your workspace.
9- Talk to others, let people know what you're doing, and when it's expected to be done, this keeps me at least from getting lazy as there's expectations form others to see what i've done
10- Listen to different music, I noticed that once I changed my playlist that was on repeat, I was a completely new person, play a podcast instead, or listen to radio or channels that you have no control over.
11- Kill the projects that are taking too long and deep inside you you know that you'll never manage to finish, find smaller ones that are realistic.
12- Always remember that nothing has to be perfect, it's better to have something out there, most of the time no one even notices what you think is a crisis.
13- Ask yourself everyday, is this what I want to be doing?, am I happy?, should I continue? if the answer is truly a big yes from your heart, then go on, if not, try to find other things that might be more fun for you.
Tis is what works for me, your results may vary, but what matters is that you have to be relatively happy doing what you do!, if you think you're suffering from ADHD, I would say it's best to visit a therapist, it'll clear out lots of things, don't feel bad spending money on yourself a bit, it's worth it. also if it's your kind of thing, find a mentor :) keep up the good work and never give up!
mostafaberg | 8 years ago | on: Show HN: Simple SaaS app to receive call requests from your website visitors.
mostafaberg | 8 years ago | on: Show HN: Simple SaaS app to receive call requests from your website visitors.
1- You don't have a way to show customers how this actually works, I have no idea what i'm signing up for, so I won't sign up.
2- You don't actually use the button on your own company's website, but use only a contact form, which tells the users in a way that you don't really use your own product.
3- You mention mobile app, but there's no where for it to be found.
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
Yeah you don't need to be a AAA for sure, i was exaggerating a bit to make my point, what i'm trying to say is that newcomers to gamedev will end up struggling, TCP isn't easy, neither is UDP, without proper understanding of both protocols there will surely be mistakes made.
I do agree with the article 100%, I'm not saying in that use case that TCP is better, I'm just disagreeing with the premise as it's a bit vague and implies that you know what agar.io and slither.io are, I know both games and i know they're realtime, but there are people out there who don't know what they are, so I'm saying that just thinking that UDP is faster than TCP so it's best for networked games is naive, a better way to say it is just mentioning that this is for realtime games, better yet realtime games that can't allow network delays and are not critical, WOW for example uses TCP for some parts of the game that are not critical, where player position doesn't really affect the game, they end up with huge latency now and then, but the game is programmed in a way that some latency won't matter. in other cases they use UDP, that's also one of my reasons to say that UDP is not the only answer.
So yes, you are 100% right, and the article is 100% right, I just don't like the premise (the way it was written at least)
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
1- UDP is not always the answer, don't overcomplicate things, I'm trying to say that there are games like chess,board games, basically deterministic games that are not realtime. it is very wrong to use UDP for that game style, it's just a huge overkill.
2- UDP can in fact be slower for some use cases than TCP, there are lots of variables and unknowns.
3- Just opting into UDP because "it's faster" is very wrong, before jumping to UDP, there is a whole lot of networking theory that needs to be learned, and I'm not concerned about AAA here, I'm concerned about new beginners and indies that will read this post and think that this is the only right way to do things.
4- UDP is filtered on some networks still, you'll lose some players
5- If your network is so bad that TCP is not fast enough or that older packets are blocking newer ones, it'll be the same with UDP, packets will come in mangled and out of order, ant the game's "Quality" will still be bad with your avatar flying all over the place. until the developer implements a way to reorder packets, which is still more work.
6- I'm not a network professional, neither are lots of people. and if you don't have a strong knowledge to make sure your game's networking is in top shape you might end up making mistakes that will cost to fix.
7- The premise that UDP is going to greatly improve the game networking is naive (It's ok to call things naive by the way, don't be too sensitive) I'm a big fan of gafferongames, there are tons of great resources there, I'm only saying the premise is naive, not the person who wrote it. of course the author knows what they're talking about and I do understand they mainly target RTC and games like agar.io, I would want them to state more clearly that this is only valid for non deterministic, RTC, FPS, whatever you call it. for other cases, it's not the best.
8- Security wise, I'm not sure how easy it is to secrue a UDP conection, but it's surely not straightforward and easy as TCP with SSL for example.
Finally, there is never one true answer to your project's networking technology, lots of developers mix and match between TCP, UDP to get best of both worlds I would just say use whatever works best for you as long as you have enough knowledge and good reasoning to back your decision on what to use!
cheers
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
You misundrestood what I'm talking about, I'm not talking about the camera position, I'm talking about different games like turn based games, chess, board games, etc..
Lockstep is out of the scope here, surely not needed in a chess game. I'm talking deterministic games here.
> What I said is true for almost every kind of game. POV of the camera has nothing to do with it.
Again, out of scope, I'm saying UDP is not the answer to all games and the assumption that if a game is networked then you should go with UDP is naive as I'm trying to say, forget open world, forget FPS, think about a simple turn based game.
> P.S. It's not a good idea to call someone naive about a subject where you yourself may not know enough to correctly judge naivete.
Where did I call anyone naive ? thre's a difference saying you're naive and saying "the assumption is naive" I do believe i know enough that's why I'm commenting in the first place, even though I stated I might be wrong about some points, I did not personally call anyone names, go back and read my comments.
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
The only thing that makes UDP faster is that it comes without TCP's convenience features, and for many games, this is more than enough and the performance penalty is not usually worth it (unless you're a AAA with lots of resources and dedicated team just for the networking part)
besides that if you simply opt-in to UDP because it's better, then you'll spend much more time working on the network than actually working on the game.
my problem was with the generalisation in the premise, that `UDP is better than TCP for networked games`, this is not the case for a deterministic game of chess or any card/board game.
UDP's only point in this article is realtime data intensive games like FPS'es.
also I'm not putting security into consideration in this argument.
What's your thoughts ?
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
mostafaberg | 9 years ago | on: A solution for enabling UDP in the web
> It would greatly improve the networking of these games.
This is not accurate, i know it's like a rule of thumb that UDP is faster than TCP, but that's naive, there are cases where UDP will end up being slower, and to be honest, it depends on lots of variables, and at many times, the congestion control, packet ordering and all the bells and whistles that comes with TCP is well worth the little performance penalty, assuming that in that specific case it actually is slower than UDP
And of course if I'm wrong, someone will let me know :D
mostafaberg | 9 years ago | on: GitLeaks – Search engine for exposed secrets on GitHub
mostafaberg | 9 years ago | on: Show HN: My first web app – PDF memo creator
mostafaberg | 9 years ago | on: How we got 300+ users from Tinder (.)(.)
mostafaberg | 10 years ago | on: I switched to Android after 7 years of iOS
True, but don't forget that the first iPhone was an expensive piece of nothing really, we had no app store nor sdks
>What kind of phone are you using? most things got screens so big that they don't fit into my pocket anymore.
I come from iPhone 3Gs->4->4s->5->6->6s->LG G4, I can say that it's a HUGE screen with bigger resolution than my desktop, but what i meant was the total size of the screen in physical size, i don't want no friggin popups and many windows in a 5" screen
>Rocket.chat does exactly that and it is fantastic. Other webapps as well. The key feature being that you can chat on any browser, and using for example electron (the engine based on chrome, also used by the atom editor) you can easily build apps for every platform. And if you add features, they are added everywhere at the same time without a problem
Ofcourse there are tons of good examples out there, I'm explaining my personal point of view when it comes to web browsers and doing lots of in it that that it was never intended for. I'm fine if you just rename it from web browser to "JS App Container" or whatever, but to me a web browser is just a place to browse pages
mostafaberg | 10 years ago | on: I switched to Android after 7 years of iOS
Also a chat app or any of the other fancy webapps we see here does not fit into the definition of a web browser https://en.wikipedia.org/wiki/Web_browser
mostafaberg | 10 years ago | on: I switched to Android after 7 years of iOS
He was even comparing iOS to an old android phone, which definitely didn't support it either way and wouldn't even be updatable to support those new features.. and I wouldn't call a browser that doesn't WebRTC as a less capable one.
mostafaberg | 10 years ago | on: I switched to Android after 7 years of iOS
2-He was specifically talking about webapps in "standalone" mode, he specifically mentioned using `target="_blank"`. that kind of behavior does not belong in mobile environments, actually i personally disallow that on my computer too, but that's personal choice.
mostafaberg | 10 years ago | on: I switched to Android after 7 years of iOS
A: Both iOS and android have fully capable web browsers, I'm not sure what's missing here ?
>I’m talking about stuff that QA should have caught, stuff that if anybody at Apple was actually building ? apps this way would have noticed before they released.
A: They do pass QA, that's why features are removed
>One quick example that bit me was how they broke the ability to link out to an external website from within an app running in “standalone” mode. target=_blank no longer worked.
A: Thank god apple no longer allows that, how do you expect a tiny screen to have popups and switch web browser views when you click links ? this is a very bad UX.
>We were running a chat product at the time, so anytime someone pasted a URL into chat it was essentially a trap.
A: I'm not here to judge your decisions or why you did it that way, but IMHO a chat product doesn't really belong in a "web browser"
>The message from Apple seemed clear: web apps are second-class citizens on iOS
A: Exactly, and it is that way for many good reasons.
I see you've mostly switched to android just so you can continue developing webapps, that's okay for you, but it's not a really good reason at all. Don't be like the people who where bashing apple when it decided to remove support for flash player, because that's one of the reasons the web has become the way it is today, i'm not an apple fanboy, i also did the switch from iOS to Android after around 7 years too.
It's the same argument for piracy, "if I make a copy, I'm not taking away the original, so I'm not stealing", which is just a lie to tell ourselves to feel a bit better at the end of the day.