Jump to content

Wikipedia:Reference desk/Computing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Scsbot (talk | contribs)
edited by robot: archiving December 28
Line 156: Line 156:
:There's nothing to stop you from downloading the source [[Tarball_(computing)|tarball]] for any program you want. You can then use <code>gzip -dc program-source.gz && ./configure && make && sudo make install</code> to build and install the package. If you do this then you'll probably find that you need to install build-dependencies for your new program to build, which you'll have to download and build yourself before you re-attempt building the original program. You might have to do this recursively several times. You may also find that two different programs need different, incompatible versions of the same dependency. The whole point of package managers is to remove this hassle. [[User:LongHairedFop|LongHairedFop]] ([[User talk:LongHairedFop|talk]]) 19:16, 4 January 2018 (UTC)
:There's nothing to stop you from downloading the source [[Tarball_(computing)|tarball]] for any program you want. You can then use <code>gzip -dc program-source.gz && ./configure && make && sudo make install</code> to build and install the package. If you do this then you'll probably find that you need to install build-dependencies for your new program to build, which you'll have to download and build yourself before you re-attempt building the original program. You might have to do this recursively several times. You may also find that two different programs need different, incompatible versions of the same dependency. The whole point of package managers is to remove this hassle. [[User:LongHairedFop|LongHairedFop]] ([[User talk:LongHairedFop|talk]]) 19:16, 4 January 2018 (UTC)
:Package repositories are for convenience and security. Every Linux package manager I'm aware of allows you to install packages from sources other than the official repository; for example, on [[Debian]], you can download a Debian package yourself from wherever you wish and install it with apt/dpkg on your system. You can even create your own Debian packages. This may take a bit of fiddling and some computer knowledge. [[Linux from Scratch]] walks you through manually building a [[GNU/Linux]] system yourself, hence there's no package manager. However, this is intended as a learning exercise. You'll understand why if you try it, as it's quite time-consuming, and, without a package manager, updating any software has to be done by you manually, though I believe there is an "unofficial" add-on package manager for people who want to actually use LFS as an "operational" system. --[[Special:Contributions/47.157.122.192|47.157.122.192]] ([[User talk:47.157.122.192|talk]]) 20:46, 4 January 2018 (UTC)
:Package repositories are for convenience and security. Every Linux package manager I'm aware of allows you to install packages from sources other than the official repository; for example, on [[Debian]], you can download a Debian package yourself from wherever you wish and install it with apt/dpkg on your system. You can even create your own Debian packages. This may take a bit of fiddling and some computer knowledge. [[Linux from Scratch]] walks you through manually building a [[GNU/Linux]] system yourself, hence there's no package manager. However, this is intended as a learning exercise. You'll understand why if you try it, as it's quite time-consuming, and, without a package manager, updating any software has to be done by you manually, though I believe there is an "unofficial" add-on package manager for people who want to actually use LFS as an "operational" system. --[[Special:Contributions/47.157.122.192|47.157.122.192]] ([[User talk:47.157.122.192|talk]]) 20:46, 4 January 2018 (UTC)

= January 4 =


= January 5 =
= January 5 =

Revision as of 05:56, 5 January 2018

Welcome to the computing section
of the Wikipedia reference desk.
Select a section:
Want a faster answer?

Main page: Help searching Wikipedia

   

How can I get my question answered?

  • Select the section of the desk that best fits the general topic of your question (see the navigation column to the right).
  • Post your question to only one section, providing a short header that gives the topic of your question.
  • Type '~~~~' (that is, four tilde characters) at the end – this signs and dates your contribution so we know who wrote what and when.
  • Don't post personal contact information – it will be removed. Any answers will be provided here.
  • Please be as specific as possible, and include all relevant context – the usefulness of answers may depend on the context.
  • Note:
    • We don't answer (and may remove) questions that require medical diagnosis or legal advice.
    • We don't answer requests for opinions, predictions or debate.
    • We don't do your homework for you, though we'll help you past the stuck point.
    • We don't conduct original research or provide a free source of ideas, but we'll help you find information you need.



How do I answer a question?

Main page: Wikipedia:Reference desk/Guidelines

  • The best answers address the question directly, and back up facts with wikilinks and links to sources. Do not edit others' comments and do not give any medical or legal advice.
See also:


