Looks like the first production Boxee Box must have slipped through customs alongside those Popboxes that went out yesterday , shown off in this video by Chief Product Officer Zach Klein. Other than a new fingerprint-resistant outer casing there’s not a lot new to learn after our time with prototype hardware during CES, but check the video (embedded after the break) to see what the team is so excited about before it ships in November , and find out more about that box of Wheat Thins on the table. Mmm, Wheat Thins. Gallery: Boxee Box interface and hardware Gallery: Hands-on with the Boxee Box Continue reading Boxee’s first production Box gets shown off to the world (video) Boxee’s first production Box gets shown off to the world (video) originally appeared on Engadget on Fri, 16 Jul 2010 18:57:00 EDT. Please see our terms for use of feeds . Permalink
Posts Tagged ‘time’
Kinemac 3D Real Time Animation Software for Mac
SOFTWARE FOR MAC Product DescriptionKINEMAC 3D REAL TIME ANIMATION… More >> Kinemac 3D Real Time Animation Software for Mac
Is my computer safe with ONLY malwarebytes’ anti-malware as protection?
My virus protection has expired and I do not have the time to renew it and purchase. I have downloaded malwarebytes’ anti-malware to somewhat solve the problem. Since I only have that kind of protection, is my computer fine? Im sorry for that terrible pair of words. I don’t know how to rephrase it to make it sound clearer. But hopefully you’ll understand. Thanks.
Microsoft layoffs: the axeman cometh? (update)
Nothing like rumors of corporate layoffs to throw 89,000 Microsoft employees into unproductive turmoil. This time the rumors are being mongered by the Wall Street Journal and TechFlash , both of whom have been told to expect “far smaller” cuts than the 5,000 heads lost during the global financial downturn. And while it’s easy to come to the conclusion that this round of layoffs is the result of the Kin debacle , keep in mind that Microsoft is entering a new fiscal year — the perfect time (from a budgetary perspective) to trim down and refocus on new strategies . Still, if this does affect the Kin team, then let’s just hope that the skilled engineers toiling inside the project’s pink trenches are spared when the reductions begin as soon as today, according to TechFlash . While J Allard may be gone , one executive alone doesn’t create a culture and governance model that builds multi-million dollar silos of duplication and then turns a blind eye to inter-team stonewalling . We say aim high when it comes time to swing that axe Microsoft. Update: TechFlash is now reporting that, yes, Redmond has wielded its handled blade . At this point it’s suggested to run only in the hundreds across the globe, and “the low hundreds in the Seattle region,” across several groups. Sounds indeed more like a pruning of its over 88,000-strong workforce and less like Kin fallout. Microsoft layoffs: the axeman cometh? (update) originally appeared on Engadget on Wed, 07 Jul 2010 18:40:00 EDT. Please see our terms for use of feeds . Permalink
Power Notes
The program Power Notes is a desktop notes organizer, reminder and scheduler for Windows allowing you to create electronic stickers and display them when the time is due. The program is very easy to use and has low system requirements. The scheduler stays in the tray and does not interfere with… [ Post-it-note ]
Small Business Tracker Deluxe
Small Business Tracker Deluxe is a productivity suite that allows self-employed professionals, or small businesses, to keep track of their time, expenses, contacts, appointments, schedules, invoices, passwords, products, supplies and even inventory. It can be used for any number of products or projects,… [ Inventory Management Software ]
Automatic Parallelization: Design Pattern
It is a well known fact that using more CPU cores will result in more processing power. The problem is that most algorithms have some degree of dependency. For example: X[n] = ( X[n-1] * 12) + 11 Y[n] = (Sqrt( X[n] * X[n-1] ) + 15) * 33 See the part in red: X[n-1] . This means that X[n] is dependant on X[n-1] and in other words that you cannot evaluate a given X unless the previous X was already evaluated. Normally what we do is start with the first iteration and keep going to the last. This way we can make sure that every given X[n] has the previous X[n-1] already prepared and given. This way: for (int n = 0; n < 10000; n++) { X[n] = (X[n-1] * 12) + 11 Y[n] = (Math.Sqrt( X[n] * X[n-1] ) + 15) * 33 } The code is given in C# for readability and can easily be implemented using C++ with a wrapper layer. The code above works but it is difficult to make it run in parallel. The following design pattern can help us solve this. For simplicity instead of using complex data structures for the algorithm we will use a simple structure with only a single double (floating point) as a member: public class DoubleValue { public double Value; } The code has two separate functions: One to calculate Y[n] and another to calculate X[n]: public static DoubleValue CalcX(int n) { DoubleValue retval = new DoubleValue(); if (0 == n) retval.Value = 51; else retval.Value = Math.Pow(Math.Sqrt((X[n - 1].Value * X[n - 1].Value) + 2), 1.00001); return (retval); } public static DoubleValue CalcY(int n) { DoubleValue retval = new DoubleValue(); if (0 == n) retval.Value = 0; else retval.Value = Math.Pow(Math.Sqrt((X[n].Value * X[n - 1].Value) + 12), 1.001); return (retval); } Math.Pow( ) raises A in power of B; Math.Sqrt calculate squair root We create an array of results so every X[n] and y[n] is evaluated only once. The design pattern works by consuming data on demand instead of preparing results in advance. A special kind of array is required for this purpose. The idea is that when calculating any X[n] which requires X[n-1] we start with X[n] and suspend X[n] to resolve X[n-1] if it was not already prepared. This makes the algorithm evaluate data on demand. Before I show you a simple implementation of the on-demand evaluation pattern I will start with the ‘user’ code: public static DoubleValue CalcX(int n) { DoubleValue retval = new DoubleValue(); if (0 == n) retval.Value = 51; else { for (int i = 0; i < 100; i++) { retval.Value = Math.Pow(Math.Sqrt((X[n - 1].Value * X[n - 1].Value) + 2), 1.00001); } } return (retval); } We are looping 100 times as a pseudo just so we can evaluate times, otherwise the code executes too fast to show the difference. public static DoubleValue CalcY(int n) { DoubleValue retval = new DoubleValue(); if (0 == n) retval.Value = 0; else { for (int i = 0; i < 5000; i++) { retval.Value = Math.Pow(Math.Sqrt((X[n].Value * X[n - 1].Value) + 12), 1.001); } } return (retval); } I use 5000 iterations for any Y calculation and 100 iterations for any X calculation to demonstrate an algorithm in which the dependency is a small portion of the calculation. Here is how we use the algorithm to calculate 100000 iterations: const int numberOfItems = 10000; private void button_Serial_Click(object sender, EventArgs e) { double val = 0; for (int i = 0; i < numberOfItems; i += 4) { val = Y[i].Value; } val = Y[numberOfItems - 1].Value; } The code is calling for “val = Y[numberOfItems - 1].Value;”, Y[99,999] is the last value in the array and would require all X values to evaluate first. This is after we evaluated every 4′th Y value by using i += 4. This is to show you that values which are not really required are completely skipped and thus all X values must evaluate but only a quarter of Y values are evaluated. The code above is the serial version and here is the parallel version of the code: private void button_Parallel_Click(object sender, EventArgs e) { for (int i = 0; i < numberOfItems; i += 4) { Y.Invoke(i); } Y.Complete(); double val = Y[numberOfItems - 1].Value; } The code above is calling Invoke(i) which will set this iteration as pending to a thread pool. After all required iterations are pending we call Complete() which will wait untill all values are evaluated. This time the different iterations of Y are run in parallel. According to the design pattern when Y[n] requires X[n] the code calculating Y[n] will suspend until X[n] is evaluated. Respectively X[n] will suspend until X[n-1] was evaluated. This will ensure that only required calculations are actually performed and that dependencies are respected when needed while still running free when possible. Finally we get to the demo code. The user code below mesures accurate times. Results are machine dependant. On my laptop I got 2500ms for the serial code and 1437ms for the parallel code. We don’t get a 2 times preformance gain because of iteration overhead in .Net and most importantly because this is what we expected. There are dependencies which prevent fully parallel code. This specific sample is easy to read and works on Visual Studio 2008. Great performance increase is expected when using lambda expression with Visual Studio 2010. Here is the user code: private void button_Go_Click(object sender, EventArgs e) { X = new ResultList (numberOfItems, CalcX); Y = new ResultList (numberOfItems, CalcY); DateTime start = DateTime.Now; double val = 0; for (int i = 0; i < numberOfItems; i += 10) { val = Y[i].Value; } val = Y[numberOfItems - 1].Value; label1.Text = (DateTime.Now – start).TotalMilliseconds.ToString(); for (int i = 0; i < numberOfItems; i += 1000) { listBox1.Items.Add(“Y[" + i.ToString() + "] = ” + Y[i].Value.ToString()); } X = new ResultList (numberOfItems, CalcX); Y = new ResultList (numberOfItems, CalcY); start = DateTime.Now; for (int i = 0; i < numberOfItems; i += 10) { Y.Invoke(i); } Y.Complete(); val = Y[numberOfItems - 1].Value; label1.Text = label1.Text +”n”+ (DateTime.Now – start).TotalMilliseconds.ToString(); for (int i = 0; i < numberOfItems; i += 1000) { listBox1.Items.Add(“Y[" + i.ToString() + "] = ” + Y[i].Value.ToString()); } } The array used in the code above is of type ResultList which is a special type of list object which was designed to accomodate the design pattern. The code was writen for simplicity: class ResultList where T: new() { public ResultList(int count, Calculate calculator) { Calculator = calculator; Values = new T[count]; LockObjects = new object[count]; for (int i = 0; i < LockObjects.Length; i++) { LockObjects[i] = new object(); } } public delegate T Calculate(int iteration); public Calculate Calculator = null; protected T[] Values = null; protected object[] LockObjects = null; protected List PendingOps = new List (); public T this[int n] { get { return (Execute(n)); } } protected T Execute(int n) { T retval = default(T); Monitor.Enter(LockObjects[n]); if (null == Values[n]) Values[n] = Calculator(n); retval = Values[n]; Monitor.Exit(LockObjects[n]); return (retval); } public T Invoke(int n) { T retval = default(T); Monitor.Enter(LockObjects[n]); retval = Values[n]; if (null == retval) { PendingOps.Add(Calculator.BeginInvoke(n, null, n)); } return (retval); } public void Complete() { for (int i = 0; i < PendingOps.Count; i++) { int n = ((int)PendingOps[i].AsyncState); Values[n] = Calculator.EndInvoke(PendingOps[i]); Monitor.Exit(LockObjects[n]); } PendingOps.Clear(); } } Finally here is the part which is algorithm specific: const int numberOfItems = 10000; public class DoubleValue { public double Value; } static ResultList X; static ResultList Y; public static DoubleValue CalcX(int n) { DoubleValue retval = new DoubleValue(); if (0 == n) retval.Value = 51; else { for (int i = 0; i < 100; i++) { retval.Value = Math.Pow(Math.Sqrt((X[n - 1].Value * X[n - 1].Value) + 2), 1.00001); } } return (retval); } public static DoubleValue CalcY(int n) { DoubleValue retval = new DoubleValue(); if (0 == n) retval.Value = 0; else { for (int i = 0; i < 5000; i++) { retval.Value = Math.Pow(Math.Sqrt((X[n].Value * X[n - 1].Value) + 12), 1.001); } } return (retval); } private void Form1_Load(object sender, EventArgs e) { X = new ResultList (numberOfItems, CalcX); Y = new ResultList (numberOfItems, CalcY); } I would like to hear your opinion about this. Do you find this method useful for your application? Where in the application? Pros and cons are welcome as well. Generally speaking I see this type of design patterns as the mid-range future of parallel computing and hopefully there are more to come. I am referring to the concept here as a design pattern when it is actually a pattern class which should have specific patterns for many particular cases as suitable for a real design pattern.
Hourdoc.com – Tracking Time & Attendance Using Finger Print Attendance Software
Businesses are recognizing that without fingerprint attendance software buddy punching and time card fraud contribute significantly to annual payroll costs. Fingerprint attendance software prevents employees from fraudulently recording hours for other employees. Fingerprint attendance software requires employees be present to track hours. Companies overlooking fingerprint attendance software principle focus on less expensive alternatives. The cost of a clock represents a fraction of the dollars saved versus a system not utilizing fingerprint attendance software. HR personnel are now educating themselves on fingerprint attendance software and types of fingerprint attendance software. Hourdoc.com’s Web Based Time & Attendance system with fingerprint attendance software manages fingerprint attendance software time effectively and as a bonus, payroll preparation time will be greatly reduced with their fingerprint attendance software solution. Hourdoc.com’s fingerprint attendance software solution can be used for fingerprint attendance software time collection data for single or multiple jobs and integrate the fingerprint attendance software data to a payroll software program. Fingerprint attendance software hours can be collected via any PC or MAC, or an external fingerprint attendance software time collections device configured to collect fingerprint attendance software hours. A fingerprint attendance software solution is not only a quick and easy way to handle fingerprint attendance software but also manages FMLA. Fingerprint attendance software solutions manage the requesting process. Fingerprint attendance software solutions allow management of the approval process. Fingerprint attendance software solutions assist in managing FMLA approvals. Fingerprint attendance software solutions provide a reporting tool to monitor employee FMLA usage. Fingerprint attendance software solutions facilitate the integration between fingerprint attendance software, FMLA usage and payroll reporting via the Hourdoc fingerprint attendance software application. A fingerprint attendance software solution is not only a quick and easy way to handle fingerprint attendance software, but also manages Vacation Day Off Requests via fingerprint attendance software. Fingerprint attendance software solutions manage the requesting process. Fingerprint attendance software solutions allow management of the approval process. Fingerprint attendance software solutions assist in managing Vacation Day Off approvals. Fingerprint attendance software solutions provide a reporting tool to monitor employee Vacation Day Off usage. Fingerprint attendance software solutions facilitate the integration between fingerprint attendance software, Vacation Day Off usage and payroll reporting via the Hourdoc fingerprint attendance software application. A fingerprint attendance software solution is not only a quick and easy way to handle fingerprint attendance software, but also manages Sick Day Off Requests via fingerprint attendance software. Fingerprint attendance software solutions manage the requesting process. Fingerprint attendance software solutions allow management of the approval process. Fingerprint attendance software solutions assist in managing Sick Day Off approvals. Fingerprint attendance software solutions provide a reporting tool to monitor employee Sick Day Off usage. Fingerprint attendance software solutions facilitate the integration between fingerprint attendance software, Sick Day Off usage and payroll reporting via the Hourdoc fingerprint attendance software application. A Fingerprint attendance software solution is not only a quick and easy way to handle fingerprint attendance software, but also manages Paid Time Off Requests via fingerprint attendance software. Fingerprint attendance software solutions manage the requesting process. Fingerprint attendance software solutions allow management of the approval process. Fingerprint attendance software solutions assist in managing Paid Time Off approvals. Fingerprint attendance software solutions provide a reporting tool to monitor employee Paid Time Off usage. Fingerprint attendance software solutions facilitate the integration between fingerprint attendance software, Paid Time Off usage and payroll reporting via the Hourdoc fingerprint attendance software application. A fingerprint attendance software solutions is not only a quick and easy way to handle fingerprint attendance software, but also manages Floating Holiday Time Off Requests via Fingerprint attendance software . Fingerprint attendance software solutions manage the requesting process. Fingerprint attendance software solutions allow management of the approval process. Fingerprint attendance software solutions assist in Floating Holiday Time Off approvals. Fingerprint attendance software solutions provide a reporting tool to monitor Floating Holiday Time Off usage. Fingerprint attendance software solutions facilitate the integration between fingerprint attendance software, Floating Holiday Time Off usage and payroll reporting via the Hourdoc fingerprint attendance software application.



Posted in
Tags: