Last fall, work on my coding side projects came to a head: I wasn’t making adequate progress and I couldn’t find a way to get more done without sacrificing my ability to do effective work at Khan Academy.
There were a few major problems with how I was working on my side projects. I was primarily working on them during the weekends and sometimes in the evenings during the week. This is a strategy that does not work well for me, as it turns out. I was burdened with an incredible amount of stress to try and complete as much high quality work as possible during the weekend (and if I was unable to it felt like a failure). This was a problem as there’s no guarantee that every weekend will be free – nor that I’ll want to program all day for two days (removing any chance of relaxation or doing anything fun).
There’s also the issue that a week between working on some code is a long time, it’s very easy to forget what you were working on or what you left off on (even if you keep notes). Not to mention if you miss a weekend you end up with a two week gap as a result. That massive multi-week context switch can be deadly (I’ve had many side projects die due to attention starvation like that).
Inspired by the incredible work that Jennifer Dewalt completed last year, in which she taught herself programming by building 180 web sites in 180 days, I felt compelled to try a similar tactic: working on my side projects every single day.
I decided to set a couple rules for myself:
- I must write code every day. I can write docs, or blog posts, or other things but it must be in addition to the code that I write.
- It must be useful code. No tweaking indentation, no code re-formatting, and if at all possible no refactoring. (All these things are permitted, but not as the exclusive work of the day.)
- All code must be written before midnight.
- The code must be Open Source and up on Github.
Some of these rules were arbitrary. The code doesn’t technically need to be written before midnight of the day of but I wanted to avoid staying up too late writing sloppy code. Neither does the code have to be Open Source or up on Github. This just forced me to be more mindful of the code that I was writing (thinking about reusability and deciding to create modules earlier in the process).
Thus far I’ve been very successful, I’m nearing 20 weeks of consecutive work. I wanted to write about it as it’s completely changed how I code and has had a substantial impact upon my life and psyche.
With this in mind a number of interesting things happened as a result of this change in habit:
Minimum viable code. I was forced to write code for no less than 30 minutes a day. (It’s really hard to write meaningful code in less time, especially after remembering where you left off the day before.) Some week days I work a little bit more (usually no more than an hour) and on weekends I’m sometimes able to work a full day.
Code as habit. It’s important to note that that I don’t particularly care about the outward perception of the above Github chart. I think that’s the most important take away from this experiment: this is about a change that you’re making in your life for yourself not a change that you’re making to satisfy someone else’s perception of your work. The same goes for any form of dieting or exercise: if you don’t care about improving yourself then you’ll never actually succeed.
Battling anxiety. Prior to starting this experiment I would frequently feel a high level of anxiety over not having completed “enough” work or made “enough” progress (both of which are relatively unquantifiable as my side projects had no specific deadlines). I realized that the feeling of making progress is just as important as making actual progress. This was an eye-opener. Once I started to make consistent progress every day the anxiety started to melt away. I felt at peace with the amount of work that I was getting done and I no longer had the over-bearing desire to frantically get any work done.
Weekends. Getting work done on weekends use to be absolutely critical towards making forward momentum (as they were, typically, the only time in which I got significant side project coding done). That’s not so much the case now – and that’s a good thing. Building up a weeks-worth of expectations about what I should accomplish during the weekend only ended up leaving me disappointed. I was rarely able to complete all the work that I wanted and it forced me to reject other weekend activities that I enjoyed (eating dim sum, visiting museums, going to the park, spending time with my partner, etc.) in favor of getting more work done. I strongly feel that while side projects are really important they should not be to the exclusion of life in general.
Background processing. An interesting side effect of writing side project code every day is that your current task is frequently running in the back of your mind. Thus when I go for a walk, or take a shower, or any of the other non-brain-using activities I participate in, I’m thinking about what I’m going to be coding later and finding a good way to solve that problem. This did not happen when I was working on the code once a week, or every other week. Instead that time was consumed thinking about some other task or, usually, replaced with anxiety over not getting any side project work done.
Context switch. There’s always going to be a context switch cost when resuming work on a side project. Unfortunately it’s extremely hard to resume thinking about a project after an entire week of working on another task. Daily work has been quite helpful in this regard as the time period between work is much shorter, making it easier to remember what I was working on.
Work balance. One of the most important aspects of this change was in simply learning how to better balance work/life/side project. Knowing that I was going to have to work on the project every single day I had to get better at balancing my time. If I was scheduled to go out in the evening, and not get back until late, then I would need to work on my side project early in the day, before starting my main Khan Academy work. Additionally if I hadn’t finished my work yet, and I was out late, then I’d hurry back home to finish it up (instead of missing a day). I should note that I’ve been finding that I have less time to spend on hobbies (such as woodblock printing) but that’s a reasonable tradeoff that I’ll need to live with.
Outward perception. This has all had the added benefit of communicating this new habit externally. My partner understands that I have to finish this work every day, and thus activities sometimes have to be scheduled around it. It’s of considerable comfort to be able to say “Yes, we can go out/watch a movie/etc. but I have to get my coding in later” and have that be understood and taken into consideration.
How much code was written? I have a hard time believing how much code I’ve written over the past few months. I created a couple new web sites, re-wrote some frameworks, and created a ton of new node modules. I’ve written so much I sometimes forget the things I’ve made – work from even a few weeks prior seem like a distant memory. I’m extremely pleased with the amount of work that I’ve gotten done.
I consider this change in habit to be a massive success and hope to continue it for as long as I can. In the meantime I’ll do all that I can to recommend this tactic to others who wish to get substantial side project work done. Let me know if this technique does, or doesn’t, work for you – I’m very interested in hearing additional anecdotes!
John Mark Howell (April 10, 2014 at 1:41 pm)
This is one of the best posts I have seen in a long time!
Philip Guo (April 10, 2014 at 1:45 pm)
Great! Like a form of Seinfeld’s Don’t Break The Chain for hobbies:
http://lifehacker.com/5886128/how-seinfelds-productivity-secret-fixed-my-procrastination-problem
Rob Brambley (April 10, 2014 at 2:12 pm)
I spent the last few months doing this and I could not agree more with what you’ve written. I had a 161 day streak, and I believe it had a really positive effect on my life for many of the same reasons you mentioned – I was better at managing my time, I had less anxiety, and I infrequently had trouble picking up where I left off. Last week, I got back from a ten day trip, and it has been very, very hard to achieve the focus I had during this streak. This is actually kind of depressing, and leaves me wishing I had set aside more time during my trip to do a little bit of coding each day. Before taking some days off from coding, I did not feel exhausted or burnt out, but as friends suggested, it seemed like it would be a good idea to take a break, just for the sake of giving my mind a rest and making sure I wasn’t overworking myself without realizing it.
In retrospect, I do not regret taking the time off – I knew it was inevitable that I’d need to go some time without coding. But, the next time I do go on a trip or find myself without access to my computer for a while, I think I am going to plan ahead a little better, and think of ways to keep the projects/code/ideas fresh in my head so that it’s not so hard to pick up where I left off. Perhaps this just means writing ideas down on paper on a daily basis, or asking people around me what they think of the latest UI in my app – stuff like this will hopefully help to keep it all fresh in my head.
Adnan (April 10, 2014 at 2:25 pm)
I am sure you think of project ideas way ahead than you open IDE
Doggy (April 10, 2014 at 2:37 pm)
Dogfood projects are the best for this.
For something you yourself use every day, you always know what you need to work on next: it’s whatever bugged you about it the most yesterday. You also get immediate feedback on what you wrote yesterday: you get to use it tomorrow. It’s a daily feedback loop both of incentive, and of productivity.
I find continuous improvement is difficult for things that I don’t use myself. It means to figure out what to work on, I need to guess, or gather data from users, or listen to a product manager. It means I don’t get to see yesterday’s improvements, except indirectly. It means yesterday’s work doesn’t help make today’s work any easier.
Virendra Rajput (April 10, 2014 at 2:46 pm)
Hi John,
this is something I’ve been trying out recently. But I haven’t been able to keep up with the pace. Since, the anxiety of missing one day, kills me. It just breaks the chain. I’ve been trying hard to get time off’s on evenings, but it’s not always possible.
I might try the early morning coding. Since, its lot easier to start coding with a fresh mind.
Thanks a lot for this post. It will definitely gives me helpful pointers. :-)
Akshay (April 10, 2014 at 2:51 pm)
Very inspiring John. Nice points on how to keep the streak continuing
Max (April 10, 2014 at 3:06 pm)
Very, very, very inspiring. I’m in the same situation as yours before your started your journey.
I’m going to try this experience starting tomorrow.
Thank you.
Antonin Januska (April 10, 2014 at 3:23 pm)
I’m actually starting off a similar project, came up with it last week: the 30 days of Git Commits; however, I like your 20 weeks better.
The main issue I have with structuring your life this way is the pure amount of time you’re spending on coding. I work as a programmer in my day job, that’s 7-8 hours of solid coding a day (with breaks of course).
Adding another 30 minutes on top of that should be fine but never at the cost of another hobby. At least to me, because then my “side projects” begin to feel like work, and I do enough of that already ;)
What I started doing last year (or maybe the year prior to that) is a concept of “monthly goals (http://renewlifebalance.com/?/monthly-goals/ <- wrote about it here). Which is basically the idea of picking a subject, whatever hobby, or work, or whatever, and focusing on just that for a month. And the focus greatly helps alleviate the ADHD-type behavior where you have time and either mis-spend it or can't figure out what to focus on.
It's the same concept as writers doing NaNoWriMo, or coders doing a 30-day git commit sprint.
I hope you get back to the woodblock printing and enjoy that for a change! :)
Skyul (April 10, 2014 at 3:24 pm)
Inspiring indeed, but you should mention that even if you write daily code, never forget about your personal life, including friends and family.
After all you are just chasing your dream, but don’t forget about others.
João Netto (April 10, 2014 at 3:27 pm)
I’m doing almost the same except by the fact that i’m not FORCING to get something done every single day.
Almost ever, my weekends are totally designed to I have some fun and if i start to write something i bought me some prize.
Nice post!
Fernando Briano (April 10, 2014 at 3:29 pm)
I’ve been trying this same thing since March 1st!
https://github.com/picandocodigo
I got a 35 days streak, took two days off, and now continue with a new streak. But I’ve seen all the advantages you mention on this blog post in my daily routine. Mostly background processing, since I’m always thinking of new ideas to implement both as new projects or as improvements to my current projects.
I still work on refactors, docs and similar stuff some of the days. I also love midnight coding, though sometimes it extends to 4am coding and I am not so happy the other day when I check out the code I wrote at 4am :P
Those are the parts I need to improve the most, but I fully agree with the post and the advantages of writing code every day.
Paulo Eduardo Neves (April 10, 2014 at 3:49 pm)
I’ll follow your idea. I loved the commit chart. Does anybody here knows if BitBucket also has a chart like this one?
Angel "Java" Lopez (April 10, 2014 at 3:59 pm)
Good!
Always Be Coding ;-)
http://ajlopez.wordpress.com/2014/04/05/always-be-coding/
Brad L (April 10, 2014 at 4:07 pm)
Great Post. I am struggling with this exact problem. The anxiety is killing me. I am going to put these principles in place immediately!
Paul (April 10, 2014 at 4:08 pm)
On average, how long do you spend everyday on your side-coding? Do you try to set a reasonable minimum and maximum?
Doggy (April 10, 2014 at 5:04 pm)
Antonin: Where do you work? I want to work there! I’ve never had any programming job where even 50% of my day was spent writing software.
Tushar S (April 10, 2014 at 5:35 pm)
I think this is called the Jeremy Seinfeld ‘Chains’ method – as in don’t break the chain!
Although github already shows us the chain, some people could use https://chains.cc/
to track various activities.
The main problem for me has been to start and stick with this for a few days at least, and then the habit establishes itself. It’s the first week that’s crucial.
Chewxy (April 10, 2014 at 5:43 pm)
Hey John,
So how did you get into the habit of it? Did you just sit down and say “I’m not leaving this desk until I have some code done”?
Patrick Ford (April 10, 2014 at 6:07 pm)
I recently started the same discipline. I spent a good part of my career writing code then worked my way up to executive management and stopped. After several years as Director of this, or VP of that, my skills had eroded. Late last year I decided to take a sabbatical and get back into the game by applying to Hack Reactor in SF. It was an intense period of two months of pre-course work (18 Code School classes and a bunch of coding assignments), followed by three months of intense work on site where we went 11+ hours a day for 6 days a week. One of the disciplines there is to work on a short “toy problem” every morning for 30-60 minutes. Although I finished the program recently I am keeping up that practice as well as working on my real project, a new startup for social video. I’ll never stop coding again!
teoman (April 10, 2014 at 6:37 pm)
Thanks so much, great blog post!
Asim Suvedi (April 10, 2014 at 6:59 pm)
WOW ! That’s my story (the problem part). Thank you for writing.
I plan to do so much on on weekends and I get depressed for not completing the TODOs.
I think it’s important not to Plan too much and do less at a time. With information overload, we just forget we are humans not computers and try to do a lot of things which backfires instead.
TuxLyn (April 10, 2014 at 6:59 pm)
Consistency is very important, I’ve been coding for many years now most of the code Is private. But I’ve always tried coding daily, this makes you think about code and fix bugs even in your dream ^_^ Good post thank you.
lovejoy (April 10, 2014 at 7:26 pm)
My coworker has a streak over a month now, and I may join. Keeping count is itself a turn-off for me, so I’ll need the mindset of just counting to two: yesterday and today. This suggestion could help improve my favorite side work, by not cramming 7 hours in the dark between Saturday and Sunday.
P.S. I love Steven Resig’s illustrations, but it seems his server’s doing its best just to load the thumbnails; larger versions were inaccessible.
Shane (April 10, 2014 at 7:44 pm)
This resounded with me. I just came to many of the same conclusions you touched on. After years of continually starting and never completing side projects I came to the slow realization that something needed to change. I also forced myself to code everyday (weekends included) and developed the habit of doing at least a couple hours first thing in the morning. Thanks for the post and reaffirming the benefits.
aliencoder (April 10, 2014 at 8:01 pm)
Very nice article, I will surely give it a try.
Adam Wright (April 10, 2014 at 10:01 pm)
Well the first three paragraphs describe my life for the last odd year and a half perfectly, so sure. I shall also give this a try.
Glenn (April 10, 2014 at 10:16 pm)
“Do a little bit every day and then you’ll be done.”
That’s a saying I keep telling myself as I try and do what your article suggests. I also like to write about my projects in blog posts in a coder-centric ‘dear diary’ kind of way. It not only allows me to remain enthused about what I’m doing and provides something to show to friends but also journalises how much has been accomplished. Knowing that the time hasn’t been wasted is important for self-esteem.
Jhonatn (April 10, 2014 at 11:14 pm)
Hey!..
I’m actually testing this strategy for competitive programming. Was very difficult to train for the ACM-ICPC when I was working as developer, but now that I only study in the University I solve at least a problem a day for maintain my streak in my Github in these are the results in some online judges for competitive competitions:
http://community.topcoder.com/tc?module=MemberProfile&cr=22778322
http://codeforces.com/profile/jhtan
It works!..
Richard Bakare (April 10, 2014 at 11:14 pm)
Very good advice.
Alex (April 10, 2014 at 11:33 pm)
John, you made my day!
Frederic Branczyk (April 11, 2014 at 12:19 am)
I have been doing the same since last year http://github.com/flower-pot the only time I sometimes make an exception is when im on vacation.
Randall (April 11, 2014 at 1:13 am)
I had a pretty good run starting my first project in Go, where the rule was mostly “just do *something* now, no matter how ridiculously small.” And “something” meant bits of functionality or improvements (like cleaning up pain points in the code) I could test; plans are cheap.
I found small, running pieces add up to actual software faster than you think. The wrong kind of sitting and thinking slows you down more than you think. Actually making stuff is motivating and maintains momentum. The bit about problems percolating in the background as you work is totally true.
I also found the other thing folks in the comments mention, that it just takes an incredible number of hours. I mostly had to forget about it when I had to focus on real life for a bit. I’m pretty skeptical about the idea that seems to be widespread that coders *should* have side projects to show, that they’re somehow necessary for a coder to be whole rather than just a cool bonus thing that life sometimes permits, like, say, exercising 3x/week or baking really good bread.
Finally, with a better idea of the investment, I care a bit more about what I choose to work on. I need to either be *really* confident I’d find just the doing itself worthwhile (e.g., using fun CS or expanding my limits somehow) or I have a rational hope that my work could actually help the world in some really miniscule way.
Also, just observing the difference in doing a side project now vs. soon after college makes me aware that time management just works differently with friends and social obligations.
I feel like there ought to be some way to swirl this around into a satisfying synthesis involving building things in thousands of tiny pieces around the rest of life or something. But, not right now.
Emil (April 11, 2014 at 1:24 am)
Reading this almost seemed that I wrote it. Exactly the same feelings of guilt over not working on side projects enough, delaying work for the weekends etc. I too ended up commiting to write code every day, but I also set myself specific hours to do so: 5am to 8-9am. This meant that I should wake up at 4am each day, go to bed early etc., but has the added benefit that the world is a quiet place at night/early morning and I find it very easy to get into “the flow”, no distractions.
Very nice read, it’s interesting to see how similar lives of programmers might be :).
Alan Moore (April 11, 2014 at 1:52 am)
Wouldn’t it be nice if you could make your “side project” (or hobby project as I call them) your day job?
That is what I’m working on… I’ll let you know how it goes.
I agree with the coding every day thing. I used to work weekends mainly because I let my day job take up 10-14 hours every day. So I worked on the weekends. I even took a whole week of PTO just so I could make “a ton of progress” on my project.
It turns out that I make more progress on a daily basis than I did taking PTO. Go figure – I think my mind needs to mull things over during the day. Faced with too much time I felt guilty like I was wasting my PTO and didn’t code as much.
My worst daily bad habit is doing “research” into my domain… a miss a lot of coding in the name of research. I need to stop looking at what others are doing (similar to my project) and just get on with what I’m working on!
Now I’m looking for a co-founder to help keep the project moving along. I think it helps when you have someone else to work with – but it needs to be someone who is onboard with your specific project/goals… not always easy to find.
Good luck with your projects!
François de Campredon (April 11, 2014 at 1:59 am)
Hello,
Reading your post was fun, especially since I recognize myself a lot in what you wrote.
Few months ago I worked on my side projects only the weekend, not making substantial progress, giving my girlfriend hard times when she planned something else, always ending up disappointed because I didn’t achieved everything that I had planned. Today I work every morning from 7 am to 9 am before going to my job and only 1 day by weekend, I feel that is a lot more efficient and more of all when I’m going to bed my mind is freer, and I can’t wait to wake up to work on my own stuff again!
François de Campredon
Wes (April 11, 2014 at 3:47 am)
Try writing a failing test to indicate where you left off and where to start tomorrow. I have found this a great way to reduce the cost of the context switch.
Tom Readings (April 11, 2014 at 3:55 am)
I found this post extremely reassuring. Also struggling with motivation time to take on and maintain side projects. It does seem that you have hit on a method that works for you. I hope you are able to continue with this level of self discipline without it becoming a chore.
In an ideal world I would be working on the things that interest me within the working week only and dropping all computer based work evenings and weekends, but I suspect that if the code projects I was working on the day were self motivated or more interesting I would still be at my computer late at night…
Michael (April 11, 2014 at 4:10 am)
As an aside: I wrote a book in 4 months by following the same principle.
If someone had said that to me on day 1 that I would actually write 100,000 words I would have seemed unimaginable, but it adds up.
vs4vijay (April 11, 2014 at 5:07 am)
Very Inspiring
Mikael (April 11, 2014 at 5:55 am)
This is one of the best posts I have seen in a long time!
Matt (April 11, 2014 at 7:41 am)
I am always busy at weekends so its hard to get solid hours coding done so I have no choice in doing it throughout the week, but, whilst in my case it is compulsory if I want to learn I’ve always thought it the best way to do. Glad to know more experienced guys also see the benefit.
Ed Aymami (April 11, 2014 at 9:17 am)
I am now 65 years old and have been working on an application I first started working on in 1978 before most of you guys were born. I am now in partnership with one of my oldest customers and work for his business about 45 hours a week, modifying and supporting my app for his company and also supporting our other clients.
I was immediately struck by how accurately you described the problem. I am currently attempting to rewrite the application (over 350,000 lines of code), moving it from VB6 to Visual Studio 2010 (VB of course). I tried previously with VS2002, and VS2005. But before I ever got finished, Microsoft would come out with a new version of Visual studio.
It is encouraging to know that other programmers/developers/ (it really is 98% coding) are going through the same thing.
My problems are having to exercise regularly due to heart problems from so many years of sitting on my chair and coding, and addiction to NCIS, BigBang, and Elementary, and a wife that I love dearly who wants to see me occasionally.
I intend to start trying your solution tonight. I will follow up in a few weeks and let you know. Great, great article/blog/info!
ghadeer (April 11, 2014 at 9:20 am)
Great information :) But waht about a full time Mom like me ? What I do is I think about coding whle I’m washing dishes or watching TV with my kids or take tem to activities and also while we do grocery shopping :))
Anam (April 11, 2014 at 9:53 am)
Thanks for sharing. Definitely going to try this.
Jayin Ton (April 11, 2014 at 10:06 am)
lol!
it’s so inspiring!
I found we have the same action,trying to code everyday !
here’s my github:https://github.com/Jayin
Doug C (April 11, 2014 at 10:09 am)
You are very inspiring, but how do you manage to write code every day? Don’t you ever find that you need to spend “coding time” on research or planning and thus not getting any code written?
Sometimes when I’m working on a side project, I find I have to solve a particularly hard problem. Instead of writing code, I wind up drawing diagrams, outlining possible approaches, or searching to see if/how others have solved similar problems. Other times, I find I have to get some library or framework that looks promising, setup a build environment, build it and test it. It can take up the whole hour I’ve set aside in the early morning for my side projects.
zakariae (April 11, 2014 at 11:15 am)
helloo , abd thanks for this awesome post.
can you explain clearly about the projects you have done with this method.
ARC (April 11, 2014 at 12:12 pm)
This is awesome! I don’t write code, and I still find it super inspiring as I’ve got several creative side projects/business going from my regular day jobs of mama and soon, software project manager (again). I also tend to save work for late at night when I’m exhausted or think I’ll get to it on the weekend, but it’s not like I EVER have a whole day to luxuriate in my side projects.
Thanks for the inspiration!
parinay (April 11, 2014 at 1:27 pm)
Thanks so much mate !
I am struggling right now, having hard time between my job and my side projects and this blog from you came up as oxygen for me.
Incredible way out!
I am going to plan around what you have shared.
Indebted.
Jonathan Barronville (April 11, 2014 at 1:36 pm)
Thanks so much for writing this article, John! I’m definitely going to work on a framework like this for myself.
- Jonathan
Bernd Eckenfels (April 11, 2014 at 2:19 pm)
@Paolol, if they dont, it would be a good first project :)
Soki Briggs (April 11, 2014 at 2:23 pm)
While learning HTML and CSS from codecademy, this method you described worked because they counted streaks, so i had to complete an exercise everyday.
Not going too well with javascript probably because i’m using Offline Videos with no one counting my streak.
Thanks for this John – Beginners like me need all the motivation we can get and challenge.
Alex Cheng (April 11, 2014 at 3:42 pm)
I’m trying to follow this practice these days. It’s very good. Sometimes even though I don’t have enough time to code, writing blog posts is also a very good way to summarise what you have learnt.
 I’ve had such a hard time with this over the past year or so, and finally started on a similar path. I’m definitely going to implement some of your ideas going forward. Also, I’d like to add a link to your post in a recent article I wrote around this topic (http://hacksnsnacks.com/hacks/theres-always-room-for-jell-o/). Thanks, and excellent illustrations!
Karolski (April 11, 2014 at 8:56 pm)
You are crazy.

When you are doing projects of any complexity then you need to slow down. From time to time you need to take a break to let your subconsciousness take stock and sort-out the overall picture. Only then you you can have a break-though idea. Working constantly at the grinding wheel will never get you there.
What about your paid job? Is your employer happy with the QUALITY of your work?
There was a time in my life when I would wake-up, OK I need to get-up. Just-a-second, what commands do we have to put the left foot on the ground?…
Never again!
Karl
Thuy (April 11, 2014 at 11:16 pm)
Good advises, would try and tell you back my results after a specified amount of time. I’ve been endured the same feeling when I couldn’t get some of my side projects done as I hoped.
Allen (April 12, 2014 at 10:35 am)
I suffer from the same anxiety too – a side project (a somewhat popular WordPress plugin) has a never-ending stream of feature requests coming in.
But after watching my health deteriorate from too much sitting, it is just not worth it any more to me. Living longer and healthier and spending time with the people I care about is far more important than the side projects.
So, I’m learning to live with the angst of not being able to solve everyone’s problems and taking care of myself more. And I find each day I get those 10,000 or more steps on the FitBit, the less angst I feel.
YMMV
Antonin Januska (April 12, 2014 at 4:11 pm)
Doggy,
I work at a company called CMN (http://cmn.com). And I do get a ton of code done on a daily basis.
We have a wide variety of projects so it’s actually easy to do a ton of work without feeling burnt out. We have prototypical style work, R&D stuff, development with cutting edge work, improvements to legacy system etc. etc. Plus, you always see the immediate effect of your code, not because of continuous deployments, but usually because of the magnitude of worth your code brings to the table. Anyways, at the end of the day, I may spend another 10-20 minutes working on my own stuff but my coder-self feels like I’m good for the day as it is since I get to do cutting-edge tech dev as well as legacy code dev.
Paul (April 12, 2014 at 9:19 pm)
Great blog post. I think your overall strategy of incremental progress is very effective, and one that I’ve started to follow as well. The one thing you highlight which I think is key is battling anxiety – by chipping away at projects you have less anxiety about getting “enough” work done.
Lillie (April 13, 2014 at 4:29 am)
This is a very good article. I can relate to the need and anxiety of developing good work habits. I am not sure of what your personal code writing is, but it is good to know I am not alone in the challenges and effects of bad work habits. Knowing that you have succeeded is a great incentive for believing in ones ability to develop and maintain productive habits too. Thanks for sharing your experience.
Chris F (April 13, 2014 at 8:34 am)
Great write up! Very inspiring to me as someone who primarily does projecf management and hasn’t been hands on with development for years.
Childrens books fan (April 13, 2014 at 2:56 pm)
I’ve launched a number of project, with varying degrees of success.
I’ve found like u the key is consistent effort, even 30mins a day can achieve great results
Adnan (April 14, 2014 at 12:45 am)
Giving an hour or even 30 mins every day will not screw your health. Come on guys!
Suumit (April 14, 2014 at 1:00 am)
Hello John,
Since I have joined company, I feel like I am not getting time to work on my own projects due to lack of time. What max I could do is couple of hours per week, but its not at all sufficient. I’ll surely try to code everyday and make it live on GitHub.
Thanks for such an awesome article. :)
Bryan Fleming (April 14, 2014 at 8:30 pm)
I kinda agree with – you can really only do one project at a time. It has to be serial. Otherwise you get too stressed out.
- Bryan


Welcome! My name is Catie Kitrinos and I am a second year MA/PhD student in Dr. Jason Kamilar’s Comparative Primatology Lab at the University of Massachusetts Amherst. For my Master’s Thesis, I am investigating the ways in which the diversity and composition of hair-associated microbial communities differ across primate body regions, genders, species, and institutions. I am hoping to do my dissertation work on microbial transmission across species (bats, baboons, fruits, and humans) at Kasanka National Park in Zambia.


cupsaddsmb
Section: Apple Inc. (8)Updated: CUPS
Index Return to Main Contents
NAME
cupsaddsmb - export printers to samba for windows clientsSYNOPSIS
cupsaddsmb [ -H samba-server ] [ -U samba-user[%samba-password] ] [ -h cups-server[:port] ] [ -v ] -acupsaddsmb [ -H samba-server ] [ -U samba-user[%samba-password] ] [ -h cups-server[:port] ] [ -v ] printer [ ... printer ]
DESCRIPTION
cupsaddsmb exports printers to the SAMBA software (version 2.2.0 or higher) for use with Windows clients. Depending on the SAMBA configuration, you may need to provide a password to export the printers. This program requires the Windows printer driver files described below.OPTIONS
cupsaddsmb supports the following options:- -H samba-server
-
Specifies the SAMBA server which defaults to the CUPS server. - -U samba-user[%samba-password]
-
Specifies the SAMBA print admin username which defaults to your current username. If the username contains a percent (%) character, then the text following the percent is treated as the SAMBA password to use. - -a
-
Exports all known printers. Otherwise only the named printers are exported. - -h cups-server[:port]
-
Specifies a different CUPS server to use. - -v
-
Specifies that verbose information should be shown. This is useful for debugging SAMBA configuration problems.
SAMBA CONFIGURATION
cupsaddsmb uses the new RPC-based printing support in SAMBA 2.2.x to provide printer drivers and PPD files to Windows client machines. In order to use this functionality, you must first configure the SAMBA smb.conf(5) file to support printing through CUPS and provide a printer driver download share, as follows:[global] load printers = yes printing = cups printcap name = cups [printers] comment = All Printers path = /var/spool/samba browseable = no public = yes guest ok = yes writable = no printable = yes [print$] comment = Printer Drivers path = /etc/samba/drivers browseable = yes guest ok = no read only = yes write list = root
This configuration assumes a FHS-compliant installation of SAMBA; adjust the [printers] and [print$] share paths accordingly on your system as needed.
MICROSOFT POSTSCRIPT DRIVERS FOR WINDOWS
The base driver for Windows 2000 and higher is the Microsoft PostScript driver, which is available on any system running Windows 2000 or higher in the %WINDIR%\SYSTEM32\SPOOL\DRIVERS\W32X86\3 folder for 32-bit drivers and %WINDIR%\SYSTEM32\SPOOL\DRIVERS\X64\3 folder for 64-bit drivers.The CUPS printer driver is preferred over the Microsoft driver since it supports the page-label, job-billing, and job-hold-until options fully on all printers. However, currently only Windows 2000 and higher is supported by the Microsoft driver, so you will also need to get the Adobe driver to support Windows 95, 98, and Me clients. The Adobe and Microsoft drivers for Windows 2000 are identical.
Once you have extracted the driver files, copy the 32-bit drivers to the /usr/share/cups/drivers directory and the 64-bit drivers to the /usr/share/cups/drivers/x64 directory exactly as named below:
[Windows 2000 and higher] ps5ui.dll pscript.hlp pscript.ntf pscript5.dll
Note: Unlike Windows, case is significant - make sure that you use the lowercase filenames shown above, otherwise cupsaddsmb will fail to export the drivers.
CUPS POSTSCRIPT DRIVERS FOR WINDOWS
cupsaddsmb can use the CUPS v6 PostScript printer driver for Windows, which is available for download from the CUPS web site.The CUPS printer driver is preferred over the Adobe and Microsoft drivers since it supports the page-label, job-billing, and job-hold-until options fully on all printers. However, currently only Windows 2000 and higher is supported by the CUPS driver, so you will also need to get the Adobe driver to support Windows 95, 98, and Me clients.
Once you have extracted the driver files, copy the 32-bit drivers to the /usr/share/cups/drivers directory and the 64-bit drivers to the /usr/share/cups/drivers/x64 directory exactly as named below:
[Windows 2000 and higher] cups6.inf (from www.cups.org) cups6.ini (from www.cups.org) cupsps6.dll (from www.cups.org) cupsui6.dll (from www.cups.org) ps5ui.dll (from your Windows system) pscript.hlp (from your Windows system) pscript.ntf (from your Windows system) pscript5.dll (from your Windows system)
Note: Unlike Windows, case is significant - make sure that you use the lowercase filenames shown above, otherwise cupsaddsmb will fail to export the drivers.
ADOBE POSTSCRIPT DRIVERS FOR WINDOWS 95, 98, AND ME
cupsaddsmb can use the Adobe PostScript printer driver for Windows 95, 98, and ME, which are available for download from the Adobe web site (http://www.adobe.com).The Adobe driver does not support the page-label, job-billing, or job-hold-until options.
Once you have installed the driver on a Windows system, copy the following files to the /usr/share/cups/drivers directory exactly as named below:
[Windows 95, 98, and Me] ADFONTS.MFM ADOBEPS4.DRV ADOBEPS4.HLP ICONLIB.DLL PSMON.DLL
Note: Unlike Windows, case is significant - make sure that you use the UPPERCASE filenames shown above, otherwise cupsaddsmb will fail to export the drivers.
KNOWN ISSUES
Getting the full set of Windows driver files should be easier.SEE ALSO
smbd(8), smb.conf(5), http://localhost:631/helphttp://www.cups.org/windows/
COPYRIGHT
Copyright 2007-2009 by Apple Inc.
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- SAMBA CONFIGURATION
- MICROSOFT POSTSCRIPT DRIVERS FOR WINDOWS
- CUPS POSTSCRIPT DRIVERS FOR WINDOWS
- ADOBE POSTSCRIPT DRIVERS FOR WINDOWS 95, 98, AND ME
- KNOWN ISSUES
- SEE ALSO
- COPYRIGHT
This document was created by man2html, using the manual pages.
Time: 05:34:25 GMT, December 24, 2015


Casper versus DeployStudio
15 Dec 2012I’ll preface this with one thing - I’m not a Casper Suite expert. I don’t use it reguarly, and at what it costs, I probably won’t! It’s this price that gave me high expectations for this last install. Unfortunately they were unfounded.
I’m hoping to write a series of articles comparing the various aspects of Casper against the free tools I use every day. First up is DeployStudio.
Workflow creation
Both Casper Imaging and DeployStudio have a nice GUI for creating the workflow. It’s just a drag and drop to place the tasks you need. The DeployStudio interface feels a bit more polished, but that’s probably just my bias showing though. The only real differentiator here are the package groups that DeployStudio offers. If you had a standard group of packages that you deploy over several different workflows, DeployStudio makes it easy to maintain - yes, this should probably be done elsewhere, but it can be handy to install a certain set of applications at imaging time. I couldn’t see a direct replacement for this in Casper Imaging.
Winner: Draw (just! if pushed, I’d say DeployStudio just edged it)
NetBoot
This is where DeployStudio really starts to poop on Casper Imaging from a great height. With Casper, the chap doing the jump start told me that I had to manually build up a NetBoot image with Casper Imaging set up. Hilarious. Surely he was joking, right? No. DeployStudio, a free product, has a wizard for making a customised NetBoot set that offers an iTunes like interface that is so simple, I’ve regularly taken an office manager through imaging a Mac. I dread to think how that same person would cope with the random UI elements that have been thrown at the screen when making the casper imaging app.
Winner: DeployStudio, hands down. Casper didn’t even turn up
Imaging process
So, you’ve managed to get past the lovely Casper Imaging interface, and now you’re installing a package that’s best installed when running from the target system - like an Adobe CS package. One that is likely to be the biggest package you’re installing. With DeployStudio, you at least get some indication that something is happening - you have the log scrolling by in the background.  No idea if it’s going to take five minutes or two hours.
Winner: DeployStudio
I’ll finish this post with an admission: I don’t use DeployStudio either. I’ve been trying to get rid of OS X in my server rooms, so as I mentioned in my last post, we’re using JAMF’s NetSUS appliance (dear JAMF, why can you make an awesome free product like NetSUS, but your flagship product be so poor?) and NetRestore with a InstaDMG made image with just an OS and a package to hook it into Puppet. I chose to compare Casper Imaging with DeployStudio as they’re closer competitors than the one trick pony of NetRestore.


THE MAX MACHA
Home
Projects
About me
Find me
About Maxime Machado - The Max Macha
Share
Maxime Machado
Maxime Machado
- Architecture Student
Skills
Photoshop
95%
Illustrator
65%
3D MAX
75%
Contact info
E-mail :
themaxmacha@gmail.com


Vinnie Jones says he 'owes' Simon Cowell and now wants to win X Factor in huge u-turn
Former footballer Vinnie pleaded media mogul Simon to let him leave the competition after landing in the bottom two with Kevin last week
by Irishmirror.ieVinnie Jones has admitted that he feels as though he "owes" Simon Cowell and now wants to win The X Factor : Celebrity.
This comes just days after he pleaded the media mogul to let him leave the competition after landing in the bottom two with Kevin McHale.
Speaking to Eamonn Holmes and Ruth Langsford on This Morning today, he said that being a part of the show had stopped him from falling into depression after his late wife Tanya's death.
Tanya died in July, aged 53, after being diagnosed with melanoma in 2013.
"He phoned me in Los Angeles and said he wanted me to come on the show," Vinnie said. "To be honest, I owe Aimon a lot."
He added: "This crazy six, seven or eight weeks has kept my mind off things and kept me focused on work rather falling into a depression and getting on with life.
Vinnie insisted that it was what Tanya would have wanted.
Revealing that he didn't see himself as part of the competition, he described himself someone running alongside the other competitors.
"This to me is great fun. I just felt, last week, Kevin is such a great singer," he said. "This could be a massive impact on his life and his career.
Confirming that he now wanted to win, he said that he had "obligations" now and that if he won a contract or money that all his proceeds would go to charity.
*This Morning airs weekdays at 10.30am on ITV


[gecode-users] Help -- about Gecode::Space::operator new
Kayler Yao
risoay at gmail.com
Thu Aug 27 14:16:11 CEST 2009
hi,
Thanks for your reply.
The project what i participate in is too large to supply the whole
codes. So i can only supply such small part of codes. And also caring about
schedule of the project , i have to hang it. So i am using another way to
realize it and will seek for time to handle it in the future. (It can be
sure that there have a bug in my part of program, i will tell everyone the
bug when i find it in the future.)
Thank everyone who pay attention to my question!
Kayler
2009/8/27 Christian Schulte <cschulte at kth.se>
> Hi, if you can’t give us the code we can’t help.
>
>
>
> Actually, this is the C++ new operator (just defined for this class). So
> there will be a bug somewhere in your program, almost 100% sure.
>
>
>
> Christian
>
>
>
> --
>
> Christian Schulte, www.ict.kth.se/~cschulte/
>
>
>
> *From:* users-bounces at gecode.org [mailto:users-bounces at gecode.org] *On
> Behalf Of *Kayler Yao
> *Sent:* Thursday, August 27, 2009 9:51 AM
> *To:* Javier Andrés Mena Zapata
> *Cc:* users at gecode.org
> *Subject:* Re: [gecode-users] Help -- about Gecode::Space::operator new
>
>
>
> hi,
>
> There has only that error
>
> "projectdlg.cpp(198) : error C2660: 'Gecode::Space::operator new' :
> function does not take 3 arguments"
>
> the error line is
>
> " GenSolModel * m = new GenSolModel (temp);"
>
> Yeah,it may be so. i have to use another way ---"GenSolModel a(temp);
> GenSolModel *m =&a;" to instead of it. Luckily, it can run OK. For the
> reason of time, i will hang it for a while . I will find this
> bug and uncover it to the sun in my free time. Thanks for your reply.
>
>
>
> Kayler
>
> 2009/8/27 Javier Andrés Mena Zapata <javimena at gmail.com>
>
> Hi,
>
> Maybe you could send the COMPLETE error message, and copy EXACTLY the lines
> that the which the compiler reports the error. It may be a compiler bug or
> something similar.
>
> Best regards,
>
> 2009/8/26 Kayler Yao <risoay at gmail.com>
>
> hi,
>
> The type of temp is Int. For the project is so large , i can't copy the
> whole codes here.But when i use another method like code lines below , it
> can run OK!
>
> " ……
>
> GenSolModel a(temp);
>
> GenSolModel *m =&a;
>
>
>
> DFS<GenSolModel> e(m);
>
> m = NULL;
>
> while(GenSolModel *s = e.next())
> {
> s->print();
> delete s;
>
> sum++;
> }
> ……
>
> "
>
> This way to creat an object of the class GenSolModel is a feasible way.
> But why the "New "way can't run OK. I doubt it may be the conflict error
> between "C++ new" and "'Gecode::Space::operator new",but why it can run ok
> in other project, Maybe the answer is hidden in my project. It also a puzzle
> to me.
>
> Who have faced the similar question ? Wish to your reply.
>
> If everyone can give me a suggest , i will appreciate your help.
>
>
>
> Kayler
>
>
>
> 2009/8/27 Christian Schulte <cschulte at kth.se>
>
>
>
> Hi, I think I need to see the full code to help. There must be something
> how you call new (maybe the type of temp) that is the problem.
>
>
>
> Christian
>
>
>
> --
>
> Christian Schulte, www.ict.kth.se/~cschulte/<http://www.ict.kth.se/%7Ecschulte/>
>
>
>
> *From:* users-bounces at gecode.org [mailto:users-bounces at gecode.org] *On
> Behalf Of *Kayler Yao
> *Sent:* Wednesday, August 26, 2009 4:04 PM
> *To:* users at gecode.org
> *Subject:* [gecode-users] Help -- about Gecode::Space::operator new
>
>
>
> hi,
>
> I had a trouble in my project when i wrote a class inheriting from
> Class Space and run it with DFS. The error is
>
>
>
> "error C2660: 'Gecode::Space::operator new' : function does not take 3
> arguments"-------------------------happened in
>
>
>
> "
>
> GenSolModel * m = new GenSolModel
> (temp);------------------------------------error line
>
>
> DFS<GenSolModel > e(m);
>
> delete m;
>
> while (GenSolModel * s = e.next())
> {
> s->print();
> delete s;
> }
>
> "
>
> I have spent much time to find the reason but with no results. I had
> written anther question class to test ,and it could run OK. I think that the
> constructor of
>
> this class didn't conflict with the class Space , but why came out this
> error. Who can give me a thought to help me to find the answer?
>
> Look forward to your reply!
>
>
>
> note:
>
> 1.VS2008 + Gecode 3.1.0
>
> 2.
>
> class GenSolModel: public Gecode::Space
> {
> protected:
> IntVarArray succ;
>
> public:
>
> GenSolModel(int data);
>
> GenSolModel(bool share, GenSolModel& s);
>
> ~GenSolModel();
>
> virtual Space *copy(bool share);
>
> void print(void);
>
> };
>
> Kayler
>
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
>
>
>
> --
> Javier Andrés Mena Zapata
> Cali - Colombia
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20090827/558124c8/attachment.htm>
More information about the gecode-users
mailing list


County Court Judgment Request a Warrant of Control
Once you have obtained judgment in your favour, you can apply for a Warrant of Control. This will instruct the court's bailiffs to try and obtain money or seize goods belonging to the defendant.
Once you have obtained judgment in your favour, you can apply for a Warrant of Control. This will instruct the court's bailiffs to try and obtain money or seize goods belonging to the defendant.


--- layout: default ---
I'd love to hear from you, especially if you want to collaborate on data vis, D3, or web dev projects, or if you have constructive feedback on anything I post.


Type a number below.
- integers from 1 to that number will be printed
- however, if the integer is divisible by 2, 'Fizz' will be printed
- and if the number is divisible by 3, 'Buzz' will be printed
- and if the number is divisible by 2 and 3 both, 'Fizz Buzz' will be printed


This page demonstrates the very basics of the jQuery Calendars plugin. It contains the minimum requirements for using the plugin and can be used as the basis for your own experimentation.
For more detail see the documentation reference page.
Select a calendar:
Enter a date: ()
Check and format:
Result:


[gecode-users] Reducing a view domain during propagation
Mailing List Email
mailinglistx at gmail.com
Wed Jun 19 19:23:12 CEST 2013
Try x1.le(max(s)), x1.ge(min(s)) for domain consistency.
On 19 Jun 2013 19:17, "Amina Kemmar" <kemmar.amina at gmail.com> wrote:
> Hi,
>
> In my propagate function that I implemented, I want to reduce the domain
> of an IntView x1 to a fix set of values given by the strucure set<int> s,
> how can I do this?
>
> Thank you for your help.
> Regards.
>
>
> ______________________________**_________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/**mailman/listinfo/gecode-users<https://www.gecode.org/mailman/listinfo/gecode-users>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20130619/7b626d81/attachment.html>
More information about the users
mailing list


Welcome to the (Very Trying) Triangle Tryouts
It's like the sorting hat, but for triangles instead of young wizards.
Please enter your side lengths:
Yo, check it!
Your sides:
,
, and
.
Those create
triangle.


Presets
Using presets
You can tell a fixture to use a preset to build its response by simply calling its preset
method with the name of the preset :
const server = new Server();
server.respond.with.preset(400);
The preset is only evaluated and merged by the fixture at request time. You can easily override preset options through fixture response configuration.
If the preset is not found in the server instance, an exception will be raised at request time.
Local presets
Adding/editing a local preset
It can be done by providing an object with its set
method and/or using BDD style syntax. Alternatively, the configuration object can be provided to server.preset
:
const server = new Server();
// In the server.preset call
server.preset('myPreset', {
status: 250
statusText: 'weird status'
});
// Another syntax, the same result
server.preset('myPreset').set({status: 250}).statusText('weird')
Server will now have myPreset
available in its own presets pool. If the presets was already defined, it will be overridden with new options.
Note : the options that are not overridden will be kept as is.
const server = new Server();
server.preset('myPreset', {status: 250, statusText: 'weird status'});
// Later on
server.preset('myPreset').status(200);
// statusText will still equal 'weird status'
You can have a look at the response configuration for more details about the available options.
Removing preset
Simply call the remove
method of the preset :
server.preset('myPreset').remove();
Using global presets
Aside local presets that can be defined within a server instance, FMF allows the registration of global presets. Global presets can be added/updated/removed in two ways :
Global presets
singleton exports
Global presets are stored in a singleton available through the presets
export. Object can be updated at will.
import {presets} from 'fetch-mock-fixtures';
presets.myPreset = {
status: 250
statusText: 'weird status'
} // myPreset will now be available globally
That way is interesting when bootstrapping presets configuration before running tests suite.
Register/unregister a local preset as global
Since FMF 2.2.0, it is possible to manage global presets from any server instance.
Any local preset can be made global through register
method and any global preset can be removed with unregister
method.
const server = new Server();
// Create a local preset
const myPreset = server.preset('myPreset', {status: 250, statusText: 'weird status'});
// And register it as global
myPreset.register();
// Remove the preset from global pool
// It will still be available in the server instance
myPreset.unregister();
Methods are chainable :
const server = new Server();
// Register the preset, unregister it and remove it from server presets pool
server.preset('myPreset').status(250).register().unregister().remove();
Global presets availability
To allow easy local tweaking of presets, global presets are cloned into local pool when creating a new server instance. Therefore, server's instance will only access global presets that are already defined before its creation or created within the server instance.
Built-in presets
FMF already have commonly used built-in presets. See presets.js
for details.


{% extends "base.html" %} {% comment %} Copyright (c) 2018 Josef Wachtler Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This template shows a form to create a testcase. {% endcomment %} {% load i18n %} {% block title %}{% trans "Create Testcase" %}{% endblock %} {% block content %}
{% trans "Create a new Testcase for a LTI provider." %}


| 897 | (A) | One gabaoo a gome that myche grame hade |
| 903 | (C) | Oon gabaa a werche . þat myche sorowe wrowȝte |
| 889 | (D) | On Gabba a gome þat mycħ grame had |
| 866 | (E) | On gabba be name þat meche grame hadde |
| (Ex) | ---- no text ---- | |
| 921 | (L) | On gabba a gome þat mychel grem hadde |
| 839 | (P) | One Gabba a gome þat myche grem had |
| 875 | (U) | One Gabba a gode grome / that muche grame had |
| (V) | ---- no text ---- |


PEP-BACK ULTRA- caffeine tablet, film coated
Alva-Amco Pharmacal Companies, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
limit the use of caffeine-containing medications, foods or beverages because too much caffeine may cause:
The recommended dose of this product contains about as much caffeine as two cups of coffee.
Stop use and ask a doctor if fatigue or drowsiness persists or continues to recur. For occasional use only. Not intended as a substitute for sleep.
Keep out of reach of children. In case of overdose, get medical help or contact a poison control center right away.
Calcium carbonate, calcium sulfate, corn starch, DC Yellow No. 10 Lake, FDC Blue No. 1 Lake, FDC Blue No. 2 Lake*, FDC Red No. 40 Lake*, hypromellose, magnesium silicate*, magnesium stearate, mineral oil*, polyehtylene glycol, polysorbate 80*, sodium lauryl sulfate*, sodium starch glycolate*, stearic acid*, titanium dioxide* and vanillin. *Contains one or more of these ingredients.
|
PEP-BACK
ULTRA caffeine tablet, film coated | ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
|
| Labeler - Alva-Amco Pharmacal Companies, Inc. (042074856) |


AREAS
ROUTES
HOW IT WORKS
PACE BEND DWS GUIDE
Water Level:
get current level
Show All Areas
Routes
Name
Min
Max
Description
Areas
Name
Min
Max
Description


Find K nearest neighbours for multiple query points
knn(data, query = data, k, eps = 0, searchtype = 1L, radius = 0)
| data | Mxd matrix of M target points with dimension d |
|---|---|
| query | Nxd matrix of N query points with dimension d (nb |
| k | an integer number of nearest neighbours to find |
| eps | An approximate error bound. The default of 0 implies exact matching. |
| searchtype | A character vector or integer indicating the search type.
The default value of |
| radius | Maximum radius search bound. The default of 0 implies no radius bound. |
A list with elements nn.idx
(1-indexed indices) and
nn.dists
(distances), both of which are N x k matrices. See details
for the results obtained with1 invalid inputs.
If searchtype="auto"
, the default, knn uses a k-d tree with a
linear heap when k < 30
nearest neighbours are requested (equivalent
to searchtype="kd_linear_heap"
), a k-d tree with a tree heap
otherwise (equivalent to searchtype="kd_tree_heap"
).
searchtype="brute"
checks all point combinations and is intended for
validation only.
Integer values of searchtype should be the 1-indexed position in the vector
c("auto", "brute", "kd_linear_heap", "kd_tree_heap")
, i.e. a value
between 1L and 4L.
The underlying libnabo does not
have a signalling value to identify indices for invalid query points (e.g.
those containing an NA
). In this situation, the index returned by
libnabo will be 0 and knn
will therefore return an index of 1.
However the distance will be Inf
signalling a failure to find a
nearest neighbour.
When radius>0.0 and no point is found within the search bound, the index returned will be 0 but the reported distance will be Inf (in contrast RANN::nn2 returns 1.340781e+154).
## Basic usage # load sample data consisting of list of 3 separate 3d pointets data(kcpoints) # Nearest neighbour in first pointset of all points in second pointset nn1 <- knn(data=kcpoints[[1]], query=kcpoints[[2]], k=1) str(nn1)#> List of 2 #> $ nn.idx : int [1:297, 1] 42 42 42 42 42 42 9 9 9 9 ... #> $ nn.dists: num [1:297, 1] 16.3 10.9 16.2 12.1 10.7 ...#> List of 2 #> $ nn.idx : int [1:297, 1:5] 42 42 42 42 42 42 9 9 9 9 ... #> $ nn.dists: num [1:297, 1:5] 16.3 10.9 16.2 12.1 10.7 ...# Self match within first pointset, all distances will be 0 nnself1 <- knn(data=kcpoints[[1]], k=1) str(nnself1)#> List of 2 #> $ nn.idx : int [1:284, 1] 1 2 3 4 5 6 7 8 9 10 ... #> $ nn.dists: num [1:284, 1] 0 0 0 0 0 0 0 0 0 0 ...# neighbour 2 will be the nearest point nnself2 <- knn(data=kcpoints[[1]], k=2) ## Advanced usage # nearest neighbour with radius bound nn1.rad <- knn(data=kcpoints[[1]], query=kcpoints[[2]], k=1, radius=5) str(nn1.rad)#> List of 2 #> $ nn.idx : int [1:297, 1] 0 0 0 0 0 0 0 0 0 0 ... #> $ nn.dists: num [1:297, 1] Inf Inf Inf Inf Inf ...# approximate nearest neighbour with 10% error bound nn1.approx <- knn(data=kcpoints[[1]], query=kcpoints[[2]], k=1, eps=0.1) str(nn1.approx)#> List of 2 #> $ nn.idx : int [1:297, 1] 42 42 42 42 42 42 9 9 9 9 ... #> $ nn.dists: num [1:297, 1] 16.3 10.9 16.2 12.1 10.7 ...# 5 nearest neighbours, brute force search nn5.b <-knn(data=kcpoints[[1]], query=kcpoints[[2]], k=5, searchtype='brute') stopifnot(all.equal(nn5.b, nn5)) # 5 nearest neighbours, brute force search (specified by int) nn5.b2 <-knn(data=kcpoints[[1]], query=kcpoints[[2]], k=5, searchtype=2L) stopifnot(all.equal(nn5.b2, nn5.b))


system_getkey(3f) - [M_getkey] read single character from keyboard in hot (raw I/O) mode (LICENSE:PD)
Syntax
Description
Example
How It Works
Alternatives
Origins
Tested
Author
License
SYSTEM_GETKEY(3F) is a C/Fortran combination that (hopefully) lets Fortran read one character at a time in raw I/O mode on most platforms.Unfortunately (as of this writing), there is no universal standard method using the programming languages Fortran or C for reading hot (raw I/O) keystrokes. In this document "Hot" or "Raw" mode, also sometimes called "immediate mode" means each keystroke is detected immediately, without requiring a carriage return.
The best way to know if this will work on your platform is to try it. There are five alternative versions of the C code in the source to try if it does not.
Sample program
program demo_system_getkey use M_getkey, only : system_getkey character :: A integer :: icount=0 character(len=1),parameter :: null=char(0) call clear() write(*,*)begin striking keys to demonstrate interactive raw I/O mode call menu() do A=system_getkey() icount=icount+1 select case(A) case(a:e) write(*,*)You entered a valid menu item ,A,=>,ichar(A),icount case(null) if(icount.gt.40000000)then write(*,*)limit of 40 000 000, calls reached stop endif case(q) stop case default call clear() write(*,*)unknown menu option write(*,*)you entered key=,A,->,ichar(A),icount call menu() end select enddo containssubroutine clear() ! ANSI VT102 screen clear sequence. ! May not work in all terminal emulators write(*,(a,"[2J"),advance=no)char(27) flush(6) write(*,*) end subroutine clear
subroutine menu() write(*,"(3x,a) first choice )") write(*,"(3x,b) second choice )") write(*,"(3x,c) third choice )") write(*,"(3x,d) fourth choice )") write(*,"(3x,e) fifth choice )") write(*,"(enter choice (q to quit):)") end subroutine menu
end program demo_system_getkey
The getkey(3c) C routine uses commonly available routines to set to raw mode, read a keystroke, and reset to normal mode. Once this is working, it is typically easy to make a Fortran routine that calls the C routine. How to make Fortran/C interfaces still varies if you do not have a Fortran 2003 compiler.
getkey.c is the core C routine that you must get working.
The steps to test the SYSTEM_GETKEY(3F) procedure are relatively simple.
Test C program
First you need to make sure the C routine will work by itself ...Test common Fortran/C interface style######################################## cc -DTESTPRG -DLINUX getkey.c -o testit or cc -DTESTPRG -V13 getkey.c -o testit or cc -DTESTPRG -V13B getkey.c -o testit or cc -DTESTPRG -DBSD getkey.c -o testit then ./testit ########################################
Once the C program works; just make an object file and then load it with one of the Fortran programs, depending on which compilers you haveTest using Fortran 2003 ISO_C_BINDING
If you have a Fortran 2003 compiler, there is a standard-based method for the Fortran-to-C interface that is preferable that uses the ISO_C_BINDINGS modules. Note that most f90+ compilers now support this 2003 feature as an extension ...Running the Test Program######################################## cc -DLinux getkey.c -o g95 M_getkey.F90 getkey.o -o testit ./testit ########################################
The sample program reads one character at a time until the letter "q" is entered. If the C program works in stand-alone mode but none of the Fortran examples work you will have to find out how your programming environment allows Fortran to call C routines. For this intentionally simple routine you usually just need to add an underscore to the C name (ie "_getkey" or "getkey_" or make it uppercase "GETKEY") to make Fgetkey(3c) a Fortran-callable procedure.
o Look at the curses(3c) or ncurses(3c) libraries or similar libraries o Look for extensions in your Fortran compiler documentation (Pass examples back -- I would be glad to see them). o In Unix and GNU/Linux look at the system commands stty -cread or stty raw -echo min 0 time 5Sometimes you can use a call to SYSTEM() to set and unset raw I/O mode and then use standard I/O routines; This is a simple method; but it is highly OS(Operating System) and compiler dependent and has very high overhead.
o Routines that allow input-line editing may provide source that has to read in raw mode.
This routine has been on a lot of systems over the years; it dates back to a program that was used to read keypresses from a Tektronix 4010 and 4014 raster storage graphics terminal (an xterm(1) still can emulate a Tektronix 4010!).
Recently tested with the Intel compilers on Linux, on a MSWindows machine in the CygWin application, on HP-UX and Solaris. Some version of it was used on UniCOS, Tru64, AIX, NextStep, ...
caveat: communication-related characters such as ctrl-S and ctrl-Q are often still intercepted by the system or by terminal emulators.
John S. Urban
Public Domain
| Nemo Release 3.1 | system_getkey (3) | July 22, 2023 |


Template¶
The template defines dataset structure. It holds parameters common to all messages
within the dataset: data origin (from Section 1), geolocation (Section 3), variable
names, optional forecast times and vertical dimensions. To make a template, use
function make_template()
. The first argument is a GRIB2 file or
a list of files sharing common reference time. Other arguments are optional,
if not specified, all messages present in GRIB2 files will be processed.
make_template()
uses inventory files to get the required metadata.
If those files do not exist, inventory is created by a call to
make_inventory()
.
To select subset of variables, specify one or more boolean functions (predicates) accepting inventory item as the single input argument. A message is selected if any of the predicates return True. For example, to select temperature and relative humidity at 2 m, one could write:
def tmp_2m(item):
return item.varname == 'TMP' and item.level_str == '2 m above ground'
def rh_2m(item):
return item.varname == 'RH' and item.level_str == '2 m above ground'
and call the above as:
tmpl = pywgrib2.make_template(gribfiles, tmp_2m, rh_2m)
A shorter version:
tmpl = pywgrib2.make_template(gribfiles, lambda x: x.varname in ('TMP', 'RH') and
x.level_code==103 and x.level_value==2)
The list of all available attributes is here.
When a data file contains messages for multiple model outputs,
make_template()
requires argument reftime
. The value does
not matter, as long as it is listed in wgrib2 inventory output.
To group several levels into 3-dimensional spacial array, pass: vertlevels=levels
where levels
is a string or a list of strings specifying vertical dimension(s)
to be combined, for example: vertlevels='isobaric'
combines pressure levels. Available levels are isobaric
, height_asl
,
height_asl
, sigma
, hybrid
.
There are more arguments to make_template()
, refer to the doc
string for explanation.
To allow variable with the same names in a GRIB2 file, but describing different
physical quantities to coexist within the same dataset, variable name is made
by concatenating varname
, level_str
and time_str
, sparated by a dot.
Blanks are replaced by an underscore.
varname
is what wgrib2 terms extended name, which can be obtained by passing
the option -ext_name
(or -pyinv
). Consider:
wgrib2 albers.grb
1:0:d=2009060500:HGT:200 mb:330 hour fcst:ens std dev
wgrib2 albers.grb -ext_name
1:0:HGT.ens_std_dev
The level part is taken verbatim from level_str
. Without argument
vertlevels='isobaric'
, temperature at 500 hPa is coded
as TMP.500_mb
. When vertlevels
is specified, variable name is TMP.isobaric
.
Compare:
files = sorted(glob.glob('nam.t00z.afwahi??.tm00.grib2'))
tmpl = pywgrib2.make_template(files, lambda x: x.varname=='TMP' and
x.level_code==100 and 90000<x.level_value<100000)
tmpl.var_names
['TMP.925_mb', 'TMP.950_mb', 'TMP.975_mb']
and:
tmpl = pywgrib2.make_template(files, lambda x: x.varname == 'TMP' and
x.level_code==100 and 90000<x.level_value<100000,
vertlevels='isobaric')
tmpl.var_names
tmpl.var_specs['TMP.isobaric'].level_coord
tmpl.coords['isobaric1'].data
['TMP.isobaric']
'isobaric1'
array([97500, 95000, 92500])
Level dimension name is always level name with appended ordinal. Adding the ordinal allows variables with different number of levels in the same dataset.
To illustrate processing of forecast time consider accumulated precipitation in NAM GRIB2 files:
for h in 00 03 06 09 12 15 18 24
do f=nam.t00z.afwahi${h}.tm00.grib2
echo $f; wgrib2 $f -match APCP
done
nam.t00z.afwahi00.tm00.grib2
668:18592315:d=2020060300:APCP:surface:0-0 day acc fcst:
nam.t00z.afwahi03.tm00.grib2
668:19041947:d=2020060300:APCP:surface:0-3 hour acc fcst:
nam.t00z.afwahi06.tm00.grib2
668:19688872:d=2020060300:APCP:surface:0-6 hour acc fcst:
713:21326599:d=2020060300:APCP:surface:3-6 hour acc fcst:
nam.t00z.afwahi09.tm00.grib2
668:20017699:d=2020060300:APCP:surface:0-9 hour acc fcst:
713:21642149:d=2020060300:APCP:surface:6-9 hour acc fcst:
nam.t00z.afwahi12.tm00.grib2
668:20483592:d=2020060300:APCP:surface:0-12 hour acc fcst:
713:22152393:d=2020060300:APCP:surface:9-12 hour acc fcst:
nam.t00z.afwahi15.tm00.grib2
668:20992733:d=2020060300:APCP:surface:12-15 hour acc fcst:
nam.t00z.afwahi18.tm00.grib2
668:21264515:d=2020060300:APCP:surface:12-18 hour acc fcst:
713:23185255:d=2020060300:APCP:surface:15-18 hour acc fcst:
nam.t00z.afwahi24.tm00.grib2
668:21199001:d=2020060300:APCP:surface:12-24 hour acc fcst:
713:23172832:d=2020060300:APCP:surface:21-24 hour acc fcst:
The periods are 0 days (or hours, or seconds), 3, 6, 9 and 12 hours. Accumulated precipitation for those periods must be separate variables. Each of those variables will have different forecast time dimension:
tmpl = pywgrib2.make_template(files, lambda x: x.varname == 'APCP')
tmpl.var_names
tc9 = tmpl.var_specs['APCP.surface.9_hour_acc'].time_coord
tmpl.coords[tc9].data
tc6 = tmpl.var_specs['APCP.surface.6_hour_acc'].time_coord
tmpl.coords[tc6].data
tc3 = tmpl.var_specs['APCP.surface.3_hour_acc'].time_coord
tmpl.coords[tc3].data
['APCP.surface',
'APCP.surface.12_hour_acc',
'APCP.surface.3_hour_acc',
'APCP.surface.6_hour_acc',
'APCP.surface.9_hour_acc']
array([datetime.timedelta(seconds=32400),
datetime.timedelta(seconds=75600)], dtype=object)
array([datetime.timedelta(seconds=21600),
datetime.timedelta(seconds=64800)], dtype=object)
array([datetime.timedelta(seconds=10800),
datetime.timedelta(seconds=21600),
datetime.timedelta(seconds=32400),
datetime.timedelta(seconds=43200),
datetime.timedelta(seconds=54000),
datetime.timedelta(seconds=64800),
datetime.timedelta(seconds=75600), datetime.timedelta(days=1)],
dtype=object)
Forecast time dimension name is always timeN
where N
is an ordinal.
make_template()
searches the inventory attribute time_str
for keywords indicating type of statistical processing
(Table 4.10),
and, if present, calculates period between start_ft
and end_ft
. When the period
is 0, the time part is null, otherwise is formed from the processing type and the period.
For example, the string 12-15 hour acc fcst translates to 3_hour_acc, while
12 hour fcst is ignored. The time coordinate value is always that of end_ft
.


Class that manages the connection between an event and a listener. More...
Public Member Functions | |
| Connection () | |
| Default constructor: Creates an instance which is initially invalid. More... | |
| bool | isConnected () const |
| Checks whether the instance currently references a listener. More... | |
| void | invalidate () |
| Invalidates this instance. More... | |
| void | disconnect () |
| Disconnects the referenced listener from its triggering event. More... | |
Class that manages the connection between an event and a listener.
You need a connection, if you want to remove listeners bound to events. The class Connection uses shared-ownership semantics, that means copying its instances results in multiple references to the same listener. It automatically invalidates when the referenced listener is disconnected from the event system.
| thor::Connection::Connection | ( | ) |
Default constructor: Creates an instance which is initially invalid.
Assign another object to make this instance a valid Connection.
| void thor::Connection::disconnect | ( | ) |
Disconnects the referenced listener from its triggering event.
This action invalidates this and all other Connections to the referenced listener. If no connection exists at the moment, this function has no effect.
| void thor::Connection::invalidate | ( | ) |
Invalidates this instance.
This does not affect the referenced listener (if any) nor other Connection instances. Invalidating an already invalid instance has no effects.
After the invalidation, you can reuse this instance by assigning another one. But normally, it pays out to have as few invalid connections as possible, as this saves you from case differentiations.
| bool thor::Connection::isConnected | ( | ) | const |
Checks whether the instance currently references a listener.


6.6.6. Process Multiple Launch Prevention Handler¶
Table of contents
This handler has the function to abnormally terminate the subsequent process that is executed when the same batch process is executed multiple times simultaneously. This handler can be used to prevent the simultaneous execution of the same batch process and duplicate reading of the data can be avoided.
The request ID configured on the thread variable is used for the identification of same batch process. Even if the batches are processed with the same batch actions and the request IDs are different, then they are handled as different batch processes.
Important
As a rule, management should be performed by the job scheduler such as JP1. If the job scheduler cannot control, use this handler to prevent multiple launch at the application layer.
This handler performs the following processes.
- Multiple launch check processing of the process (change the startup flag to launching during multiple launch check)
- Change the flag to initialized (not launched)
The process flow is as follows.
<IP_ADDRESS>. Module list¶
<dependency>
<groupId>com.nablarch.framework</groupId>
<artifactId>nablarch-fw-batch</artifactId>
</dependency>
<IP_ADDRESS>. Constraints¶
- This handler must be configured after the thread context variable management handler.
- This handler performs multiple launch check based on the request ID configured on the thread context. This handler must be configured after the Thread Context Variable Management Handler.
<IP_ADDRESS>. Configuration to perform multiple launch prevention check¶
A class to perform multiple launch process prevention check of the batch process has to be configured for this handler. For details of the configuration items, see DuplicateProcessCheckHandler.
For the details of the class that performs the multiple launch prevention check, see BasicDuplicateProcessChecker.
An example is shown below.
<!-- Class that performs multiple launch prevention check -->
<component name="duplicateProcessChecker" class="nablarch.fw.handler.BasicDuplicateProcessChecker">
<!-- Transaction configuration for accessing the database -->
<property name="dbTransactionManager" ref="transaction" />
<!-- Definition information of the table used for check -->
<property name="tableName" value="BATCH_REQUEST" />
<property name="processIdentifierColumnName" value="REQUEST_ID" />
<property name="processActiveFlgColumnName" value="PROCESS_ACTIVE_FLG" />
</component>
<!-- Process multiple launch prevention handler -->
<component name="duplicateProcessCheckHandler"
class="nablarch.fw.handler.DuplicateProcessCheckHandler">
<!-- Configure the class that performs the multiple launch prevention check -->
<property name="duplicateProcessChecker" ref="duplicateProcessChecker" />
<!-- Configure the exit code (optional) -->
<property name="exitCode" value="10" />
</component>
<!-- Since BasicDuplicateProcessChecker is a class that requires initialization, add it to the initialization list -->
<component name="initializer"
class="nablarch.core.repository.initialization.BasicApplicationInitializer">
<property name="initializeList">
<list>
<component-ref name="duplicateProcessChecker" />
<!-- Configuration of other components -->
</list>
</property>
</component>
<IP_ADDRESS>. Customize the multiple launch prevention check process¶
Customization of the multiple launch prevention check process can be handled by creating an implementation class DuplicateProcessChecker.
The implementation class can be configured and used in this handler as described in Configuration to perform multiple launch prevention check.


{{ post.title }}
{{ post.excerpt }}
Read More
--- layout: default ---
A snapshot of what I've been reading lately. I've taken the design from Derek Siver's (a prolific blogger and reader) "Books I've Read" page, and tweaked it to fit my style. You can read full reviews and book notes under "More Details".
My notes are not a summary. They are de-contextualized snippets of information to help me remember what I’ve learned. If you enjoy reading them too, great! Go read the book.


Artificial intelligence is possessed by modern day computers, robots and latest technologies. Whereas the natural intelligence is knack of humans and several animals. Artificial Intelligence means the easiest approach to achieve a goal successfully.  It has changed the way of thinking, communicating, banking, defense and entertainment. Now days we are definitely circled by AI.
Science cuts two ways, of course; its products can be used for both good and evil. But there's no turning back from science. The early warnings about technological dangers also come from science.
Today we have artificial virtual assistants that work effectively and smoothly, we rely on chat bots and stuff like that, we are definitely become dependent on them for our daily life activities.
Although we have made the use of Artificial Intelligence to develop robots and modern machines having an efficiency a hundred times than a human being, though they have manipulated our lives by serving us and doing our petty tasks such as online transactions, pizza deliveries and answering customer service calls.
But there is always a room for more development and more innovation in this field such as the mechatronics and robotics engineers are finding new ways to manipulate human feelings in robots.
The Final Frontier
These marvelous leaps in technological advances present both opportunities and challenges. There are lots of opportunities for young innovators to do great types of inventions in this field.
There can be no thought of finishing for ‘aiming for the stars.’ Both figuratively and literally, it is a task to occupy the generations. And no matter how much progress one makes, there is always the thrill of just beginning.
The dreams of yesterday are the hopes of today and the reality of tomorrow. Science has not yet mastered prophecy. We predict too much for the next year and yet far too little for the next ten.
The biggest challenge among innovators is the design of latest and modified microprocessors for AI which have the qualities of natural intelligence. In the near past, the best examples of Artificial intelligence manipulated devices are the drones, are being adapted for all kinds of creative tasks such as weather navigation instead of spying and bombing activities. One way AI can be more effective than the human brain is its capacity of storing large amount of data at once and scan it within seconds whereas humans lack the ability to store enormous amount of data at once.
AI At Its BEST
In short, Artificial Intelligence has huge impact on us but on the same time it has a vacant space for modification which eventually provides opportunities of innovation.
That's All From The Home Of AIAs I stand out here in the wonders of the unknown at Hadley, I sort of realize there’s a fundamental truth to our nature, Man must explore, and this is exploration at its greatest.
Placeholder text by Raja Waleed. Photographs by AI at Best


The Outing Club had a hike at the Pennsula on the first Sunday of 2020. We met at the Lighthouse Parking lot and started on the side walk trail. But over half accross we encountered a problem.The trail was flooded. So we had through cut throught the woods to the next availabe trail. We also notice that beaver were cutting down trees in the area.
This is a beavers’ homes, which are called lodges. These are created from severed branches and mud.
This is where a Beaver decided to cut down a tree next to the hiking trail.
Another Beaver Lodge on the Ridge Pond
Here is a map of the peninsula trail. We were near the sidewalk trail.


EmptyDictionary.CopyTo Method
Copies the elements of the ICollection to an Array, starting at a particular Array index.
[Visual Basic]
NotOverridable Public Sub CopyTo( _
ByVal
array As
Array, _
ByVal
index As
Integer _
) _
Parameters
-
array
- The one-dimensional Array that is the destination of the elements copied from ICollection. The Array must have zero-based indexing.
-
index
- The zero-based index in array at which copying begins.
Implements
ICollection.CopyTo
Remarks
As the collection is empty no values are copied into the array.
See Also
EmptyDictionary Class | log4net.Util Namespace


LibroJS - First Page
If you are viewing this page (firstPage), it means that the current browser URL ends with "#firstPage"
go to the second page
(
using Pop)
(
using Flip)
(
Flip Reverse)
(
Flip order)
(
using Slide)
(
Slide Reverse)
(
Slide order)
(
Drawer Top)
(
Drawer Bottom)
(
Drawer Left)
(
Drawer Right)
(
no transition)
LibroJS - Second Page
If you are viewing this page (secondPage), it means that the current browser URL ends with "#secondPage"
go to the first page
(
using Pop)
(
using Flip)
(
Flip Reverse)
(
Flip order)
(
using Slide)
(
Slide Reverse)
(
Slide order)
(
Drawer Top)
(
Drawer Bottom)
(
Drawer Left)
(
Drawer Right)
(
no transition)


{% if confirmation_pending %}
Your confirmation email has been sent. If it hasn't been received in 5 minutes, check your spam folder.
{% elif not messages %}
Your email has been confirmed and you will be notified once your account has been approved.
{% endif %}


Hyundai Xcent sales cross 2.5 lakh milestone
by Ajit DalviSince the Xcent launched back in March 2014, over 1.5 lakh petrol models and over 1 lakh diesel models have been sold.
Hyundai Motor India has just chalked up a new sales milestone through its first sub-four-metre sedan – the Xcent. Launched on March 12, 2014, after the India reveal at Auto Expo 2014, the Xcent has crossed the 2,50,000-unit sales milestone in the domestic market.
As per statistical data of our sister publication, Autocar Professional, as of end-October 2019, the Xcent has chalked up sales of 2,51,953 units – 1,51,368 petrol and 1,00,585 diesel variants and a 60:40 petrol-diesel model split. The car’s best annual performance came in FY2015, when it totted up sales of 62,605 units but after that, sales have seen a year-on-year decline.
One may recollect that engineers at Hyundai’s R&D centre in Hyderabad and at Namyang, Korea, worked in collaboration to develop the Xcent right from its concept stage, through to the final product-development stage. The Xcent was squarely aimed at the Maruti Suzuki Dzire and the Honda Amaze, with pricing starting at Rs 4,66,000 (ex-showroom, Delhi) – about Rs 20,000 less than the Dzire and about Rs 30,000 less than the Amaze, at the time. April 2017 saw the Xcent get its first facelift, which in turn saw it get an all-new front end with the new signature Hyundai grille that is both wider and taller than the pre-facelift version.
The Hyundai Xcent – which was also designed to be an export model from India – has seen 1,29,913 units being shipped to overseas markets over five years.
Next-gen Hyundai Aura compact sedan coming
Meanwhile, Hyundai has confirmed that it won’t retain the Xcent name for its all-new compact sedan. This new-gen compact sedan has been named the Hyundai Aura, and is set to be launched in the months ahead. While the Aura is the successor to the Xcent in Hyundai’s product portfolio, the Xcent compact sedan will not be discontinued.
Hyundai will be taking the wraps off the new Aura compact sedan at a world premiere on December 19, 2019. Being a global model, the car will replace the Xcent compact sedan in some markets as well. The Aura is based on the Grand i10 Nios premium hatchback that made its India debut on August 20 this year, and is already on sale in many countries.
Cognisant of the fact that the Xcent is extremely popular with fleet operators in India, Hyundai is expected to offer it in lower-spec trims for commercial-use buyers only. This will ensure that the new Aura compact sedan does not get the tag of a cab.
What this also means is that the Xcent will come with BS6-compliant versions of the current model’s engines. A positive here for the Korean carmaker is that from April 2020, the Maruti Dzire diesel will no longer be available, leaving the diesel compact sedan fleet market wide open for the Xcent.
The current-gen Xcent will continue to be sold as the Xcent Prime in petrol, diesel and CNG guise, aimed mainly at cab and fleet operators and will rival the Maruti Suzuki Tour S that is based on previous-gen Dzire sedan.
Also see:
Hyundai Grand i10 now sold as petrol-only
Hyundai Xcent
Rs 6.05 lakh * on road price (New Delhi)


{% include 'header.html' %}
Yes!
Simply send a text message to 732-372-HELP<PHONE_NUMBER>) with the name of a city. You will receive an automatic response with the nearest shelter's contact information and current bed availability.
There is also an automated voice system. Call 732-372-HELP<PHONE_NUMBER>) and enter a zip code to locate nearby shelters.
To meet our goal of everyone being able to access this information, we have developed solutions for almost every device and platform.
Drop us a line at<EMAIL_ADDRESS>Data comes in from self-registrations and the OpenHMIS platform.
Learn more about OpenHMIS at www.openciss.org


Chapter 1
Page 17:
Correction: Code snippet from server.xml file should be as follows:
<Context path="jspBook" docBase="/jspBook" debug="0"/>
Page 18:
Note: Be sure to run mysqld prior to running the mysql command to
create
the tables in your database.
Page 19:
Note: You may wish to use the new Connector-J JDBC driver from
www.mysql.com.
Unzip the downloaded file and place the mysql-connector-java-2.0.14-bin.jar
file
in your classpath (your server classpath). To obtain a connection use
the
following code:
Class.forName("com.mysql.jdbc.Driver").newInstance();
Chapter 2
Page 45:
Note: Some readers have reported trouble running the session example listed
on
this page. I suspect that they are trying to run the example starting with a
page
other than simpleSessionExample.html (perhaps the simpleSessionExample.jsp
page).
Chapter 3
Page 49:
Correction: All references to 'simpleBean' should in fact be 'SimpleBean'.
The
case was changed early on during development of the book and a few references
to
the old name remained after editing. The source code is named
'simpleBean.java'
and should be changed to 'SimpleBean.java' (as well as the class name
itself).
This will eliminate any further confusion. The same changes can be made to
the
'productBean.java' file.
Page 70 (CustomerBean.java):
Note: It would be a good idea to actually clear all of the JavaBean's
attributes
prior to loading a new set of data. This could be accomplished by moving
the
initialization code out of the constructor and placing it in a separate
method
called initFields(). You could then call this method from both the
constructor
and the loadCustomer() methods.
Page 79:
Correction: Each of the <option> tags are missing a closing bracket. Each
tag
should be something like this (the source code downloaded from the website is
correct):
<select name="spouse">
<option value="true" <%= (custBean.getField("spouse",
FIELD_VALUE).equals("true")) ? "selected" : "" %>>Y</option>
<option value="false" <%= (custBean.getField("spouse",
FIELD_VALUE).equals("false")) ? "selected" : "" %>>N</option>
</select>
Chapter 4
Note: The case of several source files begin with a lowercase letter.
These
should each be changed to begin with an uppercase letter. The source file
names
as well as the class names themselves need to be modified. For example:
groceryOrder.java --> GroceryOrder.java
groceryItem.java --> GroceryItem.java
simpleTag.java --> SimpleTag.java
Page 97:
Note: The example showing how to nest tags does not work with Tomcat 4.x.
The
code is written correctly to the JSP specifications and actually worked
just
fine with previous versions of Tomcat. With the newer releases of Tomcat,
the
nested tag example does not work correctly.
Chapter 5
Page 112:
Note: Remember to start the mysqld program before attempting to work with the
database.


Toggle navigation
Event Name
|
Round
Instructions
Select All
Clear Selection
Send Message
Add Team
Log out
Instructions
Select All
Clear Selection
Send Message
Add Team
Log out
Name
Mobile Number
Receipt ID
Status
×
Send Your Message
×
Add Team
Mobile Number
Enter Participant(s)
×
Do you really want to log out?
×
Instructions


We launch our new website soon. Please stay updated and follow.
We're coming soon! Stay tuned!We're working hard to give you the best experience!


Capuri House / Sergio Conde Caldas Arquitetura
- Curated by Matheus Pereira
- about 22 hours
- version="1.0" encoding="UTF-8"? Architects: Sergio Conde Caldas Arquitetura
- AreaArea of this architecture projectArea: 22292.0 ft2
- version="1.0" encoding="UTF-8"?YearCompletion year of this architecture project Year: 2018
Text description provided by the architects. Casa Capuri emerges amidst the nature of the land where palm trees, river and sea oppose the urban.
The project started adopting two transverse rectangular-based prisms, supported by five pillars and a stone wall. The real perception is of a damping of the fifth facade. The large free spans and structural swings arise with the premise of respecting and preserving the thirty-six palm trees of forty meters to the land, so that the horizontality of the architecture positively confronts nature, bringing a sense of respect to the surroundings.
The gesture of the design shows the weight and subtlety very carefully, emphasizing the transparency that integrates the interior and exterior. Permeable facades face south and east in order to combat moisture and accentuate lighting.
The whole house is an invitation to new discoveries. The technical complexity is incorporated into the subsoil; the equipment becomes invisibly to meet the contemporary. Each planned space coexists in complete freedom among the large living areas. The dining room and wine cellar have a vertical breadth amid one of the inner courtyards.
We dealt with the different plans respecting the topography with the intention of configuring open and connected environments, we used the unevenness as a strategy for splitting them into three groups, thus ensuring visual contact yet isolating the flows, as well as segmenting them. The service is attached to the social area on the first floor, keeping in evidence the natural elements, both for indicating the division between the parts of the house and poetically for supporting all the weight of the upper floor.
The personality of the project is present in the decision to work with a mixed structure, using the metal to support spans of up to twelve meters, prestressed concrete slabs and also, the ribbed slab for the tennis court that has independent access to the roof.
Landscaping was a concern. It is precisely planned and present in the coverage of the prism valuing the very conservation of the slab. The water deserves attention, the swimming pool goes unnoticed inserted to the contemporaneity of the structure of the house downstairs. The deck both integrates the environment and is a fundamental part of the facade, as well as the large water mirrors that cause the sensation of buoyancy favoring the visual concept of the project.
So we prioritized architecture and feeling, living each day at Casa Capuri is like the infinite pleasure of a new experience.


Letters to the editor Nov. 23
by Reader LettersLetters to the editor — Melnychuk, Parenteau, Kavanagh
Incentives shouldn’t be required to help environment
Re: NDP blasts new solar program after rates cut (SP, Nov. 5)
It seems that the residential solar panel industry is upset that their business is drying up because government incentives have been significantly reduced. But let’s remember who the government is … it is the taxpayer.
Surely the industry and the leader of the NDP can’t be serious that the taxpayer should forever subsidize the purchase and installation of solar panels on private individuals’ homes.
If these seemingly self-serving environmentalists of convenience truly cared about improving the environment, they would be installing their solar panels regardless of whether the incentive program had changed or not. But, alas, their true colours shine through. They and the partisan NDP leader appear to be interested in environmental improvements to their own private property only when someone else — in this case the taxpayer — is footing a good chunk of the bill.
Dick Melnychuk
Saskatoon
Political statement disputes remarks
In a Nov. 4 letter, Sean Polreis states that The StarPhoenix is “no place for political agenda” and in his second paragraph he makes quite the political statement saying, “a politician I personally did not want as prime minister …”
Mr. Polreis, that’s quite the “political” statement you made there.
Don Parenteau
Saskatoon
Protect the Northeast Swale
I would invite city council to be leaders in favour of the environment in regard to the recent complaints about the speed limit on roads, and also in regard to the proposed highway going through the Northeast Swale.
By making a choice for concrete, highways and high speed, instead of natural grasslands, trees, water, deer and meadowlarks, we continue to make decisions based on convenience and efficiency which aren’t bad in and of themselves, but they need to be considered within a context.
Here’s the big picture: if we continue to make decisions in favour of concrete and speed, eventually humans will have encroached on all the wilderness and wildlife and when that happens, we die. We can’t live without trees, water and animals. We’re all interconnected.
When and under what circumstances do we say, “Enough.  Here, this year, we already experienced crop failure in parts of our province. We’ve already had serious fires in Northern Saskatchewan. The time to say “Enough” is now.
Are we in such a rush that we can’t slow down to protect wildlife? One deer has already been killed on roads adjacent to the swale.
City council, please support the Northeast Swale, which benefits both humans and animals. I’m guessing that there are few places in North America that have such a natural area within a municipal boundary.
Carol Kavanagh
Saskatoon
Related
SHARE YOUR VIEWS
The StarPhoenix welcomes letters, which are limited to 250 words and must include the writer’s name, street address and phone number.
Submissions will be verified and edited before publication.
We publish the names and community of all letter writers.
Do not send email attachments.
Writing more than one letter a month is discouraged and “open” letters are not accepted.
Send to: 204 Fifth Ave. N., Saskatoon, Sask., S7K 2P1
Fax:<PHONE_NUMBER>
Email: letters@thestarphoenix.com


Classes for working with JUnit tests. Includes additional assertions and tools to build mock objects.


This server is used by the SafeDump tools.
It is intended primarily for demonstration purposes.
We make no warranties or guarantees about the correctness of data returned by this server, or it's robustness.
You may wish to run your own servers.
See https://github.com/continusec/safeadmin/ for more details.


{# it is quite unusual form structure - that's why render is not automated #} {% if shellform.non_field_errors %}{{ shellform.non_field_errors }}{% endif %} {{ shellform.version }}


# Node Streams
I'm Marco Rogers (@polotek).
I work at Yammer.
I'm a javascript guy.
## What are they?
Callbacks
fs.readFile('/path/to/file.txt', function(err, data) {
// do something with your data
});
## What are they?
Event Emitter
fileHandle.on('data', function(data) {
// do something with your data
});
## What are They?
Streams are the way node tells you about incremental data.
Streams are the way node encourages you to stop procrastinating.
// uploading
var data = '';
req.on('data', function(chunk) {
data += chunk;
});
req.on('end', function() {
fs.writeFile('./files/test.json', data);
res.end();
});
## Why not?
Buffering into memory is inefficient. That's how the other guys do it.
Streams are meant to be composed together into a "pipe" of continuous data.
## Streams API
The Streams API is a set of patterns and conventions for dealing with streaming data in node.
## Streams API
// uploading
var file = fs.createWriteStream('./files/test.json');
req.pipe(file);
## Why?
* Keep things moving.
* Lower memory usage.
* Higher throughput.
* Handle backpressure.

So you don't have to.
## Base classes
Node provides base implementations that make it easy for you to achieve common patterns.
* Readable/Writable
* Duplex
* Transform
* Passthrough
## Duplex
A stream that is both readable and writable.
## Transform
A duplex stream that processes incoming data and pushes out transformed data.
## Passthrough
A transform stream that doesn't transform anything. Mostly for testing, but...
## Passthrough
uploadedFile.pipe(s3Stream);
uploadedFile.pipe(tmpFileStream);
What happens when s3 craps out?
## Passthrough
uploadedFile.pipe(errorHandler).pipe(s3Stream);
uploadedFile.pipe(tmpFile);
Handle s3 problem, but you still get the backup on disk.
## Why?
Node streams are how you bring modularity to streaming data.
## Questions?
* Strings vs. Buffers? (yes)
* Better error handling? (domains?)
* Doing async work before piping? (fixed)
* Why doesn't pause() actually pause? (fixed)
* Piping to multiple destinations?
* When not to use streams? (???)
We need to get better at this. Help us.
## Final thought?
Try to think in streams, until you can't.
## Thanks
Marco Rogers
github: [@polotek](https://github.com/polotek)
twitter: [@polotek](https://twitter.com/polotek)