December 30

LED screens for portable electronic devices that are not OLED

Could screens for portable devices be composed of a array of really small LEDs (but without organic components like OLED)? That is, not back illuminated by LED, but each pixel consisting of a micro LED. I only know LED screen in outdoor displays.--Hofhof (talk) 01:29, 30 December 2017 (UTC)[reply]

Yes. The problem is that the smallest LEDs are far too large to make a display that anyone would want to use. Instead, you'd have to create a sheet of LED-like molecules that you can independently ionize to create light. In other words, you'd just be reinventing the OLED display. 71.85.51.150 (talk) 03:24, 30 December 2017 (UTC)[reply]
They are working on that right now Fëanor Engineering (talk) 11:10, 30 December 2017 (UTC)[reply]

GUI ambiguity

I've been using google hangouts recently. This has a button marked "mute" (with a picture of a microphone with a line through it). But I never know whether this means "press this button to mute your mic", or "your mic is now muted, press this button to unmute". I see this very annoying ambiguity very frequently, in many contexts (not just sound). Is there a name for it? Robinh (talk) 02:00, 30 December 2017 (UTC)[reply]

Apparently the problem is not just you: [1].
Does the button change color/form/sign when you press it? Does it display any text?--Hofhof (talk) 02:52, 30 December 2017 (UTC)[reply]
Heh, good to know it's not just me. But the problem is universal: for example on my ubuntu box, for bluetooth, there is a toggle switch with two settings: "on" or "off". Does "on" mean "bluetooth is currently on, press this button to turn it off", or does it mean "bluetooth is currently off, press this button to turn it on"? Or is this obvious to most people? Robinh (talk) 03:54, 30 December 2017 (UTC)[reply]
The controls are called "flip-flop buttons" in Alan Cooper's book About Face: The Essentials of User Interface Design.[2] The problem itself is common, but I don't know if it has a specific name. Mitch Ames (talk) 13:34, 30 December 2017 (UTC)[reply]

(OP) Thanks for this Mitch. The stackoverflow page is great: very nearly all the posters understand the problem, and most despair of unthinking and confusing UI design. As far as actual usage is concerned, it seems that in about half of interfaces, "on" refers to the state and in rest "on" refers to the action. Robinh (talk) 18:50, 30 December 2017 (UTC)[reply]

Privacy violation (or) Missing Terms of Service - what action to be taken?

On my birthday (that happened a month ago), I received an SMS to my "personal" mobile number from a travels related website. The message wished me a happy birthday (specifying my age) while giving me an offer of 10%. This shocked me more than it surprised me for the following reasons,

  1. I have no idea about that website up and until I got that message
  2. I don't disclose my personal mobile number or my birthday unnecessarily. The fact that they got my Name, DOB, Phone number correctly was a great shock!

I tried to narrow down the potential services that I use which might have gave my personal information to that website. I was able to narrow it down to one service. It's a service I use to book train tickets in my country (India). I was even more shocked when I came to know that I was using a service which neither had a "Privacy Policy" nor a "Terms of Service" !

I even pinged them about the lack of Privacy Policy a month ago but no reply (except for the automated reply) until now. I'm pretty sure that they would be the one who would have given out my information without my consent. I would like to take action against them. Further even if the service isn't behind the SMS I got on my birthday, I would like to take action against them for not having a Privacy Policy or ToS. I'm not sure how to go about it. Any guidance as to what I could do about this "privacy information leak without permission" or "missing Terms of Service" issue would be helpful.

Note: If this isn't the right place to ask, please point me to the right locations if possible. - - Kaartic correct me, if i'm wrong 18:18, 30 December 2017 (UTC)[reply]

I am not sure why you are asking here? This is a "computer desk" intended for question related to computers. Ruslik_Zero 20:13, 30 December 2017 (UTC)[reply]
You are not why answering Good English Ruslik. The "computer desk" not intended ungrammatical criticism. μηδείς (talk) 20:33, 30 December 2017 (UTC)[reply]

@Kaartic: You can try [this consumer protection link] which deals with unsolicited SMS communications and is linked to by the Telecom Regulatory Authority of India's main website. You can also call your phone service provider and ask for a number for regulatory complaints/inquiries regarding uninvited solicitations or talk to a lawyer. μηδείς (talk) 20:33, 30 December 2017 (UTC)[reply]

