What was the data actually sent out? It was vague enough to sound like it could be tracking data (eg. Location) or it could be something like automatic updates.
HN user
Xlythe
Just a college student who dabbles in programming.
Creator of: https://play.google.com/store/apps/details?id=com.sam.hex https://play.google.com/store/apps/details?id=com.android2.calculator3 https://play.google.com/store/apps/details?id=com.xlythe.saolauncher
Email at: will@xlythe.com
Including anyone Trump still considers a "criminal" even after they've been acquitted by the courts.
Even as a (dark) joke, the official @WhiteHouse Twitter post on NYC's congestion pricing is uncomfortable: https://xcancel.com/WhiteHouse/status/1892295984928993698
The president is not a king.
Sure, happy to expand.
Stepping back quite a bit, the US constitution divides up responsibilities between the Legislator (Congress), the Executive (President), and the courts (Supreme Court).
The Legislator is given rights over declaring war, applying tariffs and levying taxes, federal budget, approving international treaties, and of course writing laws. Over the past 250 years, the legislative branch has slowly given the executive branch more discretion. In times of emergency, the legislative branch moves too slowly, so the executive branch is better suited to make snap decisions.
Trump, as soon as he's taken office, immediately used these powers to declare an emergency at the border (https://www.whitehouse.gov/fact-sheets/2025/01/fact-sheet-pr...) and redirected the military to intervene. It's an abuse of the power, as the situation has been relatively stable (enough so that congress should have had time to meet and decide on next steps), but it's something he did in his last term as well (https://trumpwhitehouse.archives.gov/presidential-actions/pr...) so was expected. What wasn't expected was the repurposing of Guantanamo Bay (a military prison with a dark history outside the jurisdiction of most US courts) now being used for migrants (https://www.bbc.com/news/articles/cy0p1ykxyzjo). It's a worrying trend of moving undesirables somewhere out of sight of the general public. In his last term, there were detention centers inside of the US (https://abcnews.go.com/Politics/tornillo-texas-tent-camp-hou...) with poor conditions -- most notably, Trump pardoned one such sheriff (https://www.npr.org/2017/08/25/545282459/president-trump-par...) who was remarkably cruel and called the tent cities personal concentration camps. This shift to move migrants to more restricted areas is seen as a way to avoid oversight.
Trump likewise invoked the International Emergency Economic Powers Act to levy tariffs against Canada (https://www.whitehouse.gov/presidential-actions/2025/02/prog...), Mexico (https://www.whitehouse.gov/presidential-actions/2025/02/impo...), and China (https://www.whitehouse.gov/presidential-actions/2025/02/impo...). Again, these powers are usually invoked in response to war, so it's considered an abuse of power. Canada and Mexico are also close allies and a part of USMCA, which is a treaty promoting free trade between the three countries; Trump negotiated & signed the USMCA treaty when he was last in office, and has since called it a bad deal and these tariffs directly conflict with it. It's put the US in a situation where allies are being alienated. Trump has also threatened tariffs against the EU and Taiwan, both of which currently count on US military intervention in case of war, which is straining those relationships as well.
Republicans, hopefully more as a show of solidarity than an act they'd follow through with, have also introduced legislation (https://ogles.house.gov/media/press-releases/rep-ogles-propo...) to allow Trump (and only Trump) to run a 3rd term as president. This kind of twisting of the laws is something you'd expect more in Russia or other puppet governments and leaves a bad taste. Similarly, legislation to add Trump to our national landmarks (https://www.congress.gov/bill/119th-congress/house-bill/792) have been floated while Trump has had historically low approval ratings when compared to past presidents (https://news.gallup.com/poll/203198/presidential-approval-ra...).
In Trump's previous term, he appointed several Supreme Court justices. The court is idealistically an unbiased and independent branch, and are given lifetime appointments as such, but the political leanings of the court have shifted with these new appointments. Abortion, a controversial topic in the US, was recently made illegal in several states after the court re-ruled, on party lines, a 50-year standing (https://www.supremecourt.gov/opinions/21pdf/19-1392_6j37.pdf). More recently, and relevantly, though, the supreme court ruled again on party lines that the president cannot be taken to court over illegal acts while in office (https://www.supremecourt.gov/opinions/23pdf/23-939_e2pg.pdf) and that only congress's power of impeachment can be used. With a republican majority in both houses of congress (and impeachment requiring 2/3rds approval to convict), there seem to be little to no recourse to anything Trump has done or plans to do regardless of legality. It's democratic in a sense -- the US population voted for a majority in the house and senate and so we're getting what we voted for -- but there's 2 years until the next election, so there's a prevailing sense of helplessness.
Getting into powers of the purse, as mentioned before, the executive branch is expected to dutifully carry out the budget and laws set by the legislative branch. This includes the creation and running of departments, as well as getting senate approval for department heads. Notably, Elon Musk is not a senate-approved department head, but he's been given dangerous amounts of access to the treasury (https://www.wired.com/story/treasury-department-doge-marko-e...) and other departments. This is without going through the normal vetting process (although, as President, Trump does have the power to bypass such requirements. It's simply against norms, and raises concerns about the possibility of blackmail, espionage, and hacking). Elon has also declared several departments as 'criminal organizations' (https://www.npr.org/2025/02/03/nx-s1-5285539/doge-musk-usaid...), Trump has fired anyone who has pushed back against Elon's requests, and funding for most departments has been paused pending review. Trump has also offered almost federal employees a Voluntary Exit Program (VEP) (https://www.opm.gov/fork/), although the legality of such a VEP is debated since past court cases (https://www.oyez.org/cases/1989/88-1943) have ruled that congressional approval is necessary. If that's the case, anyone who resigns may not end up being paid. This is seen as a wider purge (eg. https://apnews.com/article/trump-fbi-firing-a7b19a5f414ce82c..., https://www.cbsnews.com/news/trump-federal-inspectors-genera...) of the government to replace federal employees with loyalists to the president (instead of to the constitution).
And for Elon specifically, during Trump's inauguration he did his infamous "My heart goes out to you" salute (https://www.youtube.com/watch?v=-VfYjPzj1Xw) which is seen as a poor attempt to signal to the far right and neo-nazi parties, that typically have supported the republican party, that they are welcome and in positions of power now. Elon also spoke at far-right rallies in Germany (https://www.reuters.com/world/europe/elon-musk-appears-video...) championing lines of nationalist empowerment. At face value, it's innocent enough, but these terms are also seen as a dogwhistle for neo-nazis and so it's seen together as another vocalization of support for them.
Trump also pardoned everyone involved in the insurrection on January 6th, who had invaded the capital and attempted to abduct the congressmen and vice president to stop them from ratifying the peaceful transfer of power in 2020. This is seen as a nod from Trump that if you support him, you will have immunity for your actions.
---
The US populace voted for this, so if it's a coup it's a bloodless one. But everything Trump has done in the few weeks he's been in office is very extreme by the standards of the US. The transfer is power is usually peaceful, and builds upon the work of past presidents. This is a very abrupt departure from that, and no concern is given to impressions of corruption and nepotism.
Oh, hey, I was working on that back in 2014 for one of the big TV manufacturers. The project was ultimately cancelled.
It was nice for things like switching HDMI inputs; you could dynamically update the name and icon, making it more intuitive for someone who had never used the TV before and didn't know what was plugged into which port. You could also adjust settings more easily without everyone have to watch together with you on the big screen as you dug to find the obscure setting to tweak.
But your complaints were equally valid, and were a concern at the time.
I would have liked to see it ship, if just to see if customers liked it. A traditional remote still worked too. But oh well.
It seems like it'd be possible to, instead of typing multiple exclamation points, have one trigger-character (eg. ). And then replace that character visually with an entire paragraph of text, assuming there aren't limits to the width of a character in fonts. I suppose the cursor and text wrapping would go wonky, though.
You could also use this to make animated fonts. An excuse to hook up a diffusion model next?
They pioneered the graphical user interface: https://www.folklore.org/Busy_Being_Born.html
Google, internally, is pretty up front that there's a forced distribution (or quota) for performance ratings and promotions. It's for budgetary reasons, and it's not strictly enforced, but it's published and often referred to. Past a certain level, a business justification is also needed in addition to merit.
The quota the manager was referring to was very likely that.
They've had one ongoing since Q3 2022 in my org.
Sounds like a reference to the "Google People" parody: https://qntm.org/person
I'm the lead for Nearby Share at Google. After more than a year of work porting from Java to C++, Nearby's finally available on another platform!
If anyone has questions/comments/bugs or features, I'm happy to talk about the product.
If you like hard sci-fi, Greg Egan has a written a few books that cover what life would be like if there were 2 dimensions of time (http://www.gregegan.net/DICHRONAUTS/DICHRONAUTS.html) or if the dimension of time was sumed instead of subtracted when measuring distance (http://www.gregegan.net/ORTHOGONAL/ORTHOGONAL.html)
It's amazing to think how the universe is ruled by such minute details.
The underlying stack (Nearby Connections) is open sourced on GitHub[1]! This stack is what handles the negotiation between Bluetooth/WiFi and chunks the files while sending. There's a couple protos on top of Connections that are specific to Nearby Share, that handle identity and file metadata (eg. mimetype) that aren't a part of this repo. Those are being merged into Chromium first, but may eventually become their own library.
Nearby Share was written originally in Java, so the C++ port is a bit less mature. But hopefully having something out there is better than nothing. If you decide to take a look, do leave feedback. We monitor the GitHub page and I'm active on StackOverflow if you use the google-nearby tag.
Hey, it's my project! :) I led the development of Nearby Share since its inception in 2018. Feel free to ask me any questions.
I've been at Google for almost 4 years, mostly working at startups before that. First and foremost, there's nothing special about Google (compared to any other tech company) and it's best not to evangelize any one company. Learning comes from experience, which means trying things (even if you end up making mistakes) and figuring out the shortcomings of a particular solution. I've seen a lot of bad (and a lot of good) code at Google.
What I learned, design-wise, came from a coworker. They planned everything out in advance and would draw out components on a whiteboard and define what they'd do. A few weeks would pass before they'd write any code. In contrast, I would start with writing skeleton classes and intuit the breakpoints for building a new class. We ended up with similar code structure at the end of the day, since we were both designing the architecture (even if our methods were different). But in code reviews, I would focus on if the new code made sense within the scope of the change; are there any clear bugs, code duplication, is there a more simple approach, etc. My coworker always went back to the whiteboard and drew up the components again, making sure the new code fit within the originally defined scope or if a larger change would make more sense. Because my skeleton classes were quickly replaced with implementations, I lost my original frame of reference and only focused on what was in front of me. I could still tell when something was obviously wrong (stop sending me CLs with global state to cross talk between components!), but there was creep in the CLs I approved and the code would slowly get more complicated until I realized it needed to be refactored.
There's a tradeoff (like in anything). You can't design your own solution for every code review, as it takes too much time and removes autonomy from your peers. But remembering to step back and look at the big picture was something I needed.
There were other things I learned, like structuring code in ways that it's hard to write bugs. For example, you could write a method like...
void foo(Callback callback) {
if (error1) {
callback.onError();
return;
}
if (error2) {
callback.onError();
return;
}
if (error3) {
callback.onError();
return;
}
doWork();
callback.onSuccess();
}
but it's easy to forget to call 'callback.onError()' in a future CL. A small refactor, like... void foo(Callback callback) {
if (bar()) {
callback.onSuccess();
} else {
callback.onError();
}
}
boolean bar() {
if (error1) {
return false;
}
if (error2) {
return false;
}
if (error3) {
return false;
}
doWork();
return true;
}
has the compiler help you catch mistakes. Unit tests obviously help too, but doing both reduces the number of bugs that slip through. Similar tricks include annotating methods as @Nullable so you don't forget to nullcheck, annotating which thread is calling a method (eg. @FooManagerThread, @UiThread, etc), and doing all the if checks as close to the top of a method as possible so that you only do work if you're in a good state.Oh, and here's one last tip that I only realized needs to be reiterated because most of my coworkers forget it. Validate incoming data! Every API needs a wrapper around the entry point that...
* Verifies the caller is allowed to call that method
* Verifies the method can be called at this point in time (eg. hackerNewsApi.postComment(threadId, msg) only works if the threadId is valid)
* Verifies that the arguments make sense (eg. 'msg' is not empty/null/above the max comment size).
And this is needed at every layer (application, server, etc). Trust no one, even if the only caller is supposed to be yourself.Glossary: CL = changelist ~= pull request
Could it be used to power wireless mice, keyboards, etc? Things that are generally low power but still require batteries every N months?
Google has an application process where, before you've written any code, you can ask for copywrite release. However, if you don't do that, they can and WILL claim ownership over your personal projects. It's happened to me.
You could just let the external methods only access public variables. That's exactly what Java let's you do when you extend another class. I agree that private members should stay private.
I wish I could add methods from outside of my package. I currently run into cyclical dependency issues when I try and define something like...
func (g Game) GetPlayers() []Player { ... }
func (p Player) GetGame() Game { ... }
While having Game and Player in separate packages. It's not the end of the world having them in the same package, but the amount of methods does pile up...
https://play.google.com/store/apps/details?id=com.xlythe.sao...
An Android app for quickly accessing contacts, apps, and whatnot. It sits on top of your screen and if you swipe down from the little bars the app opens.
The income is mostly from the Pro version; about 5x the ad revenue. Extensions are 1x ad revenue, each. Themes made almost nothing, so they're all free now.
Doesn't do quite everything, but it is a start:
Thanks! That was fast. I'm definitely interested - most of my apps are translated by users and I've been emailing xml files back and forth. Not fun for anyone.
I just uploaded a project to try it out.
Suggestions:
Include the language code when uploading xml files. I always have to look up the codes. Google does this with their service[1].
An option to default to Show All. Or a url parameter. Every time I refresh the page or press back, I'm in pagination again.
When drilling into a particular language, show the language in the header title. It just says "Localize". Makes having various tabs open troublesome.
Use the language code in the url. Right now, it's... https://www.localize.im/projects/abc/languages/3C when it should be https://www.localize.im/projects/abc/languages/ru
Automatic translations.
Paid translations.
[1] https://www.dropbox.com/s/z5382q9grbyl30f/Screenshot%202014-...
We (friends and I) launched SAO Launcher [1] as an Android app in 2013. It lets you make phone calls, launch apps, and a few more things by swiping down from a small hitbox.
Got to build a lot of cool things because of it (Themes and Extensions installed via separate apks, Overlays, Animations). And it's profitable.
[1] https://play.google.com/store/apps/details?id=com.xlythe.sao...
There's a cap at 100[1]. And individual apps can set a lower cap if they wish.
[1] https://developer.android.com/preview/api-overview.html Concurrent documents and activities in the Recents screen
In Java, everything extends Object, so something like List<Object> will let you put anything you want into it. I should play with more languages, I didn't realize that was an uncommon feature.
I have a full time job, but do contract work on the side. I have an LLC for that, as well as for sales from my Android apps.
That might be the one closest to a real product.
http://googlepublicpolicy.blogspot.com/2013/04/plan-your-dig...
In the first case, you only know the AMOUNT. You can't undo transactions because you only have 1 object stored, the total amount. If you store DIFFERENCE, then you'll have a table of every transaction and can undo them individually. The cost is having to sum the table whenever you want to know the amount (which is usually worth the flexibility).
Lottery goes from April 8 - April 10th.
Logging in to Dropbox kicked me out of my game, losing my progress. Is it possible to open the confirmation in a separate window or tab?