270 karma · joined June 24, 2020
LinkedIn: https://www.linkedin.com/in/praneetsahgal/ Github: https://github.com/psahgal
More about Kin + Carta: https://www.kinandcarta.com/en-us/ More about Solar Command: https://solar-command.com/
- ECE 190 and ECE 290 covered basic programming, logic gates, and the basics of software processor architecture.
- ECE 391 (one of the hardest courses in the school) covered x86 assembly and operating system design. The capstone project for the course was to build a simple OS with terminal input.
- ECE 411 covered processor architecture in detail, and how a modern x86 processor is built.
There should be courses from other universities that cover the same topics. Here's some similar courses I found on MIT's OpenCourseware platform.
- Computation Structures covers logic gates and other standard electronic constructs. https://ocw.mit.edu/courses/6-004-computation-structures-spr...
- Operating Systems Engineering covers fundamentals of operating system design: https://ocw.mit.edu/courses/6-828-operating-system-engineeri...
Best of luck!
More info here: https://www.nfi.edu/stunt-coordinator/
This will be much less risky than quitting your high-paying job and going all-in on a startup idea. Many startups fail for a variety of reasons, besides just poor execution.
Whatever you plan to do, make sure you have a backup plan.
Coming from Android, I was used to having high level conceptual guides on the core building blocks of the framework. In the Android docs, I found detailed explanations of Activities, Fragments, Views, and other major components. It was relatively easy for me to get started, and the system was designed to be extensible. Google even published blog posts regularly, which I could use to learn more about design decisions.
When I made the jump to iOS, though, it was difficult to find parallel documentation for what I was looking for. At the time (this was 2015, mind you), I couldn't find anything beyond API documentation for ViewControllers, Views, Core Data, etc. Most of the major documentation existed on third-party sites like NSHipster. Not to mention code signing. I'm pretty sure I'm one of handful developers at my firm who knows the system well enough to explain how it works...and that was after 2 years of working in iOS full-time.
I doubt that Apple will prioritize the developer experience on their platform anytime soon.
Edit: In case anyone wants to see the difference...
- Google's guide on Activities: https://developer.android.com/guide/components/activities/in...
- Apple's guide on View Controllers: https://developer.apple.com/documentation/uikit/view_control...
I haven't been back to my alma mater in a while, so my memory may be fuzzy, but I remember there was a plaque on the southwest end of the quad commemorating his achievements. I hope it's still there!
When I was taking my introduction to semiconductors class in junior year, I thought it was pretty cool that we were studying a subject that one of the university's professors helped invent.
I'm not sure how one gets software engineers to justify and back up their decisions like this on a regular basis, but I suspect it would help management trust their engineers more.
- There aren't any good randomized controlled trials to tell how well mask wearing works due to ethical concerns of experimenting on pandemic prevention methods. I could see why researchers would be reluctant to force people NOT to wear masks during a pandemic, since there's a good chance they could be putting people in danger.
- Several studies found that wearing masks are effective at reducing transmission of other respiratory illnesses, so I could see why the CDC issued guidance on wearing masks when faced with a respiratory illness like COVID-19.
- There's also randomized controlled trials referenced in the analysis that suggest masks are effective at reducing the occurrence of influenza-like illness.
I'm looking for studies that suggest face masks are ineffective, but I'm not finding a whole lot...I found a few websites claiming that masks were ineffective, but upon closer inspection, the studies they were citing compared N95 masks to standard surgical masks, not masks vs. no masks. I would love to read any studies you find suggesting that masks are ineffective at reducing the transmission of respiratory illnesses!
The CDC post is in line with Fauci's recommendation. My understanding is that the original recommendation was to avoid a shortage of masks during a critical period of the pandemic.
I wonder why this explanation got buried. Perhaps the lesson here is that rather than blaming experts for occasionally getting things wrong, we should focus on promoting media literacy instead, so that people get accurate information they need.
Personally, I'm surprised this article suggests Fauci lied, because I definitely remember reading about the full explanation behind the CDC's recommendation against public mask wearing way back in March 2020. I remember reading that the recommendation against public mask wearing was mainly due to supply chain concerns, and that the general public should use improvised masks instead, if they can.
...maybe a lot of people only heard the short soundbites instead of the full story...? I'm just speculating here.
Scrum agile works when...
- People keep standup updates short and sweet, so standups take 15 minutes or less.
- Your team has a single product owner who speaks to customers and is empowered to make decisions.
- Team members invest time and energy into backlog grooming/refinement, ensuring stories are thorough and have good requirements.
- The team retros regularly to address issues.
- The team communicates often outside of the regular ceremonies, so that meetings stay focused.
Scrum works poorly when...
- Standups turn into 30 minute to 1 hour "status" meetings where everyone brings up every question they have.
- The product owner isn't empowered to make decisions, or your team has multiple product owners who decide by committee.
- Team members are disengaged or not even consulted during backlog refinement, and stories are missing critical requirements that you have to deal with in the middle of the sprint.
- Retros get cut because "there's not enough time".
- Nobody talks outside of the regular ceremonies, so meetings drag on forever.
Scrum agile doesn't work for every organization and every project. Sometimes company culture is too hard to change. Sometimes the work you're doing can't really be done in an agile way. Sometimes the organizational structure makes it hard for a scrum team to work without consulting multiple layers of bureaucracy. (That's my project right now, and it is NOT fun.) When that happens, you have to either relax the rules of scrum (being careful to avoid the pitfalls I mentioned above), or adopt a different process altogether.
- You have to install CLI components piecemeal on GCP, and sometimes need to opt into beta features. With the Cloud Shell, it's all preinstalled for you.
- You have to "log into" the CLI if you're running it locally, which can be a minor annoyance. (I know the AWS CLI doesn't have this issue, as it doesn't use OAuth for authentication with the console.)
- All of the data transfers in Cloud Shell are happening between machines in Google's data center, so you get gigabit speed file transfers in the Cloud Shell. For example, this is super useful when you need to download a large bucket to a working directory to make edits to multiple files, or if you need to run scripts that pull and push to/from Cloud Storage.
I think a Cloud Shell for AWS is a net positive! It can make some workloads easier and reduce the amount of configuration you need to do.
I'm just struggling to figure out why the PERCEPTION is very different between iOS and the home console market. It feels like many iPhone users do not believe their smartphone can be substituted with one from another manufacturer. Those same users also complain that they're locked into the App Store. (I think there's a few people in the comments here that have done exactly that.)
At the same time, the majority of mobile app revenue is coming from iOS, which is pushing app developers to the platform, even though they dislike the terms of the App Store.
I'm not sure what the solution is here, but an ecosystem with a large number of members who are unhappy with the status quo doesn't seem very sustainable.
Although, if we're going by how popular the apps are on the store...I could see how Epic would be considered a heavyweight on the App Store.
Nintendo also takes a 30% cut, although it used to be 35% for WiiWare games. This does NOT include the cost of acquiring development hardware, which usually sets you back $1000 at most. 30% is actually the industry standard; Steam takes 30% and Epic Games takes 30% for smaller titles.
Regarding your comment on captive platforms, I think there's a bit of a difference between a home console and a smartphone. A home console is considered a luxury item, while a smartphone has quickly become a necessity in today's connected world.
For home consoles, market competition is fierce. Not only is there Nintendo, Sony, and Microsoft, but there's also the PC gaming market, which includes devices in a variety of form factors. There's also multiple storefronts. You can buy console games from physical stores, in which case physical retailers take a cut, purchase Steam keys from other vendors, trade physical games, etc. In summary, there's a lot of ways to acquire your games.
In contrast, smartphones are seen as a necessity by many, and there are really only two options: Android or iOS. Each has a dedicated storefront that captures almost their entire user base. This gives Apple and Google a LOT of power over what people can run on their devices, and it practically gives them a guaranteed source of income. I can see why people's attitudes are different towards the Apple/Google duopoly, and that few people are complaining about Nintendo's monopoly on the eShop.
Epic's definitely not a little guy, but compared to Apple, it looks more like a respectable medium-sized company.
I find Apple's revenue numbers and market value truly staggering. Few companies seem to be able to compare.
[1] https://venturebeat.com/2020/06/15/epic-games-shareholders-s...
[2] https://appleinsider.com/articles/20/10/26/what-to-expect-fr...
I think the hard part is explaining the distributed nature of the tool, where your branches are completely separate from the branches on the server. When I'm explaining it, I usually talk about branches as work streams, and merging branches means merging work together.
What kind of things tend to trip people up when explaining Git? Maybe I should write a blog post or something...
For Google Cloud Platform, they partner with other companies (like the one I work for) to help with GCP setup. This partner program was started in the last few years, so I don't think they were doing this for Android back when Android development was new.
Also, the company I work for spent a lot of time building Android apps for Fortune 500 companies, so I feel like I would have heard about it. Our clients would have benefitted from having Googlers build Android apps and train people!