@Medeis: Thank you for your suggestion! I'll see what action they take. - - Kaartic correct me, if i'm wrong 13:05, 4 January 2018 (UTC)[reply]

December 31

C programming — how do I view the 8, 32, or 64 bits of binary information at a known memory address?

  • "Main memory or RAM is arranged as an array of "sets of electronic on/off switches" or locations beginning at address 0. Each location can store usually 8, 16, 32 or 64 bits."
  • "Memory can be thought of as an array of bytes where each address is one index in the array and holds 1 byte."
  • My final attempt of getting help before coming here to the ref desk! Ԅ

I'm an absolute beginner. I just joined codeacademy last month and more recently I've enrolled in Edx's premiere computer science class CS50! I just learned through wikipedia how to find the memory addresses of any data type just by typing "%p, &shark inside the printf function and now I'm like a giraffe who discovered the stepladder!

Is there a clean, fool-proof way for me view the 8, 16, 32, or 64 bits of ANY memory location just by having that memory location's address? (e.g. 0x7ffed73897d8) In other words—if I know the address—is there a program or line of code which can "print for me the 8, 16, 32, or 64 bits of binary information" at the known address? 67.233.34.199 (talk) 03:03, 31 December 2017 (UTC)[reply]

Here's the thing: all data in any typical computer is binary. Any time you're printing output, you are "printing binary information". Your code just usually tells the computer to interpret said data in a particular way, such as an integer value within a certain range. This is a thing a lot of beginning programmers have trouble wrapping their heads around. Computers are dumb. They don't know what a "number" is. They just process data according to the instructions they're given. If you tell the computer to interpret a value as a 32-bit signed integer, it will do that. If you tell it to interpret it as a name in a database, or a pixel in an image, it will do that. Now a second thing: on most modern computers, you can't arbitrarily access memory addresses in a program. The reasons take a while to explain in detail, but they have to do with virtual memory and operating system access controls. You usually can view a process's memory contents with a debugger, and sometimes other ways as well, like through the proc filesystem on Linux. (Sometimes this requires administrator privileges.) If you do want to play around in an environment where you can access arbitrary memory, try an emulator for a platform without memory protection, such as Dosbox.
Anyway, to sort of answer your question, C gives you types for accessing fixed bit-width values, instdint.h. Note this requires C99, but if you're trying to learn in an environment without C99 support, throw it out and use one that does. Note you will see a lot of stuff online telling you to do things like use a char* to read a single byte. This is wrong in plain C because the size of types like char is platform-dependent. Using char as a synonym for "8-bit byte" was common in pre-standard C, and old habits die hard. With that said, POSIX does mandate char be exactly eight bits, so if you're writing explicitly for POSIX platforms you can assume that. Here's an example for looking at a 32-bit chunk of memory. As I said, on modern platforms you can't access arbitrary memory addresses, so instead we're just going with whatever the operating system gives us off the heap with malloc.
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main() {
	uint32_t *ptr = malloc(sizeof(uint32_t));
	if(!ptr){return 1;}
	printf("Value: 0x%x Address:0x%x\n", *ptr, ptr);
	free(ptr);
}
This prints the value and address pointed to in hexadecimal. C has no built-in support for printing values in binary because it's rarely useful; hexadecimal is what programmers usually use for displaying "raw" data. As a teaching exercise, you can try using this macro for binary output. For pedagogical value, I've done things right by checking for malloc failure, and freeing the malloced memory after using it. Obviously this isn't necessary in a toy program, but in "real" programming you should always do these. Note as well that forgetting to assign something to a malloced pointer is a common mistake. Here it isn't a mistake because we want to see whatever's in the memory location already. It's possible that you might always get a value of 0, because these days it's increasingly common for systems to zero out memory when it's allocated by a process. --47.157.122.192 (talk) 10:48, 31 December 2017 (UTC)[reply]
Oh, and here's a fairly good Wikibooks page on stdint.h. --47.157.122.192 (talk) 11:24, 31 December 2017 (UTC)[reply]
In addition to the reliable types defined in stdint, inttypes.h defines reliable printf format specifiers for the same specific sizes. So:
#include <stdio.h>
#include <inttypes.h>
#include <stdint.h>

void print_values(uint64_t* p){
  printf ("values at %p:\n", p);
  printf (" 8 bit:  %02"   PRIx8  "\n", (uint8_t)*p);
  printf (" 16 bit: %04"   PRIx16 "\n", (uint16_t)*p);
  printf (" 32 bit: %08"   PRIx32 "\n", (uint32_t)*p);
  printf (" 64 bit: %016"  PRIx64 "\n", (uint64_t)*p);
}

int main () {
  const char test_data[] = { 0x12, 0x34, 0x56, 0x78,
                             0xf1, 0xe2, 0xd3, 0xe4 };

  print_values((uint64_t*)test_data);

  return 0;
}
-- Finlay McWalter··–·Talk 11:09, 31 December 2017 (UTC)[reply]
In fairness I should note that inttypes.h is a C99 feature, and MSVC's support for C99 has been patchy. It seems they added support for this in the 2013 version (but I've not personally tested this on that platform). -- Finlay McWalter··–·Talk 14:59, 31 December 2017 (UTC)[reply]
Yes, that's the right way to do it. For some reason I was thinking printf did some magic with the width of its arguments. Moral of the story: 1 AM is not the best time to program. --47.157.122.192 (talk) 21:37, 31 December 2017 (UTC)[reply]


I think the bigger problem here is that, given memory protection, memory virtualization, address randomization and other such things, there may not even be an address "0x7ffed73897d8" from which you can read. If you absolutely, positively need to read from an address given as a literal, you cast that literal into a desired pointer type and use the pointer to obtain the value stored at that address (i.e. dereference it), like this:
printf("%d\n",*(int*)0x7ffed73897d8);
This is it, as far as C is concerned, but see above. Your program will most likely crash. In simpler systems running on simpler hardware, such as DOS running in real mode, this was, however, a totally "legit" way to access memory at known addresses, for example in order to write to the video memory or to read the BIOS data area that contained various useful info about the computer (such as the number of floppy drives or COM ports and their respective addresses.) 78.50.124.31 (talk) 20:38, 31 December 2017 (UTC)[reply]
I take it your misconception about memory stems from the phrasing "can be thought of as an array... at location 0." This is a simplification, but good for you thinking ahead, apparently you're the first participant of your course to do so 78.50.124.31 (talk) 20:59, 31 December 2017 (UTC)[reply]

C programming — "printf("%d\n",*(int*)0x7ffed73897d8)" worked and I'm elated!

I'm happier than a clam at high tide! Now I have a whole host of experiments I'm wishing to do because I want to test and verify for myself a lot of questions along the lines of "what will happen if I do x" and I needed to know this particular line of code. The other solutions worked when I ran them in codeblocks (although not in the cloud ide that CS50 uses) but I didn't fully understand what I was seeing nor how to tinker & substitute my own memory addresses into the code, which is fine for now.

The other great thing I really like about computer programming is the absolute freedom you have to write and instruct the computer to do anything you want — no questioning, no second-guessing, no backtalk — especially if you are the type of person who gets joy at telling the computer to perform purposeless tasks. Thanks again, everyone! 67.233.34.199 (talk) 11:57, 1 January 2018 (UTC)[reply]

Who or what can fix corrupted and unplayable video files?

I don’t know if this is an appropriate place to post this or if I should frame the question differently. I’m going to go ahead and explain and ask. I recently went on a trip where I took a lot of videos. I have a USB drive that you can put in to an iPhone on one end and the computer on the other end. To free up some space on my iPhone to continue recording, I moved some of the video clips directly to the USB drive. However, when I returned home and started going over the videos I put in my USB drive, my computer and my iPhone were unable play the videos except for the first few. 9 of the videos won’t even copy and paste to my computer. Is such an issue fixable? Who are what would be able to fix corrupted/unplayable videos? Willminator (talk) 03:22, 31 December 2017 (UTC)[reply]

Did you check the file system on your USB drive for for errors? Ruslik_Zero 16:41, 31 December 2017 (UTC)[reply]
I don’t know. Are such files recoverable? Willminator (talk) 21:27, 1 January 2018 (UTC)[reply]
Is the USB drive a brand name drive purchased from a reputable seller or a generic drive bought online at a seemingly bargain price? The reason I ask is that there is a long running scam involving both USB flash drives and SD cards where low capacity drives and cards are hacked and relabeled so that they appear to have a much higher but false capacity. (Briefly discussed in USB flash drive.) Products with only a few GB of real memory can be modified to show as much as 2TB of false capacity. Data may appear to write successfully to such drives (or cards), but past some point, the data is irretrievably corrupt when read back. -- Tom N talk/contrib 04:27, 2 January 2018 (UTC)[reply]
Can these scam drives be modified to correctly report the true memory capacity? Graeme Bartlett (talk) 05:32, 3 January 2018 (UTC)[reply]
In theory, the Flash memory controller firmware can be restored to its original state by overwriting the hackers' Custom firmware with a copy of the genuine control program, but this is a specialist task and probably requires detailed knowledge and specialist equipment. I wouldn't know where to start. Restoring the original control ware would not recover data that has already been overwritten, but it would prevent overwriting in future. It's probable that only a few bytes have been changed, just allowing the control program (hidden on the USB drive) to re-use memory locations that should have been protected because they already contain valid data. If the USB drive was genuine, and files have not been overwritten, then sofware is available to recover files from a damaged file structure. I have some that works well for pictures, but maybe not for videos. Dbfirs 16:21, 3 January 2018 (UTC)[reply]

iPhone and Android smartphone

Apple's iPhone don't have memory card slot. It's RAM is not more than 1gb (5 or 4 model). It's screen size is smaller than Android phones. Inspite of all these factors people buy it at awesome prices! (Which are far far higher than Androids having all I have just mentioned).Why is that? No, it can't be just brand mania. Or is it?  Jon Ascton  (talk) 07:02, 31 December 2017 (UTC)[reply]

It quite possibly is brand mania on the part of those few remaining iPhone users, given that iOS usage has dropped so far that Android and iOS now have shares of the smartphone market roughly equal to the shares that Windows and macOS have in the desktop market, respectively. Just like there're some people who'll always go Mac, there're some people who'll always go iPhone. Whoop whoop pull up Bitching Betty | Averted crashes 10:51, 4 January 2018 (UTC)[reply]
One assumes people buy it because they like it better than competing products. As for why, you'd have to ask them. Please note the page header, which states that we don't accept requests for opinions, predictions, or debate. I will note that at least in the U.S., iPhones and top-end Android smartphones are priced comparably. For instance, the iPhone 8 Plus MSRP is $799, while that of the Samsung Galaxy S8+ is $824.99. --47.157.122.192 (talk) 11:00, 31 December 2017 (UTC)[reply]
Neither 5 nor 4 models are sold now. Ruslik_Zero 16:46, 31 December 2017 (UTC)[reply]
Apple already had a giant "start" into "mobile electronic" with the iPod, which, like the iphone, was "first" of its category and also "best of art" for long enough to become famous and iconic. Of course its brand mania to some and a divine altar to others. I never understood why everyone wanted a Mercedes Benz - even Janis Joplin [3]. I always only wanted a Porsche. --Kharon (talk) 17:44, 1 January 2018 (UTC)[reply]
You should consider Geländewagen. Ruslik_Zero 19:13, 1 January 2018 (UTC)[reply]
Nah, i live in Berlin and we have Carsharing here. They have neither Porsche's nor Mercedes'es* but atleast i have a Samsung S7 android phone now. *(Oh, i forgot they do have Mercedes trucks :).--Kharon (talk) 04:55, 3 January 2018 (UTC)[reply]
Hardware specs are not all that people are interested in, and opinions on what is good differ. I like my iPhone 5s because it is quite small, not despite of it. If I need a big display, I have a 27" monitor. I've never suffered from RAM shortage on the phone, and despite being a computer nerd, I don't even know how much RAM my phone has - it's as with the question about horsepowers of a Rolls Royce: the answer is "enough". Typical advantages of iPhones are excellent integration with other Apple products, long product support (including software updates - the 5s was released in 2013 and still runs the latest iOS), a clean and simple product line-up, and, usually, top CPU power and top or near-top cameras for their generation. Some Android phones have some advantages over iPhones, but, as mentioned above, the ones that come close in most aspects also come close in price. --Stephan Schulz (talk) 16:26, 2 January 2018 (UTC)[reply]

January 2

Ubuntu 16.04 with Nemo

Hi. I've been having trouble getting some of my thumbnails to show on Ubuntu 16.04 and i'm out of options as to what is causing it. I edit my music files to have covers and change the icons. When i do this only 1 image icon changes (instead of all 12). I increased the thumbnail setting up to 8GB and installed Gedit to push it to maximum. Now the icons display perfect on thumb drives connected to Ubuntu or Windows, but not when copied to Ubuntu desktop. Does anyone know how i fix this? I'm using Nemo, instead of Nautilus. Thanks 81.137.240.118 (talk) 10:48, 2 January 2018 (UTC)[reply]

Database software

I'm currently using "MS Excel v2010" for databasing purpose. What else would you recommend?

Note: I've used "MS Access v2010" in the past. I have to learn it again if you direct me to it. What I recall, you can attach or link image files in it, just like "MS Excel v2010". Am I right? Plus, a tutorial is sought if you guide me to this please.

123.108.246.90 (talk) 15:34, 2 January 2018 (UTC)[reply]

We can't recommend anything without knowing what you want it for and why Excel doesn't meet your needs. I suggest you take a look at Comparison of object database management systems, Comparison of object-relational database management systems, and Comparison of relational database management systems.--Shantavira|feed me 16:10, 2 January 2018 (UTC)[reply]
You won't be able to link images (or anything else) in Access, at least not that I'm aware (and I was an Access programmer for several years). You can link to an existing Access database in an Excel spreadsheet, however, through either a Data Link, or ODBC. As to whether to use Access or Excel, if you really need a database, then I would recommend taking the time to re-learn access. You can duplicate much of what a database does in Excel using spreadsheet links and the various LOOKUP functions, but this becomes unmanageable very quickly (trust me, I've seen it). Access is pretty easy to learn, especially if you've used it before, and Microsoft has several video tutorials online (which is how I first learned to work with it).OldTimeNESter (talk) 02:46, 3 January 2018 (UTC)[reply]
https://support.office.com/en-us/article/access-video-training-a5ffb1ef-4cc4-4d79-a862-e2dda6ef38e6 (((The Quixotic Potato))) (talk) 15:00, 3 January 2018 (UTC)[reply]

January 3

Is there any operational system with linux kernel that dont package managenement/repositories?

Is there any operational system with linux kernel that dont package managenement/repositories?
I was thinking about using a linux kernel operating system, I tested some but at all you had to download from repositories, I felt like I was at some distopian world where programs need to be authorized by some entity to be able to be downloaded from.201.79.59.255 (talk) 23:08, 3 January 2018 (UTC)[reply]

On any linux system, you can install software without using the native repository system. Just download source code and compile it yourself. Is that what you're wanting to do? CodeTalker (talk) 23:16, 3 January 2018 (UTC)[reply]
I'm not sure what you mean by "authorized by some entity": Linux repositories and package managers like dpkg attempt to manage the dependencies that inevitably arise when hundreds of source contributors rely on one another's work. You can certainly do that yourself, buy why would you want to? OldTimeNESter (talk) 23:59, 3 January 2018 (UTC)[reply]
There's nothing to stop you from downloading the source tarball for any program you want. You can then use gzip -dc program-source.gz && ./configure && make && sudo make install to build and install the package. If you do this then you'll probably find that you need to install build-dependencies for your new program to build, which you'll have to download and build yourself before you re-attempt building the original program. You might have to do this recursively several times. You may also find that two different programs need different, incompatible versions of the same dependency. The whole point of package managers is to remove this hassle. LongHairedFop (talk) 19:16, 4 January 2018 (UTC)[reply]
Package repositories are for convenience and security. Every Linux package manager I'm aware of allows you to install packages from sources other than the official repository; for example, on Debian, you can download a Debian package yourself from wherever you wish and install it with apt/dpkg on your system. You can even create your own Debian packages. This may take a bit of fiddling and some computer knowledge. Linux from Scratch walks you through manually building a GNU/Linux system yourself, hence there's no package manager. However, this is intended as a learning exercise. You'll understand why if you try it, as it's quite time-consuming, and, without a package manager, updating any software has to be done by you manually, though I believe there is an "unofficial" add-on package manager for people who want to actually use LFS as an "operational" system. --47.157.122.192 (talk) 20:46, 4 January 2018 (UTC)[reply]

January 5